Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATxmega64 -> ATxmega128
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
zombi
Купил свои первые xmega64 для опытной партии изделий.
Написал прогу. Всё работает, всё гут.
Решил купить иксмеги для серии.
И оказалось что проще купить ATxmega128 чем ATxmega64.
Менеджер по продажам с пеной у рта кричал что чипы отличаются только обьёмами памяти и замена произойдёт абсолютно безболезненно.
Поверил. Купил.
Собрал изделие на 128-й.
НЕРАБОТАЕТ.
Начал рыть, пол дня блин убил.
Выяснил что неработает вот такой простейший код:
Код
ldi ra,low(MMM)
push ra
ldi ra,high(MMM)
push ra
ret
...
MMM: nop

Оказалось что у иксмеги128 програмной памяти больше чем 128кБ (у неё 136!) и у неё PC 22 бита!
Команды CALL,RCALL и вход в прерывание загружает в стек не 2 а 3 байта.
Пришлось переписывать программу и пересчитывать времянки.
Вот такая вот "безболезненная" замена. biggrin.gif
Кстати, а где в DS на иксмеги указывается размер PC?
Юрий_СВ
Цитата
3.10 RAMP and Extended Indirect Registers
In order to access program memory or data memory above 64K bytes, the address or address
pointer must be more than 16-bits. This is done by concatenating one register to one of the X-,
Y- or Z-registers, and this register then holds the most significant byte (MSB) in a 24-bit address
or address pointer.
These registers are only available on devices with external bus interface and/or more than 64K
bytes of program or data memory space. For these devices, only the number of bits required to
address the whole program and data memory space in the device is implemented in the
registers.
.................
_Артём_
Цитата(zombi @ Mar 31 2012, 14:13) *
Оказалось что у иксмеги128 програмной памяти больше чем 128кБ (у неё 136!) и у неё PC 22 бита!

Откуда дровишки?
Зачем 22 бита?
Хватает 17 бит.

Цитата(zombi @ Mar 31 2012, 14:13) *
Команды CALL,RCALL и вход в прерывание загружает в стек не 2 а 3 байта.

Что логично
zombi
Цитата(_Артём_ @ Mar 31 2012, 14:29) *
Откуда дровишки?
Зачем 22 бита?
Хватает 17 бит.

Ну да, я имел ввиду > 16-ти.
Цитата(_Артём_ @ Mar 31 2012, 14:29) *
Что логично

Логично то логично. Но сбило столку число 128 в названии чипа!
_Артём_
Цитата(zombi @ Mar 31 2012, 14:38) *
Но сбило столку число 128 в названии чипа!

Бывает.
Хотя там ясно сказано 128+8 на бутлоадер.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.