PDA

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



hunybal
09-08-2012, 02:17
سلام دوستان.من یک برد stm31f103ve نوع 100 پینش رو طراحی و مونتاژ کردم.اول از همه بگم که توی keil میتونم دیباگ کنم با jflash پروگرم میشه و ....
اما یک مشکل عجیب داره و اونم اینه که جریان دهی پایه ها خیلی پایین هست.برای مثال من روی یک پایه برنامه چشمک زن رو امتحان کردم.با ولت متر که میگیرم تغیرات ولتاژ رو به قشنگی بین 3 و صفر مشاهده میکنم اما به محض اینکه یه led وصل میکنم ولتاژش بین 0.5 وات و صفر تغییر میکنه
روی پایه های دیگه هم تست کردم همین مشکلو داشته!
شماتیکم رو پیوست کردم ممنون میشم کمک کنید
و راستی یه سوال دیگه پایه boot باید زمین باشه درسته؟

saeyd
09-08-2012, 02:31
مهندس led را چطور وصل کردی و ولتاژ کجا را میگیری و تغذیه 3.3 را کجا درست کردی ؟

hunybal
09-08-2012, 02:55
مهندس سوالایی میپرسی ها:mrgreen:
خب led سر مثبتش به پایه مثلا pa0 میکرو وصله
با یه 330 اهم زمین شده
ولتاژ هم بین پایه میکرو و زمین منظورمه(برای مثال همون pa0(
تغذییه 3.3 هم با lf33 که سر راه 5 ولت usb هست درست کردم

saeyd
09-08-2012, 03:32
سلام
متوجه lf33 تو مدارت نشدم .:mrgreen:
گفتم شاید جریان کم میاری .
آیا بعد از وصل کردن led مدارت همچنان درست کار میکنه ؟ ولتاژ 3.3 تغذیه درسته ؟
بله پایه بوت را هم باید زمین کنی .
مهندس من آماتورم ، سعی دارم باهات هم فکری کنم تا مشکلت حل بشه .

kavir
09-08-2012, 10:46
سلام دوستان.من یک برد stm31f103ve نوع 100 پینش رو طراحی و مونتاژ کردم.اول از همه بگم که توی keil میتونم دیباگ کنم با jflash پروگرم میشه و ....
اما یک مشکل عجیب داره و اونم اینه که جریان دهی پایه ها خیلی پایین هست.برای مثال من روی یک پایه برنامه چشمک زن رو امتحان کردم.با ولت متر که میگیرم تغیرات ولتاژ رو به قشنگی بین 3 و صفر مشاهده میکنم اما به محض اینکه یه led وصل میکنم ولتاژش بین 0.5 وات و صفر تغییر میکنه
روی پایه های دیگه هم تست کردم همین مشکلو داشته!
شماتیکم رو پیوست کردم ممنون میشم کمک کنید
و راستی یه سوال دیگه پایه boot باید زمین باشه درسته؟
سلام
نمونه کدی که برای ال ای دی نوشتین اینجا بگذارید
کاربرد پایه بوت فقط اینه که در اول یک میکنید بعد کلید ریست بزنید وارد مد بوت میشه و پیش فرض زمین هست

hunybal
09-08-2012, 12:03
ممنون.برنامه ای که استفاده کردم رو پیوست کردم
البته هرچند که نوع ایسی پیش فرضش فرق داشت ولی در کل فکر نکنم مشکلی ایجاد کنه
با این حال من از توی option هم نوع میکرو رو به stm32f03ve تغییر دادم

sadmonew
09-08-2012, 13:09
سلام مهندس
اين برنامه رو هم تست كن. Led رو به pd.14 و pd.15 وصل كنيد. لطفا نتيجه تست رو هم بگيد.
مهندس يه شماتيك عالي هم گذاشتم. ميتوني با او شماتيك كه خودتون طراحي كردين، مقايسش كنيد.
مهندس اين لينك رو هم ميتوني نگاه كني:
You can see links before reply

hunybal
09-08-2012, 14:31
سلام خیلی ممنون.این برنامه ای هم که دادید دقیقا مثل همون کار میکنه
یه led وصل کردم به همین پایه ها و دقت که کردم با نور خیلی خیلی ضعیف چشمک میزنن و حتی حلقه for رو طولانی تر کردم دیدم درست کار میکنه اما همون مشکله ولتاژه هست
این شماتیکی هم که گذاشتید رو تقریبا به شماتیک خودم نزدیکه من منبع اصلیم برای طراحی سایت olimex بود

احتمال دادم که شاید یکی از پایه های vcc لحیم نشده باشه اما همشون 3.3 بودن

توی برد من سخت افزار usb رو هم بستم.یه برنامه usb ندارید تست کنم؟

sadmonew
09-08-2012, 14:48
مهندس يه سوال:
تو شماتيك اومدين قسمت +D پورت USB رو با مقاومت به 3.3 وصل كردين. با اين كار پورت USB ميكرو فعال كردين.
خوب اگه كابل USB رو به كامپيوتر وصل كنيد، ويندوز شروع به شناسايي سخت افزار ميكنه. اما چون هيچ برنامه اي و درايوري رو نميتونه براي سخت افزار وصل شده به ويندوز پيدا كنه. پيغام:" Device not recognized " ميده.
براي شما همچين پيغامي ظاهر ميشه؟

hunybal
09-08-2012, 15:12
سلام یه چیزی الان متوجه شدم
اگه led رو به صورت active low ببندم خیلی قشنگ چشمک میزنه اما به صورت active high نه یعنی پین ها گراند میشن ولی انگار vcc نمیشن!عجی ایرادی هست:125:

اره d+ مثبت رو به vcc وصل کردم اما توی pcb یه جامپر براش گذاشتم که هینجوری فعال نباشه
همچینین ddm,ddp رو با جامپر به pa11,pa12 متصل کردم.اگه جامپر enable رو بذارم همینطور که میشه فرمودید میشه

pooriya
09-08-2012, 15:58
سلام
مهندس برنامتو ندیدم،شماتیک رو هم فوری یه نگاه کردم.
1-پایه boot1 را به یه مقاومت زمین کن.
2-پایه مثبت led را به یه مقاومت کم مثل 220 اهم(اگه smd هست) اگه نیس مستقیم به میکرو وصل کن و پایه منفی رو هم به زمین.

hunybal
09-08-2012, 20:55
سلام ضمن تکشر از پاسختون ولی امتحان کردم فرقی نداشت
الان boot0,boot1 هر دو زمین هستن
led هم smd نیست با این حال با یه 330 سری هست ولی مستقیم هم تست کردم فرقی نداشت
نمیدونم چجوریه led توی حالت active low خیلی خوب جواب میده
به نظرم باید یه جورایی مشکل از تغذیه باشه
من یه سری از خازن ها از جمله الکترولیتی ها رو حذف کردم (با توجه به شماتیکی که دادید) و فقط یه 100 میکرو به 3.3 ولت گذاشتم.خازن های 104 عادی رو هم تا حد کم کردم اما بعید میدونم باعث مشکلم باشه
ولتاژهای پایه ها 3.3 خود میکرو رو تست کردم 3.3 بودن
به نظر شما ممکن قسمت gpio میکرو مثلا توی لحیم کاری اسیب دیده باشه؟

hunybal
14-08-2012, 19:21
سلاان دوستان.من هرکاری کردم درست نشد
تا به حال کسی از این میکرو استفاده کرده؟ شاید اول کار نیاز به تنظیمات خاصی داره!
اگه کسی برای این میکرو برنامه uart یا usb داره بذاره ممنون میشم

sadmonew
14-08-2012, 19:43
سلاان دوستان.من هرکاری کردم درست نشد
تا به حال کسی از این میکرو استفاده کرده؟ شاید اول کار نیاز به تنظیمات خاصی داره!

سلام مهندس
اين مشكل فقط با برنامه اي كه من بهتون دادم، دارين يا با برنامه اي كه خودتون هم مينويسيد، بازم مشكل دارين؟



اگه کسی برای این میکرو برنامه uart یا usb داره بذاره ممنون میشم
مهندس اين تاپيك رو نگاه كن:
Usb و چگونگي راه اندازي با stm32f103rbt6 - ایـــــــــران میـــــــکرو ™ (You can see links before reply)

sadmonew
14-08-2012, 19:59
مهندس سوالایی میپرسی ها:mrgreen:
خب led سر مثبتش به پایه مثلا pa0 میکرو وصله
با یه 330 اهم زمین شده
ولتاژ هم بین پایه میکرو و زمین منظورمه(برای مثال همون pa0(
تغذییه 3.3 هم با lf33 که سر راه 5 ولت usb هست درست کردم
مهندس، سوالي كه دوستمون پرسيدن، واقعا سوال مهميه.

مهندس LED هاي رو برد خودم پايه كاتدشون به ميكرو وصل شده و پايه اندشون هم به 3.3 ولت وصل شدن و يه نكته ديگه:
پيني كه LED هارو بهشون وصل كردين روي چه مدي تنظيم كردين؟ Open Drain؟

hunybal
14-08-2012, 20:46
سلام با تشکر
بله open drain هستند با توجه به برنامه ای که خودتون دادید بهم
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;

شما هم توی برد خودتون شده برای led ها اندشو به میکرو وصل کنید ببینید چی میشه؟

خودم برنامه که مینویسیم (به صورت رجیستری) اصلا جواب نمیده.این برنامه هایی که با cmsis نوشته شده رو که تست میکنه همونجور که گفتم جواب میده.فقط حالت active low.

sadmonew
15-08-2012, 14:58
سلام مهندس
تو حلقه While به جاي اينكه دستورات زير رو بنويسيد:


while(1)
{
GPIO_ResetBits(GPIOD, GPIO_Pin_14);
for(i=0;i<350000;i++){} //delay


GPIO_SetBits(GPIOD, GPIO_Pin_14);
for(i=0;i<350000;i++){} //delay


GPIO_ResetBits(GPIOD, GPIO_Pin_15);
for(i=0;i<350000;i++){} //delay


GPIO_SetBits(GPIOD, GPIO_Pin_15);
for(i=0;i<350000;i++){} //delay
}
بجاش اينارو بذاريد:


while(1)
{
GPIO_SetBits(GPIOD, GPIO_Pin_14);
for(i=0;i<350000;i++){} //delay


GPIO_ResetBits(GPIOD, GPIO_Pin_14);
for(i=0;i<350000;i++){} //delay


GPIO_SetBits(GPIOD, GPIO_Pin_15);
for(i=0;i<350000;i++){} //delay


GPIO_ResetBits(GPIOD, GPIO_Pin_15);
for(i=0;i<350000;i++){} //delay
}

hunybal
19-08-2012, 14:34
سلام.فرقی نکرد مهندس شما اگه یه active high تست کنید ممنون میشم