Случай с Arduino.Nano
Сентябрь 3rd, 2024В одном из наших исследовательских проектов возникла необходимость читать и писать EEPROM DALLAS/MAXIM: DS2433, DS28E07, DS1994 и подобные…
Оказалось, что программаторов для этого странного EEPROM практически не существует, а что существует, особо ничего не умеет (например, Orange 5 читает и пишет DS2433, но знать не знает что такое DS28E07…). В то же время оказалось, что протокол OneWire, который используется данным чипом, давно реализован во множестве библиотек для Arduino.
Быстро слабать программатор для клиента позволила плата Arduino Nano, приобретённая за пару дней на Ozon. Эта плата на процессоре ATmega328P. Сказано – сделано, программатор готов и работает, сам распознаёт типы чипов читает и пишет, с помощью допонительного скрипта на Python.
Но это был отладочный вариант, нужно изготовить красивый вариант для клиента. Заказали еще 2 штучки Arduino Nano. Щас, потирая руки, думаю, быстренько спаяю пару плат и резистор, зашью и в путь! Однако на последнем этапе нас ждал неприятный сюрприз!
Arduino IDE сказал, что не понимает, что за микросхему мы ему подсовываем!
Оказалось, что это новая (китайская?) версия Arduino Nano, о которой производитель не имеет понятия. На ней установлен процессор ATmega328PB.
Как же прошить плату с таким чипом? Проблема, как оказалось, весьма распространённая. Однако, хороших готовых рецептов в сети не так много.
Поэтому публикуем простой и доступный путь здесь.
- Открываем Arduino IDE – Preferences
- Вписываем в boards manager URLs:
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
- Переходим в BOARDS MANAGER. Там появляется MiniCore:
- Устанавливаем его;
- После этого заходим в меню: Tools – Board Atmega328 – MiniCore – Atmega328;
- После чего, выбрать другой вариант процессора: Tools – Variant – 328PB
После этих манипуляций можно прошить свою прошивку, используя, например, USBasp.
А программатор, наконец, получил красивый внешний вид!