Тестовая прошивка для AVR микроконтроллеров (проверка работоспособности портов)

Титл для тестаВот и пришло время для первой прошивки. Данная прошивка является тестовой. Она не производит ни каких полезных действий, кроме дрыганья ножками по определенному алгоритму. Этой прошивкой можно проверить работоспособность всего микроконтроллера и портов ввода-вывода в частности.
Чтобы проверить микроконтроллер необходимо загрузить прошивку и посмотреть, что происходит на ножках. «Смотреть» можно или мультиметром, или простым пробником – светодиод последовательно с резистором 300 Ом – 1 кОм. Без резистора проверять не стоит – можно спалить порт ввода-вывода. Уровни сигналов на ножках меняются с «1» через «Z»-состояние в «0» и обратно. «Z» состояние введено в последовательность для контроля работоспособности порта в режиме входа.

Тестовая прошивка для микроконтроллера ATMega48/88/168.
Алгоритм работы прошивки ATMega48/88/168 показан на картинке (микроконтроллер установлен на макетной плате ATMega48/88/168, описанной ранее).

Схема работы тестовой прошивки

Микроконтроллер работает от внутреннего генератора, поэтому нет необходимости во внешнем кварце. Ножки 9 и 10 (подключение внешнего кварца) не задействованы, на случай если там окажется внешний кварц. Также не задействованы ножки 1 (сброс) и 21(опорное напряжение для АЦП). Проверить работоспособность можно двумя способами (смотри рисунок) – смотреть изменение уровня сигналов относительно земли (GND) или относительно ножки питания (VCC).
022-M48.HEX V1.0 [277 bytes] - Тестовая прошивка для ATMega48/88/168

Фьюзы для тестовой прошивки ATMega48/88/168

Как прошить микроконтроллер >


Тестовая прошивка для микроконтроллера ATTiny2313.
Алгоритм работы прошивки ATTiny2313 показан на картинке (микроконтроллер установлен на макетной плате ATTiny2313, описанной ранее).

Схема работы тестовой прошивки ATTiny2313

Микроконтроллер работает от внутреннего генератора, поэтому нет необходимости во внешнем. Ножки 4 и 5 (подключение внешнего кварца) не задействованы на случай если там окажется внешний кварц. Также не задействована ножка 1 (сброс). Проверить работоспособность можно двумя способами – смотреть изменение уровня сигналов относительно земли (GND) и относительно ножки питания (VCC).
022-T2313.HEX V1.0 [259 bytes] - Тестовая прошивка для ATTiny2313

Фьюзы для тестовой прошики ATTiny2313

Как прошить микроконтроллер >


Тестовая прошивка для микроконтроллера ATTiny13.
Алгоритм работы прошивки ATTiny13 показан на картинке (микроконтроллер установлен на макетной плате ATTiny13, описанной ранее).

Схема работы тестовой прошивки для ATTiny13

Микроконтроллер работает от внутреннего генератора (внешний большая роскошь для этого микроконтроллера, поэтому даже не рассматриваем). Естественно, не задействована ножка 1 (сброс). Проверяем работоспособность так же, как и у предыдущих микроконтроллеров.
022-T13.HEX V1.0 [240 bytes] - Тестовая прошивка для ATTiny13

Фьюзы для тестовой прошики ATTiny13

Как прошить микроконтроллер >


Проверка работоспособности «Z»-состояния портов ввода-вывода.

Проверка тест "Z" состояния

«Z»-состояние это состояние когда ножка сконфигурирована на вход и на ней нет ни какого уровня (она как-бы болтается в воздухе ни к чему не подключена). Для того чтобы проконтролировать наличие такого состояния можно воспользоваться резисторным делителем. При уровне «1» на делителе будет напряжение питания +5v, при уровне «0» – земля 0v, а при «Z»-состоянии порт ввода-вывода перестанет вмешиваться в работу делителя и он поделит напряжение питания и мы получим +2.5v.

ФАЙЛЫ:
022-AVR-tests - Исходники тестовых прошивок

, , , ,


Выходит что может например 2 или 3 ножка ATTiny2313 быть не в порядке ,
а ты не зная этого мучаешься с UART-ом . Не задумывался . Боялся всегда
о потере всего МК .
Если так , то эти тесты не так уж и бессмысленны как покажется вначале .


Скачал по Вашей сылке Тестовую прошивку для ATTiny 2313 Устанофил ФЬЮЗЫ
Многократно проверенным последовательным программатором,ПОСЛЕ ЭТОГО ПРОГРАМ. НЕВИДЕТ КОНТРОЛЛЕР. Нет ли ошибок в Ваших Фьюзах?


Критичные фьюзы: SPIEN-должен быть без галочки (разрешено последовательное программирование), RSTDISBL-должен быть с галочкой (разрешен сброс) и DWEN-должен быть с галочкой (запрещен debugWIRE). Постом позже я писал об этом.
Возможно, Вы програмировали программой у которой эти галочки ставятся инверсно, не как в даташите. Если это так, то гдето рядом с галочками есть сноска об этом сообщающая.
Если Вы неуверены как в программе ставятся фьюзы, просто прочитайте фьюзы с контроллера и посмотрите как установлены SPIEN, RSTDISBL.


Добрый день не подскажите в чем может быть проблема. использую COM программатор, пытаюсь записать тест программу на ATTiny13 с помощью uniprof, программа то видит, то не видит микруху. В чем может быть проблема?
Заранее спасибо.


uniprof последней версии? Галочку тормоз ставили? Провода программатора не слишком длинные? Питание нормальное? Как другие микроконтроллеры себя ведут?


GetChiper :
uniprof последней версии? Галочку тормоз ставили? Провода программатора не слишком длинные? Питание нормальное? Как другие микроконтроллеры себя ведут?

Что самое интересное вчера под вечер он все таки заработал, ничего особого я не делал просто вкл и выкл его. Программа записалась, логика работы правильная.


Честно говоря, с тини13 у меня тоже были аномалии. Бывало, также пропадала для программатора. Прошивал другим.


@alexandershahbazov
Есть простое правило, которое нужно отработать до автоматизма – перед тем как устанавливать фуз-биты в программаторе, сначала прочитайте их из МК. По состоянию фуза SPIEN сразу станет ясно, прямая или инверсная кодировка у вашей программы-программатора.


Приветствую. Есть известная схема. Если в делителе (в том что приведен выше два по одному килоому)поставить двух цветный светодиод, либо два в параллель. Но встречно. То в таком случае тест становится более информативным. При подаче логической единицы засветится красным. Z не горят оба. Логический ноль засветится зеленым. Подобную схему применяю давно. Эта схема проверена, информативна, надежна.


И кстати, в той схеме которая выше, на Mega 48. Аналогично можно делать. Можно взять одноцветные светодиоды. И включить их последовательно. В таком случае в Z горят оба. Логическая единица – горит верхний. Логический ноль – горит нижний.


[quote="GetChiper"]В блоге описан COM программатор Громова

Вопрос? Можно ли отладочную плату закрепить прямо на корпус разъёма DB-9-F, а на этой плате произвести монтаж всех деталей COM программатора Громова и панельку для прошивки MK ATtiny13 чтобы избавиться от длинных шлейф проводов.
На плату будет подаваться только питание 5v от отдельного блока питания. Вся конструкция будет подключаться к ПК с задней стороны для рошивки МК. Анатолий.


При тестировании МК-ов можно ли нагрузить светодиодами сразу все порты и как они будут загораться синхронно или хаотично? Ну просто полно светодиодов и текстолита.


В принципе можно, но нужно поставить к каждому светодиоду последовательно сопротивление побольше (до 1кОм) дабы не перегрузить микроконтроллер.

Светодиоды будут мигать так как они мигают на картинках, то есть синхронно.


А можно ли также проверить Mega8,по выводам совпадает с Mega48


Хотелось бы вариант прошивок для проверки всех портов МК и тактированием от внутреенего генератора.
Заранее благодарен.


Кроме тех, что идут на кварц, проверяются все. Как Вы установите фьюзы, от того генератора и будет работать прошивка (в статье приведены фьюзы для работы с внутренним задающим генератором).


Про фьюзы я знаю, но в устройствах без кварца порты XTAL пожечь можно, а данными прошивками проверить нельзя. Так что чотелось бы вариант прошивок для проверки всех портов МК. Это просьба/пожелание. За проделанную работу всеравно спасибо. Альтернативы пока не нашел.


После прошивки достаточно просто подать питание на контроллер? А то я новую atmega8a прошил, а светодиоды не мигают. Фьюзы не трогал, оставил как были с завода.


Для ATmega8 прошивка этой статьи (ATmega48/88/168) не подходит.