Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Boot Loader в AT90USB646
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Alio
Только, только начинаю работать с AT90USB646 и не получается
после ресета(задействовав HWB пин, HWBE=0) стартовать в Boot Loader.
Стартует прошитое приложение(HID).
Может кому-то такое знакомо ?
Прошиваю МК avreal32 через Byte Blaster.
Спасибо.
Peter Pavlov
Цитата(Alio @ Sep 21 2007, 16:12) *
Только, только начинаю работать с AT90USB646 и не получается
после ресета(задействовав HWB пин, HWBE=0) стартовать в Boot Loader.
Стартует прошитое приложение(HID).
Может кому-то такое знакомо ?
Прошиваю МК avreal32 через Byte Blaster.
Спасибо.

А фузы случайно не надо шить что бы выбрать загрузку бутлоадера? В атмеге128 фузами только можно выбрать размер и точку старта программы.
Alio
Цитата(Peter Pavlov @ Sep 23 2007, 20:53) *
А фузы случайно не надо шить что бы выбрать загрузку бутлоадера? В атмеге128 фузами только можно выбрать размер и точку старта программы.

Даа,
шью BOOTSZ=0, BOOTRST=1 и этот HWBE=0.
Alio
Есть предположение, что avreal затирает область bootloader'а
во Флэше.
Известно, что на Атмеле есть прошивка для bootloader'а.
Т.е. можно пробовать восстанавливать его.
Но его нужно прошивать в свою область во Флэше ?
И эта прошивка а90 файл.
Не получается почему-то это с avreal.

???
Peter Pavlov
Цитата(Alio @ Sep 25 2007, 17:07) *
Есть предположение, что avreal затирает область bootloader'а
во Флэше.
Известно, что на Атмеле есть прошивка для bootloader'а.
Т.е. можно пробовать восстанавливать его.
Но его нужно прошивать в свою область во Флэше ?
И эта прошивка а90 файл.
Не получается почему-то это с avreal.

???

Все нормально с avreal, прошил не один десяток бутлоадеров им. В хексе должно быть правильное смещение на начало бут области. В иаре нужно выбрать выходной файл - hex extended если помню точно. А само смщение прописать в настройках проекта
Настройки для самого толстого бутлоадера
xlink->#define->

BOOT_SIZE=2000
FLASH_SIZE=20000
IVT_SIZE=8C
RAM_SIZE=1000
RAM_BASE=100
RSTACK_SIZE=400
CSTACK_SIZE=100

и сам xcl file:

-ca90
-w29


//=============================================================================
// Interrupt vectors

-Z(CODE)INTVEC=(FLASH_SIZE-BOOT_SIZE)-(FLASH_SIZE-BOOT_SIZE+IVT_SIZE-1)

//=============================================================================
// Fill unused with RETI

-H1895
-h(CODE)(FLASH_SIZE-BOOT_SIZE)-(FLASH_SIZE-BOOT_SIZE+IVT_SIZE-1)

//=============================================================================
// Code memory

-Z(CODE)NEAR_F,HUGE_F,SWITCH,INITTAB,DIFUNCT,NEAR_ID,CODE=(FLASH_SIZE-BOOT_SIZE+IVT_SIZE)-(FLASH_SIZE-1)
-Z(FARCODE)FAR_F=(FLASH_SIZE-BOOT_SIZE+IVT_SIZE)-(FLASH_SIZE-1)

//=============================================================================
// RAM

-Z(DATA)TINY_I,TINY_Z,TINY_N=RAM_BASE-FF
-Z(DATA)NEAR_I,NEAR_Z=RAM_BASE-(RAM_BASE+RAM_SIZE-1)
-Z(DATA)RSTACK+RSTACK_SIZE=RAM_BASE-(RAM_BASE+RAM_SIZE-1)
-Z(DATA)CSTACK+CSTACK_SIZE=RAM_BASE-(RAM_BASE+RAM_SIZE-1)
Сергей Борщ
Цитата(Alio @ Sep 25 2007, 17:07) *
Есть предположение, что avreal затирает область bootloader'а во Флэше.
avreal "сам" ничего не делает. Если вы пытаетесь в кристалл с зашитым загрузчиком дописать свою программу, да еще с ключем -e, то конечно затрет. Более того, в новом контроллере в этой области ничего не записано - вы должны записать туда загрузчик самостоятельно.
Цитата(Alio @ Sep 25 2007, 17:07) *
И эта прошивка а90 файл.
А вы пробовали его открывать текстовым редактором? Это случайно не ассемблерный исходник?
Alio
05.gif Значит после avreal бутлоадер действует.
Только, что у меня лишь прошивочный файл, без исходника,
но именно для AT90USB646 от Атмела.
Правда это .а90 файл.IAR такие даёт. Может у меня в связи
с этим не идёт с бутлоадером работа после avreal...

Цитата(Сергей Борщ @ Sep 26 2007, 12:09) *
avreal "сам" ничего не делает. Если вы пытаетесь в кристалл с зашитым загрузчиком дописать свою программу, да еще с ключем -e, то конечно затрет.

...значит с ключом -е и boot область затирается...

Цитата(Сергей Борщ @ Sep 26 2007, 12:09) *
Более того, в новом контроллере в этой области ничего не записано - вы должны записать туда загрузчик самостоятельно.

Это интересная информация

Цитата(Сергей Борщ @ Sep 26 2007, 12:09) *
А вы пробовали его открывать текстовым редактором? Это случайно не ассемблерный исходник?

Да, и в текстовом редакторе видно, что это hex файл, у него такое расширение от IAR.
А совместим ли он INTEL hex файлами - ?.
Сергей Борщ
Цитата(Alio @ Sep 26 2007, 15:01) *
...значит с ключом -е и boot область затирается...
Это интересная информация
С этим ключем стирается все - код, загрузчик, локи, eeprom.
Цитата(Alio @ Sep 26 2007, 15:01) *
Да, и в текстовом редакторе видно, что это hex файл, у него такое расширение от IAR.
А совместим ли он INTEL hex файлами - ?.
Да, вспоминаю, действительно по умолчанию такое расширение. Попробуйте прописать его avreal-ом, он выругается если что.
Alio
Цитата(Сергей Борщ @ Sep 26 2007, 17:35) *
Попробуйте прописать его avreal-ом, он выругается если что.


Да,
прошивка проходит :


Command:
+90usb1286 -p1 -ab -o8000 -fjtagen=1,cksel=6 -ew -! 64X-usb-boot-1-0-0.a90
Start address record in HEX file ignored
Device connected, but not recognised, ID: 0x1E9682
Chip not locked
Device erased
Device connected, but not recognised, ID: 0x1E9682
Device type forced to 90USB1286
Fuses
OSCCAL = A7
CKDIV = 1
CKOUT = 0
SUT = 0
CKSEL = 6
BLB1 = 3
BLB0 = 3
OCDEN = 1
JTAGEN = 1
WDTON = 1
EESAVE = 1
BOOTSZ = 0
BOOTRST = 1
HWBE = 0
BODLEVEL = 4
Programming CODE memory
....... done
Programming fuses
New fuses value
OSCCAL = A7
CKDIV = 1
CKOUT = 0
SUT = 0
CKSEL = 6
BLB1 = 3
BLB0 = 3
OCDEN = 1
JTAGEN = 1
WDTON = 1
EESAVE = 1
BOOTSZ = 0
BOOTRST = 1
HWBE = 0
BODLEVEL = 4
Reset pin released
Adapter disabled

...Но после бутлоадер не запускается ...
Сергей Борщ
Цитата(Alio @ Sep 27 2007, 10:19) *
BOOTSZ = 0
...Но после бутлоадер не запускается ...
Размер бут-области правильно указан? Скиньте ссылку на раздел сайта атмела где лежит прошивка вашего загрузчика.
Alio
Цитата(Сергей Борщ @ Sep 27 2007, 12:20) *
Размер бут-области правильно указан?

...не гарантирую

Цитата(Сергей Борщ @ Sep 27 2007, 12:20) *
Скиньте ссылку на раздел сайта атмела где лежит прошивка вашего загрузчика.


http://www.atmel.com/dyn/products/product_...mp;part_id=3877

это "AT90USB64x USB Bootloader v1.0.0"
Сергей Борщ
Цитата(Alio @ Sep 27 2007, 14:14) *
это "AT90USB64x USB Bootloader v1.0.0"
На первый взгляд все правильно, в описании они пишут про размер бут-области 8К. Но содержимое файла располагается с адреса 0xF000 (0x7800 в словах), а это соответствует размеру бут-области 4К. Попробуйте -fBOOTSZ=1
При прошивке вы зачем-то указываете его как 90usb1286.
Да, еще попробуйте добавить в командную строку avreal ключ -v, пусть он проверит - правильно ли зашивается?
Alio
Цитата(Сергей Борщ @ Sep 27 2007, 15:26) *
На первый взгляд все правильно, в описании они пишут про размер бут-области 8К. Но содержимое файла располагается с адреса 0xF000 (0x7800 в словах), а это соответствует размеру бут-области 4К. Попробуйте -fBOOTSZ=1

Прошил так, но после ресета с участием HWB пина всё равно работает зашитое приложение.

Цитата(Сергей Борщ @ Sep 27 2007, 15:26) *
При прошивке вы зачем-то указываете его как 90usb1286.

AVREAL V1.25rev5(наверное самая новая) не поддерживает конкретно 90usb646 кристалл,
а 90usb1286 поддерживает. Используя ключ -! веду прошивку.

Цитата(Сергей Борщ @ Sep 27 2007, 15:26) *
Да, еще попробуйте добавить в командную строку avreal ключ -v, пусть он проверит - правильно ли зашивается?

После прошивки загрузчика с ключом -v есть сообщение:

Verifying CODE memory
....... passed
done


При программировании загрузчика среди прочих выдаётся сообщение:
"Start address record in HEX file ignored"
при программировании приложения его нет.
defunct
Цитата(Alio @ Sep 27 2007, 17:54) *
не поддерживает конкретно 90usb646 кристалл,
а 90usb1286 поддерживает.

Нельзя шить кристал с меньшим объемом флеш как кристал с бОльшим объемом.
Размеры страницы флеш разные, так можно убить чип.
Если программатором не поддерживается конкретно ваш чип, то надо выбирать ближайший подобный по объему флеш. Например m8535 - можно шить как m88, но нельзя как m16 (хотя по периферии m8535 и m16 практически одно и то же, а с m88 кроме объема флеш нет ничего общего).
Alio
Цитата(defunct @ Sep 27 2007, 18:09) *
Нельзя шить кристал с меньшим объемом флеш как кристал с бОльшим объемом.

Да, понятно.
... так, тут практически, прошивал уже не единыжды приложение и работал над ним.
может ещё больше не запорчу этот чип
Alio
Прошивалось файлом скомпилированным под МК с меньшим флешом
ReAl
Цитата(defunct @ Sep 27 2007, 17:09) *
Нельзя шить кристал с меньшим объемом флеш как кристал с бОльшим объемом.
Размеры страницы флеш разные, так можно убить чип.

"Зависит от".
У 90usb128* и 90usb64* программирование полностью одинаковое - размеры страниц, фьюзы.
У ATmega128 и ATmega64, кстати, тоже (кажется, у всех пар 64/128К флеша страница одинаковая, навскидку не помню).
И даже у трёх разных в линейке 90can128/64/32 у всех одниаковый размер страницы флеша, 256 байт - тут совет "взять для 90can32 с одинаковым объёмом, например, atmega32" может сильно помешать.

А причина отсутствия поддержки тупая, как булыжник - на момент выхода версии 125r5 в атмеловской документации были указаны одинаковые devID для 90usb128* и для 90usb64*, причём по виду это явно был идентификатор от 90usb128*, а в xml-ках от AVRstudio 90usb64* отсутствовали.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.