PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : حد اکثر فرکانس خروجی پینهای stm32f4



ua741
28-04-2013, 16:44
سلام
برای اینکه حد اکثر فرکانس خروجی یک gpio مثلا GPIOE رو اندازه بگیرم اول برنامه رو به این صورت نوشتم:




#define s_pin GPIO_SetBits( GPIOE, GPIO_Pin_15 );
#define r_pin GPIO_ResetBits( GPIOE, GPIO_Pin_15 );
و در یک حلقه while



while(1)
{
s_ds;
r_ds;
}
در این حالت حداکثر فرکانسی گه گرفتم 5.5 مگ بود.
اومدم برنامه رو به این صورت تغییر دادم:




#define s_pin GPIOE->BSRRL = 0x1000;
#define r_pin GPIOE->BSRRH = 0x1000;
فرکانس خروچی شد 10.5 مگ، ولی بازهم کمه ، راه دیگه ای هست که فرکانس بالاتر بره؟


تنظیمات GPIO



void gpio_cfg()
{
GPIO_InitTypeDef GPIO_InitStructure;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD|RCC_AH B1Periph_GPIOE, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOE, &GPIO_InitStructure);
}

sadmonew
28-04-2013, 18:32
سلام مهندس
حداکثر فرکانسی که لازم دارین چند مگه؟
برای چه کاری به فرکانس بالا نیاز دارین؟
اگه اینطوری بنویسی سرعتش بازم بالاتر میره:


while(1)
{
s_ds;
r_ds;

s_ds;
r_ds;

s_ds;
r_ds;

s_ds;
r_ds;

s_ds;
r_ds;

s_ds;
r_ds;

s_ds;
r_ds;

s_ds;
r_ds;
}

ua741
29-04-2013, 12:04
سلام مهندس
حداکثر فرکانسی که لازم دارین چند مگه؟
برای چه کاری به فرکانس بالا نیاز دارین؟}

سلام
من تقریبا حدود 30 مگ نیاز دارم
یکی از دوستام برای انجام یکی از پروژه هاش نیاز داره
این روشی که شما گفتید رو به دلیل اینکه توی برنامه حتما باید از حلقه ها استفاده کنم امکان پذیر نیست، توی دیتا شیت نوشته که IO در حالت toggle میتونه تا 84 مگ کلاک خروجی بده، یعنی نمیتوان توی یک حلقه به فرکانس 30 مگ دست یافت؟

mzarkoob
29-04-2013, 20:28
توی دیتا شیت نوشته که io در حالت toggle میتونه تا 84 مگ کلاک خروجی بده، یعنی نمیتوان توی یک حلقه به فرکانس 30 مگ دست یافت؟
ای بابا در دیتا شیت فیلیپس هم انگار بود که تا 30 مگ هست ولی تا 4 مگ بیشتر نمی شد...

ua741
30-04-2013, 12:23
ای بابا در دیتا شیت فیلیپس هم انگار بود که تا 30 مگ هست ولی تا 4 مگ بیشتر نمی شد...
من خودم با 2378 تست کردم نهایتا تونستم 4.2 مگ با اورکلاک کردن اون (تا جایی که یادم هست 82 مگ) بگیرم. ولی الان بدجوری گیر افتادم :unh: