Чем отличается ATtiny2313A от ATtiny2313?
Ещё одна группа часто встречающихся в логах вопросов, это вопросы об отличиях новых «А-версий» микроконтроллеров AVR от их предшественников. Ищут «в чём различие atmega48p и atmega48pa», «разница программирования ATmega8A и ATmega8» или «переход с atmega16 на atmega16A».
Выражение «программирование микроконтроллера» может иметь разные значения и только иногда вопрос поставлен однозначно — «прошивка atmega32 та atmega32A».
Если термин «программирование» понимать как «написание и компиляция программ», то для поиска ответа необходимо обратиться к соответствующим документам от фирмы Atmel — описаниям на оба микроконтроллера и к разделу Migration Notes (в данном случае «migration» как раз и есть тот «переход», про который спрашивают). С точки зрения написания программ в большинстве случаев отличия нет. В AVR523: Migration from ATmega8 to ATmega8A написано
The ATmega8A is a functionally identical, drop-in replacement for the ATmega8. All devices are subject to the same qualification process and same set of production tests, but as the manufacturing process is not the same some electrical characteristics differ.
и далее по тексту видно, что разница действительно только в электрических характеристиках. Уменьшен ток потребления и теперь одна модель перекрывает весь диапазон тактовых частот и напряжений питания, который раньше покрывался двумя моделями, ATmega8 и ATmega8L.
В некоторых случаях, например, для ATtiny2313 и ATtiny2313A написано то же самое, но отличия больше. Добавились новые возможности и новые регистры. В этом случае тоже всё «должно» быть нормально, новые функции после сброса микроконтроллера выключены. Но существует риск не использовать какую-то новую возможность, тот же Sleeping BOD и получить параметры системы хуже, чем они могли бы быть.
Подробнее про отличия между микроконтроллерами написано позже.
С «программированием» как записью скомпилированной программы во флеш-память микроконтроллера всё просто.
Микроконтроллеры «А» и «не-А» с точки зрения программатора не отличаются ничем. Соответствующие кристаллы имеют одинаковый набор «фьюзов» (fuses) и одинаковые сигнатуры. Программатор не может их отличить, поэтому avreal и в перечне поддерживаемых микросхем, и в сообщениях при работе выдаёт все возможные имена для данной сигнатуры через вертикальную черту ‘|’ (pipe symbol). Например:
Device connected, tiny2313|tiny2313A detected.
українська
русский
english