در AVR توسط
سلام

من پروژه کنترل رله از طریق شبکه اترنت 82J60 را خریدم که کار کرد ولی اگه فرکانس کاری رو روی 16MHz برازم کار نمیکنه. تنضیمات اسیلاتور در کدویژن و میکرو رو هم درست دادم ولی....

لطفا راهنمایی کنید

1 پاسخ

0 امتیاز
توسط jahandideh
 
بهترین پاسخ

با سلام، 

خیلی هم عالی ممنون از اینکه هم سورس را تهیه کردین و هم نتایج کارتون را اینجا اعلام کردین. در مورد تغییر کللاک این پروژه تجربه ی عملی ندارم  و روی 16 مگاهرتز نبردم. ولی دلایل زیر به ذهنم میرسه:

  • تغییر کلاک از Configure Project و عدم تغییر فیوزبیت ها که باعث بهم ریختن محاسبات لایبری delay میشه. (که گفتین انجام دادین.) 
  • کلاک SPI مشکل ایجاد میکنه. برای دیدن مقادیر تنظیم شده در فایل ethernet.h کلمه SPCR را سرچ کنید که رجیستر تنظیم SPI است. 
  • با تغییر کلاک مقادیر تایمر ها بهم میریزن. و همچنین تایمر Watchdog هم که هست! دنبال کلمات WDTCR و TCCR1A در فایل main.c بگردید میبینید تنظیماتش را و میخواهید تنظیم کنید با CodeWizard تنظیم کنید با کلاک دلخواه و این قسمت ها را تغییر بدید. (دلیل اصلی این مورد میتونه باشه)
  • یکی دیگر از موارد که در اینجا اتفاق نمافته ولی ممکنه بود مشکل ساز بشه ارسال درخواست زیاد به آیسی بود که اگر مشغول باشه جواب نمیده...چرا این اتفاق بیافته؟ چون وقتی محاسبات delay بهم بریزه تعداد  ethernet_process داخل حلقه اصلی بالا میره و سیستم خطای مشغول بودن میده ( این مورد را تحقیق نکردم و اطلاعات دقیقی ندارم صرفا به ذهنم اومد.)
...