Отладчики

Итак, ваше устройство собрано, программа написана и зашита в МК. Включаем и убеждаемся в том, что устройство не работает. :-( Не надо паниковать, это обычное дело. Во первых, могут быть ошибки в монтаже (проверяем, исправляем), во вторых – ошибки программы. Загрузить все отладочные модули
в одном флаконе (~35 кБ)

  • prost_ab – “попроще”, формат AB
  • prost_26 – “попроще”, формат AB, для Tiny26
  • prost_asm -”попроще”, ассемблер
  • prost_c – “попроще”, IAR C
  • sloz_ab – “покруче”, формат AB
  • sloz_asm-”покруче”,ассемблер
  • sloz_c – “покруче”, IAR C

Интерфейс SPI

Соединение по SPI интерфейсу


Ошибку в монтаже чаще можно найти при помощи обычного тестера, если есть осциллограф или хотя бы логический пробник – совсем хорошо. А вот ошибку в программе найти сложнее. Это не персоналка и оконных отладчиков нету. Как впрочем и неоконных тоже :-)

А посмотреть внутрь ну очень хочется, ну хоть одним глазком – что там делается? Особенно при первом запуске отлаживаемой (и естественно, не работающей) программы.

Я рассуждал так. Раз уж у нас шлейф подключен на SPI интерфейс, имею в виду шлейф программатора, то его и надо использовать. То есть организовать обмен программы на компьютере (которая нам на привычном мониторе все отобразит) с отлаживаемым AVR. Так и сделал.

Тут надо отметить, что SPI интерфейс несколько “непривычный” (см. рис).

По сути, два связанных по SPI устройства имеют каждый по восьмиразрядному регистру, связанные “в кольцо”. Одно из устройств управляет обменом, генерируя стробы (master), второе пассивно – slave. Обмен происходит одновременно – мастер, передавая свой байт, одновременно получает байт от slave, то есть тут нельзя сделать обмен типа “запрос-ответ”. Поэтому я организовал как бы два потока информации.


Мастером, естественно, является компьютер, он постоянно передает данные на AVR.

С AVRом сложнее. Ведь обмен с компьютером для него задача неосновная, скажем даже – мешающая. Она должна занимать как можно меньше ресурсов – и по времени, и по занимаемой памяти, обрабатывая прерывания SPI интерфейса.

Исходя из таких требований, мною были написаны два модуля – один попроще, второй “покруче”. Сейчас есть несколько вариантов таких модулей – формат ассемблера, Algorithm Builder, C… Поэтому будем отталкиваться от протокола обмена. “Попроще” и “покруче” – так и будем называть в дальнейшем.Протокол который “попроще” хорошо подходит для МК с небольшим ОЗУ, типа Tiny26, 2313…