PDA

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



Ali_Salehi
26-03-2010, 02:40
با سلام خدمت دوستان و به خصوص آقای 1نفر..
من یک ماه پیش در یکی از تاپیک ها در مورد اینتراپت یوزارت و یک باگی توی اون برخورد کرده بودم یک پست برای شما گذاشتم که شما اصلاً به اون جواب ندادین!!

من نمی خوام تمام اونچیزایی رو که اونجا نوشتم اینجا باز بنویسم ...ولی من بعد از دو ماه به جایی رسیدم که فکر میکنم این نوع میکرو توی قسمت اینتراپتش باگ داره!!! نمی دونم شاید هم مشکل از منه...ولی من تا جایی رسیدم که با تعداد زیادی ایمیل با اتمل مکاتبه کردم و لی هنوووز مشکل پا برجاست... و مشکلم اینجاست که اینتراپت های من فقط یک بار اتفاق میافته !!! باز می خوام این رو بپرسم و امیدوارم این بار جواب من رو بدین..شما در مورد اینتراپت ها این مشکل رو دارین یا نه؟

در ضمن ..من فکر میکنم به جای اینکه هدف شما چاپ مجله باشه و خودتون سعی در راه اندازی همه ی قسمت ها داشته باشین...با جمع کردن اطلاعاتی که خیلی ها قبلاً در موردش کار کردن خیلی سریع تر بتونید مجلتون رو چاپ کنین....من حدود دو ماه کامل وقتم رو روی این مشکل در اینتراپت گذاشتم....خیلی برام مفید بود ولی متاسفانه هنوز نتونستم مشکل رو حل کنم.

اگه به پکیجی که خود اتمل داده به قسمت اینتراپت یوزارت مراجعه کنین، میبینین که توی اونجا مبحث تایمر رو با مبحث اینتراپت ترکیب کرده و یجور هایی اینتراچت رو پیچونده!!! و جالب تر از اون با همه ی اون تفاسیر باز هم اینتراپتش مشکل داره..من برنامه ی حود اتمل رو روی میکرو ریختم و دیدم که مثلاً توی قسمت اینتراپت یوزارت وقتی با سرعت زیاد اینتراپت پشت سر هم اتفاق میافته میکرو درست عمل نمیکنه و این یک باگ خیلی بزرگیه!!!

در هر صورت امیدوارم شما بتونین این مشکل و مشکل ها رو حل کنید یا حل کرده باشید!
در ضمن..من بعد از این که این مشکل برام حل شد میخوام در مورد پروتکل ethernet کار کنم و اون رو به صورت کامل راه بندازم...خوشحال میشم در این مورد با شما همکاری بکنم ....

1nafar
26-03-2010, 09:00
من یک ماه پیش در یکی از تاپیک ها در مورد اینتراپت یوزارت و یک باگی توی اون برخورد کرده بودم یک پست برای شما گذاشتم که شما اصلاً به اون جواب ندادین!!
سلام
متاسفانه ، من چیزی ندیدم ....


که با تعداد زیادی ایمیل با اتمل مکاتبه کردم و لی هنوووز مشکل پا برجاست
متاسفانه اونا به ایرانی جماعت جواب نمیدن ، من زیاد بهشون ایمیل زدم ( من توی اترنت (مقدار یک سلف که توی نقشه ی ارائه شده از طرف خودشون مشکل داشت ) و وجود 31 پایه بر روی پورت 32 بیتی مشکل داشتم ) .



در ضمن ..من فکر میکنم به جای اینکه هدف شما چاپ مجله باشه و خودتون سعی در راه اندازی همه ی قسمت ها داشته باشین...با جمع کردن اطلاعاتی که خیلی ها قبلاً در موردش کار کردن خیلی سریع تر بتونید مجلتون رو چاپ کنین....من حدود دو ماه کامل وقتم رو روی این مشکل در اینتراپت گذاشتم....خیلی برام مفید بود ولی متاسفانه هنوز نتونستم مشکل رو حل کنم.
دو تا مشکل وجود داره :
1- اطلاعاتی کاملی وجود نداره
2- با قانون کپی رایت و ... پدر ادم رو سر 5 خط در میارن و ابروی ادم رو میبرن
فقط من روی مجله کار نمی کنم ، من و تعداد ی از دوستان ، مطالب رو اماده میکنیم و توی مجله میاریم ، ممکنه بعضی از مطالب ناقص یا حتی اشتباه باشه که انشااله در کتاب رایگانی که منتشر میشه تصحیحی خواهد شد .


در هر صورت امیدوارم شما بتونین این مشکل و مشکل ها رو حل کنید یا حل کرده باشید!
نمیدونم مشکل حل شده باشه یا نه ...
در کل توی ارم منابع وقفه مثل avr یا pic یا .... نیست ،
همون طور که میدونید توی avr دو تا ریسجتر TX Complete Interrupt Enable و RX Complete Interrupt Enable باعث تولید شدن وقفه ی دریافت یا ارسال داده میشود .
در کل ما اول وقفه ی سراسری رو فعال میکردیم ، بعد مشخص میشد که میخوام از وقفه ی ارسال یا دریافت استفاده کنیم .
و در نهایت بیت USART Data Register Empty Interrupt Enable رو یک میکردیم تا وقفه راه اندازی بشه .
با یک شدن این رجسیتر ها به cpu فرمان داده میشد که در دوره های زمانی خاص بافر ارسال و دریافت رو چک کنه ، اگه بافر ارسال (UDRE) خالی میشد ، وقفه ی ارسال تولید میگشت .
در این حالت cpu برنامه ی در دست اجرار رو رها میکرد و به زیر برنامه ی وقفه میرفت . برای دریافت هم نظیر همین اتفاق رخ میداد .

اما توی ارم اینجوری نیست و cpu دخالتی در وقفه نداره و کنترل و تولید وقفه به بخشی به نام Advanced Interrupt
Controller یا aci سپرده شده .
aci دارای سه تا ورودی وقفه ی خارجی هست و وقفه ی رخ داده روی سایر بخش ها رو از طریق باس APB کنترل میکنه .
اگه وقفه ای رخ بده ، cpu رو باخبر میکنه و ....
توی صفحه ی 306 دیتا شیت هم ، در مورد وقفه ی usart نوشته :

30.5.3 Interrupt
The USART interrupt line is connected on one of the internal sources of the Advanced Interrupt
Controller. Using the USART interrupt requires the AIC to be programmed first. Note that it is not
recommended to use the USART interrupt line in edge sensitive mode.
برای استفاده از وقفه شما ، ابتدا باید واحد aci رو راه اندازی کنید .
اگه توی دیتا شیت به دنبال ریسجتر های کنترل وقفه در usart بگردید ، متوجه میشید که اصلا ریسجتری برای کنترل وقفه وجود نداره ( در حالی که توی بخش های مثل spi یا ssc یا ... علاوه بر کنترل وقفه میشه اون رو فعال یا غیر فعال کرد )
در واقع شما باید در این بخش وضعیت ریسجتر های US_CSR و US_CR رو چک کنید ، تا اگه وضعیت کانال تغییر کرد یا کاراکتری به اون وارد شد ، متوجه بشید و....


اگه به پکیجی که خود اتمل داده به قسمت اینتراپت یوزارت مراجعه کنین، میبینین که توی اونجا مبحث تایمر رو با مبحث اینتراپت ترکیب کرده و یجور هایی اینتراچت رو پیچونده!!!
بحث Interrupt Generation Using the AT91 Timer/Counter یک بحث کاملا مجزا هست و به عنوان یکی از قابلیت های ارم های اتمل به شمار میره و فکر نکنم از این بخش برای پیچوندن وقفه ی usart استفاده شده باشه .
در کل اون سورس برای نمایش این قابلیت هست نه وقفه ی usart ( برای همین بخش چند تا app note ارائه شده که میتونید از سایت اتمل دانلودش کنید )



! و جالب تر از اون با همه ی اون تفاسیر باز هم اینتراپتش مشکل داره..من برنامه ی حود اتمل رو روی میکرو ریختم و دیدم که مثلاً توی قسمت اینتراپت یوزارت وقتی با سرعت زیاد اینتراپت پشت سر هم اتفاق میافته میکرو درست عمل نمیکنه و این یک باگ خیلی بزرگیه!!!
اون بسته برای برد های اتمل ارائه شده ، توی اون کلی هدر و فایل اضافه وجود داره و شما باید طبق همون توضیحات موجود نرم افزار keil رو برای کامپایل سورس ها پیکبرندی کنید .

در کل این یک باگ نیست ، من خودم توی خیلی از بخش ها مشکل داشتم اما بعد از مطالعه ی سورس های مختلف تونستم مشکل رو حل کنم و ... به عنوان نمونه در هنگام راه اندازی تایمر واچ داگ ، میکرو مدام ریست میشد . من این مشکل رو توی انجمن at91 و keil و... مطرح کردم و هیچ کس به من جواب نداد .
بعد از کلی تحقیق و ... با استفاده از نسخه ی 3.24 نرم افزار keil مشکل حل شد ( مشکل از کامپایلر بود )
بهتر سورس ها و مواردی رو که کار کردید بزارید تا من و سایر دوستان ببینیم و............


در ضمن..من بعد از این که این مشکل برام حل شد میخوام در مورد پروتکل ethernet کار کنم و اون رو به صورت کامل راه بندازم...خوشحال میشم در این مورد با شما همکاری بکنم ....
عالیه ، من خودم یه مقدار اطلاعات در مورد شبکه + رجیستر ها و توابع مربوط به اترنت در keil رو در ارودم
یه pcb هم برای اتصال PHY طراحی کردم که متاسفانه مقدار یکی از قطعات اون اشکال داره .
مطالبی موجود توی شماره ی 8 منتشر میشه و مات مطالب رو با هم تکمیل خواهیم کرد .

Ali_Salehi
26-03-2010, 21:24
بحث Interrupt Generation Using the AT91 Timer/Counter یک بحث کاملا مجزا هست و به عنوان یکی از قابلیت های ارم های اتمل به شمار میره و فکر نکنم از این بخش برای پیچوندن وقفه ی usart استفاده شده باشه .
در کل اون سورس برای نمایش این قابلیت هست نه وقفه ی usart ( برای همین بخش چند تا app note ارائه شده که میتونید از سایت اتمل دانلودش کنید )


اما من اصلاً فکر نمیکنم اتمل در قسمت اینتراپت یوزارت از این قابلیت استفاده کرده باشه..
به طور کلی در مثال اتمل داره از ترکیبی از usart و PDC استفاده میکنه که در واقع یکی از امکانات این میکرو هست برای مداخله نکردن پروسسر برای دریافت و فرستادن اطلاعات.
برداشت من از برنامه ی اتمل این هست..بافر مربوط به PDC بوسیله ی کاراکتر های ارسالی پر میشه...و با تایمر در بازه های زمانی خاص اطلاعات بافر رو که پر شده ارسال میکنه! اصلاً هیچ نیازی به این کار ها مه نیست ..خیلی راحت تر از این ها میشه اطلاعات دریافتی رو ارسال کرد!


در کل این یک باگ نیست ، من خودم توی خیلی از بخش ها مشکل داشتم اما بعد از مطالعه ی سورس های مختلف تونستم مشکل رو حل کنم و ... به عنوان نمونه در هنگام راه اندازی تایمر واچ داگ ، میکرو مدام ریست میشد . من این مشکل رو توی انجمن at91 و keil و... مطرح کردم و هیچ کس به من جواب نداد .

واقعاً امیدوارم اینکوری باشه...شاید هم مشکل از کامپایلر منه ..من برنامی خودم رو پیوست کردم...شما هم یک نگاهی بندازین !! این برنامه ی کار با وقفه ی سریال هست . که روی برد من فقط یک بار برنامه ی توی تابع وقفه اجرا میشه.

در مورد ethernet همخ پس من منتظر اطلاعاتی که شما جمع کردین میمونم و تا وقتی هم این مشکل من حل نشه نمیتونم برم سراغ اون .
مرسی.

Ali_Salehi
26-03-2010, 22:11
You can see links before reply
ابن هم برنامه ی من

Ali_Salehi
28-03-2010, 13:10
کسی برنامه ی من رو ندید؟؟؟

1nafar
29-03-2010, 08:49
سلام
من دانلودش کردم ، اما فعلا امکانات مورد نیاز برای تست کردنش رو ندارم .
به محض اینکه تونستم نتیجه رو میزارم

Ali_Salehi
30-03-2010, 10:28
مرسی..پس منتظر می مونم !

bato_990
07-07-2010, 17:59
سلام
من هم هر برنامه ای برای arm با وققه می تویسم مشکل داره. وقفه اش یک بار اجرا می شه و دیگه به برنامه اصلی بر نمی گرده. برنامه ای را هم که تو مجله نوشته بودید اگه به شبیه سازیش توجه کنید می بینید که بعد از سرویس وقفه دیگه بر نمی گرده.
یک هفته ای هست که دارم برای حل مشکل تلاش می کنم اما نتیجه ای نداده.

1nafar
12-07-2010, 08:02
سلام
متاسفانه من خودم هم به جز بخش watch dog از هیچ بخش دیگه ای نتونستم جواب بگیرم ، ظاهرا نرم افزار keil مشکل داره و دستورات مربوط به وقفه رو به درستی کامیپال نمی کنه ( توی فرومش هم برید ، خیلی ها با وقفه مشکل دارن و متاسفانه جواب درستی بهشون داده نمیشه )

hmg
12-07-2010, 17:46
سلام
متاسفانه من خودم هم به جز بخش watch dog از هیچ بخش دیگه ای نتونستم جواب بگیرم ، ظاهرا نرم افزار keil مشکل داره و دستورات مربوط به وقفه رو به درستی کامیپال نمی کنه ( توی فرومش هم برید ، خیلی ها با وقفه مشکل دارن و متاسفانه جواب درستی بهشون داده نمیشه )

سلام در فایل پیوست برنامه کامل برای وقفه تایمر قرار گرفته که بدرستی کار میکند. پس از هر بار سرریز شدن تایمر، LED متصل به Portb.19 روشن و خاموش میشود.aa)

ahbadr
05-06-2011, 12:19
سلام.من نتونستن برنامه شما رو اجرا کنم.فایل هکس وجود داره ولی نمیتونم بصورت پروژه با کیل اونو باز کنم
میکرو هم مشخص نیست چیه؟
من هیچی سر در نیاوردم:(
میشه خیلی خیلی بیشتر توضیح بدین:018:

meh1011
21-08-2011, 01:36
سلام به همه دوستان
این برنامه ای که آقای hmg گذاشتن رو اجرا کردم اما متوجه نشدم این خط برنامه چیکار میکنه . لطفا راهنماییم کنید
AT91C_BASE_AIC->AIC_EOICR = AT91C_BASE_TC1->TC_SR;