۰۱-مهر-۱۳۸۸, ۱۲:۳۸:۳۱
صفحهها: 1 2
۰۱-مهر-۱۳۸۸, ۱۵:۵۲:۴۲
منم الان همین مشکل رو داشتم با فیوز بیتهای کلاک ور رفتم درست شد
۰۱-مهر-۱۳۸۸, ۱۷:۴۳:۲۸
(۰۱-مهر-۱۳۸۸, ۱۵:۵۲:۴۲)torabi.ieee نوشته است: [ -> ]منم الان همین مشکل رو داشتم با فیوز بیتهای کلاک ور رفتم درست شدمشکلم همینه که نمیتونم فیوزبیتها رو تغییر بدم
۰۱-مهر-۱۳۸۸, ۲۱:۳۲:۱۵
خوب بالاخره بعد کلی مشورت با دوست خوبم JKX مشکل میکروها حل شد.
من 5 تا میکرو (سه تا atmega32 و دو تا atmega16) رو که فیوزبیتهاش قابل تغییر نبودند رو دوباره زنده کردم. روش کار رو کامل توضیح میدم:
نکته مهم: این روشها فقط و فقط برای میکروهایی جواب میده که فیوزبیتهای مربوط به منابع کلاک اونها (CKSELها از صفر تا سه و فیوزبیت CKOPT) درست پروگرام نشده باشند. این روشها بسته به نوع پروگرام متفاوت هستند اما اگر نمیدونید چه کردید بهتره همه رو امتحان کنید:
1- یک کریستال خارجی (زیر 10 مگاهرتز) به دو پین XTAL1 و XTAL2 میکرو وصل کنید و سعی کنید با برنامه پروگرامر حالت پیشفرض فیوز بیتها رو Write کنید.
2- یک اوسیلاتور خارجی RC به پین xtal1 وصل کنید. این در حالتی هست که فیوزبیت CKOPT رو پروگرام کردید.
3- این روش برای من جواب داد: یه سیگنال کلاک توسط یه AVR سالم به پین xtal1 بدهید.چگونه؟ خیلی ساده همه شما حتما اوایل شروع کار با AVRچشمک زن ساختید. کافیه یه AVR سالم رو با دستور زیر پروگرام کنید (بیسیک نوشتم که راحت باشید):
من اینجا از Atmega8 استفاده کردم پورت B رو خروجی قرار دادم و نهایتا پین 0 پورت B رو در یه حلقه با دستور Toggle مرتب 0 و 1 میکنم.
وقتی برنامه فوق رو روی avr ریختید میبایست پینی رو که مرتب صفر و یک میشه به پین xtal1 میکرو از کار افتاده وصل کنید (دقت کنید این کار رو روی همون پروگرامر انجام بدید و البته اینکه منبع تغذیه میکرو در حال کار سالم رو هم از همون پروگرامر بگیرید. دقت کنید اشتباه وصل نکنید و هر دو میکرو و پروگرامر و حتی pc شما آسیب بینه)
حال در پروگرامر سعی کنید حالت پیشفرض فیوزبیتها رو Write کنید. به علت اینکه سیگنال کلاک مدام 0 و 1 میشه چنیدین بار امتحان کنید. خودم یکی دو بار امتحان کردم اما نشد که با تکرار زیاد فیوزبیتهای پیشفرض Write شدند.
همانطور که گفتم اگر فیوزبیتهای مربط به منابع کلاک رو فقط عوض کرده باشید این روشها جواب خواهد داد مطمئنا اگر یکی از فیوزبیتهای jtagen یا spien رو غیرفعال کرده باشید این روش ها اصلا جواب نمیده چون شما کاملا ارتباط رو قطع کردید که تنها راه حل استفاده از پروگرامرهای موازی با ولتاژ بالا هست.
و بالاخره یه توصیه مهم:
هیچ وقت تا از تنظیم صحیح فیوزبیتها مطمئن نشدید اونها رو تغییر ندید. مستندات ATMEL در مورد فیوزبیتها رو حتما قبل از تغییر اونها با دقت بخونید . اطلاعات مربوط به فیوز بیتهای هر میکرو AVR در دیتاشت ان در قسمت Memory Programming موجود هست.
این قسمتی از اطلاعاتی بود که من طی این دو روز که 5 تا AVR رو خراب کردم به دست آوردم.
من 5 تا میکرو (سه تا atmega32 و دو تا atmega16) رو که فیوزبیتهاش قابل تغییر نبودند رو دوباره زنده کردم. روش کار رو کامل توضیح میدم:
نکته مهم: این روشها فقط و فقط برای میکروهایی جواب میده که فیوزبیتهای مربوط به منابع کلاک اونها (CKSELها از صفر تا سه و فیوزبیت CKOPT) درست پروگرام نشده باشند. این روشها بسته به نوع پروگرام متفاوت هستند اما اگر نمیدونید چه کردید بهتره همه رو امتحان کنید:
1- یک کریستال خارجی (زیر 10 مگاهرتز) به دو پین XTAL1 و XTAL2 میکرو وصل کنید و سعی کنید با برنامه پروگرامر حالت پیشفرض فیوز بیتها رو Write کنید.
2- یک اوسیلاتور خارجی RC به پین xtal1 وصل کنید. این در حالتی هست که فیوزبیت CKOPT رو پروگرام کردید.
3- این روش برای من جواب داد: یه سیگنال کلاک توسط یه AVR سالم به پین xtal1 بدهید.چگونه؟ خیلی ساده همه شما حتما اوایل شروع کار با AVRچشمک زن ساختید. کافیه یه AVR سالم رو با دستور زیر پروگرام کنید (بیسیک نوشتم که راحت باشید):
کد:
$regfile = "M8def.dat"
$crystal = 8000000
Config Portb = Output
Do
Toggle Portb.0
Loop
End
من اینجا از Atmega8 استفاده کردم پورت B رو خروجی قرار دادم و نهایتا پین 0 پورت B رو در یه حلقه با دستور Toggle مرتب 0 و 1 میکنم.
وقتی برنامه فوق رو روی avr ریختید میبایست پینی رو که مرتب صفر و یک میشه به پین xtal1 میکرو از کار افتاده وصل کنید (دقت کنید این کار رو روی همون پروگرامر انجام بدید و البته اینکه منبع تغذیه میکرو در حال کار سالم رو هم از همون پروگرامر بگیرید. دقت کنید اشتباه وصل نکنید و هر دو میکرو و پروگرامر و حتی pc شما آسیب بینه)
حال در پروگرامر سعی کنید حالت پیشفرض فیوزبیتها رو Write کنید. به علت اینکه سیگنال کلاک مدام 0 و 1 میشه چنیدین بار امتحان کنید. خودم یکی دو بار امتحان کردم اما نشد که با تکرار زیاد فیوزبیتهای پیشفرض Write شدند.
همانطور که گفتم اگر فیوزبیتهای مربط به منابع کلاک رو فقط عوض کرده باشید این روشها جواب خواهد داد مطمئنا اگر یکی از فیوزبیتهای jtagen یا spien رو غیرفعال کرده باشید این روش ها اصلا جواب نمیده چون شما کاملا ارتباط رو قطع کردید که تنها راه حل استفاده از پروگرامرهای موازی با ولتاژ بالا هست.
و بالاخره یه توصیه مهم:
هیچ وقت تا از تنظیم صحیح فیوزبیتها مطمئن نشدید اونها رو تغییر ندید. مستندات ATMEL در مورد فیوزبیتها رو حتما قبل از تغییر اونها با دقت بخونید . اطلاعات مربوط به فیوز بیتهای هر میکرو AVR در دیتاشت ان در قسمت Memory Programming موجود هست.
این قسمتی از اطلاعاتی بود که من طی این دو روز که 5 تا AVR رو خراب کردم به دست آوردم.
۱۳-مرداد-۱۳۸۹, ۰۰:۵۱:۳۱
سلام بروبچ
من برنامه رو اصلاح كردم و يك تاخير 10 ميكرو ثانيه ايجاد كردم كه رويه b.0يك فركانس 100كياو هرتز توليد بشه بعد خود به خود اين جمله(...prog$) جلوي waitus 10 ظاهر شد و در قسمت فيوز بيت ها يه دو سه بار كه Refresh كردم ميكرو رو شناخت و فيوزبيتها نشون داد بعد اصلاحش كردم ور رفتم بهش تا فيزبيت 1كيلوي داخلي ثبت شد و ميكروم زنده شد!
با اين برنامه سريعتر ميكرو رو مي شناسه!
سما براي هر ميكرويي ميتونيد برنامه و فركانس كاري رو تغيير بدين.
من برنامه رو اصلاح كردم و يك تاخير 10 ميكرو ثانيه ايجاد كردم كه رويه b.0يك فركانس 100كياو هرتز توليد بشه بعد خود به خود اين جمله(...prog$) جلوي waitus 10 ظاهر شد و در قسمت فيوز بيت ها يه دو سه بار كه Refresh كردم ميكرو رو شناخت و فيوزبيتها نشون داد بعد اصلاحش كردم ور رفتم بهش تا فيزبيت 1كيلوي داخلي ثبت شد و ميكروم زنده شد!
با اين برنامه سريعتر ميكرو رو مي شناسه!
سما براي هر ميكرويي ميتونيد برنامه و فركانس كاري رو تغيير بدين.
۰۷-اردیبهشت-۱۳۹۰, ۰۲:۳۲:۳۴
سلام
من هم همین مشکلی رو که گفتید دارم با این تفاوت که در حالت defult هم میکروم بعد از یک بار پروگرام شدن دیگه قابل پروگرام شدن نیست و هین ارور(chip enable program error ) رو میده می خواستم بدونم با تغییر فیوز خواسی می شه مشکل رو حل کرد. ( تفاوتش هم تو اینه که شما می خواستید میکرو رو برگردونید من میخوام دیگه میکروم اینجوری نشه چون هرچی پروگرم می کنم بازم میکروم به همین وضع می افته!)
فقط من تازه کارم خواهشا یه جوری بگید که متوجه شم!
برنامه پروگرامرم هم progisp هست
ممنون از دوستان
من هم همین مشکلی رو که گفتید دارم با این تفاوت که در حالت defult هم میکروم بعد از یک بار پروگرام شدن دیگه قابل پروگرام شدن نیست و هین ارور(chip enable program error ) رو میده می خواستم بدونم با تغییر فیوز خواسی می شه مشکل رو حل کرد. ( تفاوتش هم تو اینه که شما می خواستید میکرو رو برگردونید من میخوام دیگه میکروم اینجوری نشه چون هرچی پروگرم می کنم بازم میکروم به همین وضع می افته!)
فقط من تازه کارم خواهشا یه جوری بگید که متوجه شم!
برنامه پروگرامرم هم progisp هست
ممنون از دوستان
۰۷-اردیبهشت-۱۳۹۰, ۱۰:۴۳:۳۷
سمت راست، پایین برنامه progisp گزینه program fuse را تیکش را بردار که فیوز بیت ها پروگرام نشن و میکرو در حالت default باشه (البته این مال وقتی هست که میکرو نو هست و قبلا تغییری بهش ندادی)
۰۷-اردیبهشت-۱۳۹۰, ۲۳:۱۱:۲۹
(۰۷-اردیبهشت-۱۳۹۰, ۱۰:۴۳:۳۷)mahdi20 نوشته است: [ -> ]سمت راست، پایین برنامه progisp گزینه program fuse را تیکش را بردار که فیوز بیت ها پروگرام نشن و میکرو در حالت default باشه (البته این مال وقتی هست که میکرو نو هست و قبلا تغییری بهش ندادی)
اگه فیوز ها write نشن مشکلی برای اجرا (موقع سوار شدن توی مدار) بوجود نمی آد؟
یعنی برنامه میکرو درست اجرا میشه؟
۰۸-اردیبهشت-۱۳۹۰, ۰۰:۱۷:۴۹
اگر از فیوز بیت داخلی با مقدار 1 مگاهرتز توی برنامت استفاده کرده باشی، نه!!!
اما اگر با یه فرکانس دیگه کار کردی یا از کریستال خارجی استفاده کردی، مشکل ایجاد میشه و باید فیوزبیت ها را پروگرام کنی!
اما اگر با یه فرکانس دیگه کار کردی یا از کریستال خارجی استفاده کردی، مشکل ایجاد میشه و باید فیوزبیت ها را پروگرام کنی!
صفحهها: 1 2