Замена atmega8 на atmega168

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
Yftul
Вымогатель припоя
Сообщения: 540
Зарегистрирован: Пт фев 20, 2009 12:26:26

Замена atmega8 на atmega168

Сообщение Yftul »

Уважаемые коты, в одной из своих самоделок столкнулся с недостатком flash-памяти, в связи с чем была куплена mega168. Программа под cvavr перекомпилирована с mega168.h и mega168_bits.h, поправлены очевидные баги с регистрами.

Результат - программа не работает. Может кто подсказать ключевые точки несовместимости subj, чтобы знать куда копать.

В самоделке использованы следующие ресурсы контроллера:
TWI - на этот блок наибольшие подозрения;
SPI, UART, Timer0, Timer1 - ctc mode + захват, ADC, Ext int. Также идет обращение к eeprom.

Видимый результат - программа выдает половину инициализационной строки в UART и намертво виснет.
Реклама
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Замена atmega8 на atmega168

Сообщение ChipKiller »

Yftul писал(а):... подсказать ключевые точки несовместимости subj, чтобы знать куда копать.
... копать нужно в сторону datasheeta. mega168 можно поставить вместо mega48 или mega88, а с mega8 - различия очень существенны (сравните хотя-бы *.h-файлы в любом текстовом редакторе ). Выход один - переписать программу.
Реклама
Аватара пользователя
Yftul
Вымогатель припоя
Сообщения: 540
Зарегистрирован: Пт фев 20, 2009 12:26:26

Re: Замена atmega8 на atmega168

Сообщение Yftul »

Ну... практика уже показала, что нужно вносить изменения. Логично предположить, что алгоритмы на C вряд ли нуждаются в корректировке. Остаются аппаратные устройства. Список используемых устройств я привел, хотелось бы услышать советы тех, кто уже это делал - какие именно устройства нуждаются в изменении алгоритма работы?
Последний раз редактировалось Yftul Ср июн 08, 2011 21:19:56, всего редактировалось 1 раз.
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Замена atmega8 на atmega168

Сообщение radio-kot »

Yftul писал(а): выдает половину инициализационной строки в UART и намертво виснет.
добавьте контрольные точки по методу отладки через UART - www.proavr.narod.ru/z4.htm

и смотрите где виснет - станет ясно почему. :beer:
Будете проходить мимо- проходите!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Yftul
Вымогатель припоя
Сообщения: 540
Зарегистрирован: Пт фев 20, 2009 12:26:26

Re: Замена atmega8 на atmega168

Сообщение Yftul »

Спасиб за совет, вообще планирую отключить все устройства и пробовать включать их по очереди с целью выяснить что именно глючит. Но все же, может кто делал нечто подобное, хотелось бы увидеть кто какие грабли проверил на своем лбу, чтобы не набивать уже набитых кем-то шишек?

Upd: набрел на атмеловский апноут по переходу с mega8 на mega88:
appnote AVR094
так как mega88 принципиально не отличается от mega168, буду курить.
Реклама
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

Re: Замена atmega8 на atmega168

Сообщение SubDia »

можете еще Appnote AVR095 посмотреть ("Migrating between ATMega48, ATMega88&ATMega168").
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Реклама
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Замена atmega8 на atmega168

Сообщение Satyr »

А чего бы просто в дебагере не запустить и не пройти по шагам все и посмотреть ?
Аватара пользователя
Yftul
Вымогатель припоя
Сообщения: 540
Зарегистрирован: Пт фев 20, 2009 12:26:26

Re: Замена atmega8 на atmega168

Сообщение Yftul »

К сожалению протеус 7.4 намертво виснет при попытке запустить данный проект. В железе все работает нормально(на старом процессоре).
Впрочем спасибо за совет, попробую обновить протеус и погонять проект в нем.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Замена atmega8 на atmega168

Сообщение Satyr »

Вобще я имел ввиду собрать железяку с атмегой168 и на ней программу дебагом посмотреть.
Аватара пользователя
Yftul
Вымогатель припоя
Сообщения: 540
Зарегистрирован: Пт фев 20, 2009 12:26:26

Re: Замена atmega8 на atmega168

Сообщение Yftul »

Satyr писал(а):Вобще я имел ввиду собрать железяку с атмегой168 и на ней программу дебагом посмотреть.
Хм. Когда я работал с контроллерами cygnal, их программатор работал также и отладчиком. Насколько я могу судить, программатор от Петьки этого делать не может. Ошибаюсь?
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Замена atmega8 на atmega168

Сообщение Satyr »

Я давно не могу понять, на кой народ наплодил мильон программаторов самопалов, ни на что не способных и не совместимых с чем либо, кроме себя.

Есть атмеловский внутрисхемные отладчики jtagice, jtagice2, one. первый давно сворован и проклонирован и не сложнее среднестатистического колхозного прошивальщика на USB от дяди Васи.

На кой весь этот гемморой ?

p.s. пример http://easyelectronics.ru/vnutrisxemnay ... g-ice.html
Аватара пользователя
Yftul
Вымогатель припоя
Сообщения: 540
Зарегистрирован: Пт фев 20, 2009 12:26:26

Re: Замена atmega8 на atmega168

Сообщение Yftul »

Попрошу, меньше экспрессии. За ссылочку спасибо.
Аватара пользователя
Yftul
Вымогатель припоя
Сообщения: 540
Зарегистрирован: Пт фев 20, 2009 12:26:26

Re: Замена atmega8 на atmega168

Сообщение Yftul »

Изучение литературы показало, что mega168 не поддерживает jtag, а для debugwire нужен фирменный отладчик.
Так что этот путь отпадает.
Аватара пользователя
Yftul
Вымогатель припоя
Сообщения: 540
Зарегистрирован: Пт фев 20, 2009 12:26:26

Re: Замена atmega8 на atmega168

Сообщение Yftul »

Спасибо всем, кто откликнулся, проблема решена - заработало. Помог appnote atmel.

Основными проблемами были:
1. Несовпадение имен некоторых регистров;
2. Разница в инициализации части устройств(я полностью перегенерировал в визарде инициализационный блок);
3. Разница в USART - пришлось полностью перегенерить все что отвечает за прием/передачу;
4. Разница в регистре, управляющим поведением процессора при выполнении команды "sleep"

Алгоритмы работы SPI(внешняя память), TWI(DS1307+eeprom+дочерний контроллер на tiny26), Timer1 + захват(приемник RC-5)
не изменились. ADC пока не трогал, но нужно учесть изменившийся Vref, внешние прерывания также пока не трогал.

ЗЫ: а зависало по моей собственной криворукости - случайно включил прерывание SPI при генерации конфига устройств, хотя обмен с памятью ведется с помощью spi.h, без использования прерываний и обработчика естественно не предусмотрено.
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Замена atmega8 на atmega168

Сообщение Satyr »

Yftul писал(а):что mega168 не поддерживает jtag, а для debugwire нужен фирменный отладчик.
Так и jtag надо "фирменный" для отладки -)))

debugwire тормозно очень шевелится, но жить можно.
Аватара пользователя
Yftul
Вымогатель припоя
Сообщения: 540
Зарегистрирован: Пт фев 20, 2009 12:26:26

Re: Замена atmega8 на atmega168

Сообщение Yftul »

JTAG-отладчик несложно собрать самому, в том числе по Вашей же ссылке, а debugwire-отладчик придется покупать, причем не за копейки.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»