
Сообщение от
falanger
Камиль, а контроллер в ZXMC можно перешить через ISP-интерфейс как обычно оно делается с AVR-ами в схеме?
Конечно, на плате предусмотрено подключение ISP-программатора.
По моему в инструкции к программированию ZXMC я упоминал об этом (см. boot_ld.txt).
Код:
***************************************************************
Q: Как запрограммировать микроконтроллер ISP программатором.
Такой способ нужен при программировании нового
микроконтроллера, либо если в результате сбоя
"полетел" внутренний загрузчик.
Удобней всего воспользоватся программой UNIPROF,
которую можно скачать с сайтов:
http://avr.nikolaew.org/
http://nikolaew.org/
http://nikolaew.photofile.ru/
Программировать можно простейшим кабелем через
LPT или RS232 порт IBM-ки, подключившись к разьему
SPI (X4) мульткарты.
В HELPe к программе UNIPROF есть схемы кабелей.
Я рекомендую вариант программирования через LPT
кабель, собранный по такой схеме:
LPT ZXMC X4
+------+----+ +---+------+
! D0 ! 2 !----------! 5 ! /RES !
+------+----+ +---+------+
! D1 ! 3 !----------! 4 ! MOSI !
+------+----+ +---+------+
! D2 ! 4 !----------! 2 ! SCK !
+------+----+ +---+------+
! BISY ! 10 !----------! 3 ! MISO !
+------+----+ +---+------+
! GND ! 25 !----------! 6 ! GND !
+------+----+ +---+------+
Программирование производится при включенной
Мультикарте, лучше если она стоит в компьютере.
В начале надо проверить состояние FUSES
микроконтроллера и при необходимости установить
их в нужное состояние.
Для UNIPROF FUSES надо установить так:
[v] CKSEL0 ;\
[v] CKSEL1 ; \
[v] CKSEL2 ; / - внешний кварц на 11.0592 Мгц
[v] CKSEL3 ;/
[v] SUT0
[ ] SUT1
[v] BODEN
[v] BODLEVEL
[ ] BOOTRST ;Запуск с адреса 1E00h
[ ] BOOTSZ0 ;\
[v] BOOTSZ1 ;/ Boot Size = 512 байт
[v] EESAVE
[ ] CKOPT
[ ] SPIEN
[v] WDTON
[v] S8515C
Если программировать только основной программный
блок и не использовать boot_loader, то бит BOOTRST
надо сбросить (запуск программы будет с 0 адреса).
Если необходимо оставить возможность модификации
прошивки через нуль-модемный кабель, то BOOTRST
надо установить и зашить в микроконтроллер файл
zxmc_ld.hex. Затем залить основной блок программой
AVRProg, как указано ниже. Перемычку при этом можно
не ставить, поскольку пока основной блок отсутствует
микроконтроллер стоит в режиме ожидания AVRProg.
В принципе зашить можно сразу и boot_ld и
основной блок программы. Для этого:
Любым текстовым редактором склеиваем файл
zxmc_ld.hex с файлом основной прошивки, удалив
из него последнюю строку :00000001FF
Эта строка должна остаться в конце получившегося
суммарного файла прошивки.
Сохранив получившийся файл, используем его
при записи в микроконтроллер.
ПРИМЕЧАНИЕ:
Надо учитывать, что в разных программаторах
состояние битов FUSES отображается разным
способом. Так например в UNIPROF единичное
состояние бита отображается галочкой (FUSES=1),
а нулевое состояние - отсутствием галочки.
В выше указанном состоянии FUSES, пустая
клетка означает не запрограммированное состояние
бита (FUSES=1), а звездочка - установленное
в 0 состояние бита. Тоесть обозначение
сделано с точностью до наоборот :)
Обязательно обратите на это внимание.
;*****************************************************
Q: Как перепрошить микроконтроллер ATMega8515
в ZXMC внутренним загрузчиком?
Это очень просто :)
Для начала нада спаять или купить нуль-модемный кабель.
Это два разьема типа DB9F (девятиконтактная розетка - "мама")
И как минимум 3-х жильный кабель (или 3-и отдельных провода).
Лучше всего сразу сделать 5-и жильный кабель, что позволит
работать с IBM-кой на максимально возможной скорости.
Длиной можно делать до 3 метров (даже больше).
Соединить надо так:
(упрощенный)
2 ------ 3
3 ------ 2
5 ------ 5
+-4 4-+
+-6 6-+
(полный)
7 ------ 8
8 ------ 7
На обоих разьемах 4 и 6 контакты соедините перемычкой.
Для прошивки используется программа AVRProg.exe из комплекта
разработчика для AVR-контроллеров ASTUDIO версии не ниже 1.4
Инструкция к прошивке такая:
1) Подсоедини нуль-модемный кабель к карте при выключенном питании
Спектрума.(IBM-ка при этом может быть включена либо выключена без
разницы).
2) Включи питание Спектрума (и IBM-ки если надо).
Возможно два варианта перехода в режим программирования:
2.1) Если текущая прошивка нормально работает с клавиатурой.
Нажми на клавиатуре Спектрума клавиши <WinMenu>+<Pause/Break>.
Проверь, что нажатие клавиш Спектрума уже никак не влияет на
ввод кодов. Это означает, что карта ждет команды от AVRProg.
2.2) Если случайно залита не рабочая прошивка (клавиатура не
работает). То перевести контроллер в режим программирования
надо подачей на вывод 29 (это бит 2 порта E) НУЛЯ.
Для этого надо установить перемычку между выводами 1 и 2
разьема X5. На плате этот разьем совмещен с разьемом X8,
поэтому лучше ориентироваться по выводам микроконтроллера.
1 1
X4 + + + + + + + + + X3
_____________________________________
| _|
| ATMEGA8515 |_
|_____________________________________|
1 1
X8 + + + + - - + + + + X5
|_| - здесь перемычка
3) После перевода микроконтроллера в режим программирования одним
из указанных способов надо запустить AVRProg.
Для начала проверим правильно ли AVRProg распознает
подключенное устройство:
После запуска программы, если ZXMC стоит в режиме
программирования, на экране меню программы AVRProg.
В окне Device серым цветом должно быть написано
[ ATMEGA8515 BOOT ]
Щелкни по кнопке [ Advanced... ]
В окошке:
Device signature [ 06 93 1E ]
Target board [ AVRBOOT ]
Target SW rev. [ 1.0 ]
Calibration byte [No_support]
Остальное не имеет значения.
Если все так, щелкни [ Close ]
Если все так, как описано выше можно приступать к прошивке.
Если при запуске AVRProg выдает окно с сообщением:
[ No supported board found! ]
значит карта не переключена в режим программирования.
Проверьте перемычку или снова нажмите <WinMenu>+<Pause> на
клавиатуре подключенной к Спектруму и перезапустите AVRProg.
Если распознавание прошло успешно:
4) В окне HEX file установите путь к имени файла прошивки.
5) Щелкните кнопку [ Programm ] в подменю Flash
Начнется процесс заливки новой прошивки в карту.
EEPROM пока не программируется.
FUSESы программируются при заливке начального загрузчика
и в дальнейшем их не надо менять.
После программирования, закрыть окно AVRProg и выключить, а
затем снова включить питание на Спектруме.
Теперь можно проверить работоспособность новой прошивки :)
;*************************************************************
Желаю удачи.
Kamil Karimov k2k@list.ru
Последняя редакция: 23.03.07