با سلام
همون طور که میدونید با استفاده از پینهای اختصاص یافته در روش ISPدر میکروهایی مثل ATMEGA32 میشه این میکروها رو در حالی که در برد اصلی قرار گرفته اند هر زمان که بخوایم توسط پورت موازیه لپ تاپ و یه کابل ساده (که تشکیل یک پروگرامر STK200 ساده رو می دهند) پروگرام کنیم این پینها I/O هستند و طراح میتونه با استفاده نکردن از این پینها اونها رو به صورت یه کانکتور ازاد بزاره تا هر وقت نیاز شد بشه با اتصال کابل متصل به پورت موازی لپ تاپ پروگرام مجدد انجام بده و برنامه داخل میکرو رو تغیر بده من دوست دارم همیشه برد هامو با این خصوصیت طرح کنم .
اما من در استفاده از میکروی ATMEGA64 به مشکلی برخوردم و اون اینه که مطابق دیتا شیت یکی از پینهایی که برای پروگرام به روش ISP استفاده میشه پین شماره دو هست که خط RXD0 یعنی ورودی USART0 محسوب میشه و اگر در کاربردی بخوایم از هر دو USART0 ,USART1 استفاده کنیم استفاده از این پین اجتناب ناپذیره و این شروع مشکله.
این مشکل از اینجایی شروع میشه که از USART0 بخوایم برا ساخت یک اتصال RS232 استفاده کنیم .برای این کار معمولا با اتصال USART به یک MAX232 از خروجی این ای سی برای اینترفیس به پورت RS232 مثلا یک کامپیوتر استفاده میکنیم .خوب چون پین RXD0 ورودیه معناش اینه که به یک پین خروجی در MAX 232 باید وصل بشه .از طرفی در ISP هم این پین ورودیه و وقتی کابل پروگرام رو هم از پورت موازی لپ تاپ به سوکت ISP وصل کنیم در اونجا هم یک پین خروجی از پورت موازی رو به این پین وصل کردیم .خوب مشکل مشخص شد؟ با اتصال کابل پروگرام دو خروجی یکی از MAX232 و دیگری از پورت موازی در لپ تاپ به هم وصل میشن و چون TOTEMPOLE هستند حتما یکی از دو خروجی اسیب خواهد دید.
چه باید کرد؟ به فکر خودم رسیده که با یک جامپر اتصال MAX232 به پین RXD0 رو قبل از اتصال کابل پروگرام قطع کنم و بعد از انجام عمل پروگرامینگ و کندن کابل با اتصال مجدد سخت افزار اماده اجرای نرم افزار جدید میکرو بشه اما معمولا توی یه پروژه دها بار لازمه پروگرام تکرار شه این کار با توجه به وضعیت نصب برد میکرو در جعبه نهایی دستگاه و ابعاد فیزیکی اون میتونه خیلی طاقت فرسا و مشکل باشه. چه کار دیگه ای میشه کرد؟ ممنون از توجه شما.
همون طور که میدونید با استفاده از پینهای اختصاص یافته در روش ISPدر میکروهایی مثل ATMEGA32 میشه این میکروها رو در حالی که در برد اصلی قرار گرفته اند هر زمان که بخوایم توسط پورت موازیه لپ تاپ و یه کابل ساده (که تشکیل یک پروگرامر STK200 ساده رو می دهند) پروگرام کنیم این پینها I/O هستند و طراح میتونه با استفاده نکردن از این پینها اونها رو به صورت یه کانکتور ازاد بزاره تا هر وقت نیاز شد بشه با اتصال کابل متصل به پورت موازی لپ تاپ پروگرام مجدد انجام بده و برنامه داخل میکرو رو تغیر بده من دوست دارم همیشه برد هامو با این خصوصیت طرح کنم .
اما من در استفاده از میکروی ATMEGA64 به مشکلی برخوردم و اون اینه که مطابق دیتا شیت یکی از پینهایی که برای پروگرام به روش ISP استفاده میشه پین شماره دو هست که خط RXD0 یعنی ورودی USART0 محسوب میشه و اگر در کاربردی بخوایم از هر دو USART0 ,USART1 استفاده کنیم استفاده از این پین اجتناب ناپذیره و این شروع مشکله.
این مشکل از اینجایی شروع میشه که از USART0 بخوایم برا ساخت یک اتصال RS232 استفاده کنیم .برای این کار معمولا با اتصال USART به یک MAX232 از خروجی این ای سی برای اینترفیس به پورت RS232 مثلا یک کامپیوتر استفاده میکنیم .خوب چون پین RXD0 ورودیه معناش اینه که به یک پین خروجی در MAX 232 باید وصل بشه .از طرفی در ISP هم این پین ورودیه و وقتی کابل پروگرام رو هم از پورت موازی لپ تاپ به سوکت ISP وصل کنیم در اونجا هم یک پین خروجی از پورت موازی رو به این پین وصل کردیم .خوب مشکل مشخص شد؟ با اتصال کابل پروگرام دو خروجی یکی از MAX232 و دیگری از پورت موازی در لپ تاپ به هم وصل میشن و چون TOTEMPOLE هستند حتما یکی از دو خروجی اسیب خواهد دید.
چه باید کرد؟ به فکر خودم رسیده که با یک جامپر اتصال MAX232 به پین RXD0 رو قبل از اتصال کابل پروگرام قطع کنم و بعد از انجام عمل پروگرامینگ و کندن کابل با اتصال مجدد سخت افزار اماده اجرای نرم افزار جدید میکرو بشه اما معمولا توی یه پروژه دها بار لازمه پروگرام تکرار شه این کار با توجه به وضعیت نصب برد میکرو در جعبه نهایی دستگاه و ابعاد فیزیکی اون میتونه خیلی طاقت فرسا و مشکل باشه. چه کار دیگه ای میشه کرد؟ ممنون از توجه شما.
دیدگاه