Какой программатор выбрать для arduino nano

Arduino.ru

Сразу могу сказать, что не уверен правильно ли создаю тему, но вопрос мой в следующем.

Имеется Arduino Nano. Хочется на его основе построить программатор для микроконтроллера S93C76AD. Знакомые попросили попробовать активировать некую функцию Si-Drive на автомобиле Субару Форестер. Ну там типа надо вычитать данные, подкорректировать и записать обратно. Так вот из даташита данного контроллера было вычитано, что он программируется по интерфейсу SPI. Правда там почемуто говорится о трехпроводной линии, видать как я понял не используют DO либо DI.

Так же вычитал, что ардуино как раз имеет интерфейс SPI. Я не могу только разобраться как можно его использовать, и можно ли вообще в данном случае. Ардуино с компом подружил и скетчи в него заливаются. Еще была скачана PonyProg. Там повыставлял нужный порт и контроллер. Запускаю на чтение (просто попробовать без самого контроллера) Пони там чего то пытается прочитать, на Ардуинке лампочки помаргивают.

Остается подключить саму микруху S93C76AD. Вот тут и возникает вопрос как? Использовать выходы SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)? И соответственно нужно ли при этом заливать туда какой либо скетч? Или же использовать выходы ICSP? Но при этом там нет Slave Select?

Может кто чего посоветует? Всем спасибо за непосылание сразу подальше! Или посылание!)))

Программатор для EPROM на Arduino

Понадобилось при изучении и ремонте компьютеров, которые старше меня, прошивать ПЗУшки. Тесты оперативной памяти и периферии проводить. Нормального программатора у меня на тот момент не было.

Собрать на логике для LPT порта, конечно, можно, но данный вариант был отброшен, так как для использования пришлось бы включать ещё какого-нибудь старичка. В современных компах все ещё встречается данный интерфейс (правда не полноценный разъем, а на гребенке) да и купить плату в PCI слот тоже не проблема, но возникают уже сложности с софтом. Он был написан очень давно, когда работа с портами ввода/вывода в операционных системах велась иначе. Соответственно, в современных версиях Windows ПО не будет работать.

Сразу стоит оговориться, что про существование TL866 знаю. И даже в процессе разработки все же его купил себе, но он не в состоянии прошить микросхемы, которые требуют высокое напряжение программирования. Максимум 18 вольт (TL866+ или 21 для предыдущей версии).

Беглое гугление привело меня к данному репозиторию. Собрав программатор, я смог сдампить пару интересующих чипов. А вот с прошивкой все оказалось куда сложнее… Софт этого просто не умеет… Его, конечно, можно обмануть, выставив неправильный чип, но работает это не во всех случаях и явно не наш метод

Очень сильно огорчил пользовательский интерфейс, который, вместо классического варианта с предоставлением права выбора порта пользователю, проходился по всем доступным последовательным интерфейсам. Соответственно, все устройства перезагружаются. Особенно обидно, наверное, когда у тебя 3D принтер уже часов 10 печатает детальку с флешки, а тут такая подстава.

Мир OpenSource прекрасен тем, что ты можешь взять проект и дописать его под свою задачу. В данном случае исходных кодов к графическому интерфейсу нет. По крайней мере я их не нашел, хотя можно было написать разработчику. Стало интересно и появился небольшой повод для изучения Qt. Так что софт будет кросплатформенный.

Берем за основу схему из предыдущего проекта и дорабатываем устройство до требуемого функционала. Решил пожертвовать поддержкой EEPROM в софте. Возможно, это не совсем удачное решение, но для электрически стираемых чипов уже не нужно такое высокое напряжение. При доработке опирался на самую объемную микросхему (27C512 для DIP28) и убрал всю путаницу относительно адресных ножек. Весь адрес будет задаваться исключительно при помощи сдвиговых регистров (74HC595). Это освободит дополнительные ноги самого микроконтроллера, которые понадобятся для управления подачей напряжения программирования. А все необходимые сигналы (PRG) можно получить модификацией адреса перед загрузкой в регистры.

Принцип подачи напряжения программирования остался прежним. Изменения только в области защиты выводов микроконтроллера и сдвиговых регистров. Заменил резисторы (1 КОм) на диоды с подтяжкой к лог. 0. Это менее агрессивный вариант. Хотя, справедливости ради, и резисторы работают.

Изучив документацию на все интересующие чипы, определил, что требуется три точки подачи Vpp:

  1. 27C16 на 21 ногу микросхемы (23 ногу DIP28 сокета)
  2. 27C32 и 27C512 на сигнал #OE (Output Enable)
  3. 27C64, 27C128, 27C256 на 1 ногу микросхем

Микросхемы 27C16 и 27C32 от остальных отличаются корпусом, так что им требуется подавать напряжение питания на 26 ножку сокета. Это адресная нога A13 для более емких собратьев. Тока с выхода сдвигового регистра должно хватить для работы, но на время загрузки данных его выходы переходят в Z состояние. Подобный режим допустим, но включение на чтение или запись одной ячейки вряд ли является нормой. Поэтому под управление питания установлен дополнительный транзистор. И ещё один потребовался для 27C16, которому на время чтения необходимо подать на вход Vpp 5 вольт. Можно, конечно, на время чтения выставить напряжение программирования на значения 5 вольт, но переключаться между 25 и 5 вольтами неудобно.

Если есть свободные ноги АЦП, то почему бы не измерять напряжение программирования? Плата разведена под Arduino Nano. На нем имеются два дополнительных входа, которые кроме как для АЦП использовать нельзя. На самом деле это особенность многих микроконтроллеров AVR в корпусе для поверхностного монтажа. На китайских Arduino UNO частенько есть входы A6 и A7. С учетом того, что напряжение может быть до 30 вольт (вроде больше всего хотят отечественные РФ5, 25 вольт), рассчитываем делитель из того, что есть в наличии. Точность в 0.5 вольта для данной задачи вполне достаточна. Эта функция — защита от дурака, а не вольтметр.

Можно, конечно, было заморочиться и выступать в качестве ШИР (широтно импульсное регулирование) контроллера, но ножек свободных не осталось. Поэтому на печатной плате есть посадочное место для преобразователя DC-DC Step Up на чипе MT3608, которые за копейки доступны на али.

По схеме на этом все.

Алгоритм работы с данными микросхемами очень прост. С ним можно ознакомится в небольшом видео.

Какой программатор выбрать для arduino nano

Arduino Nano – компактная платформа с семейства Arduino, которая с одной стороны по функциональности сопоставима с платой Uno, а другой стороны, вся эта функциональность вместилось в компактных размерах, сопоставимых с платой Pro mini. Как и любая другая плата, Nano является открытой платформой и поэтому имеет большое количество разнообразных аналогов. В данной статье мы познакомимся с Arduino Nano, на примере моего китайского аналога.

Arduino Nano

Как и все предыдущие платы, Nano пришла в запаянном антистатическом пакете.

Arduino Nano

В комплекте сама плата и контактные площадки.
На Алиэкспресс с доставкой, она мне обошлась в $2.57, в то время как оригинальная плата стоит $22.

По функциональности, Nano можно сопоставить с Uno, но из-за своих компактных размеров, к ней нельзя подключать «бутербродом» шилды от Uno. По размерам, плата чуть больше, чем плата Pro mini, ровно настолько, сколько понадобилось места для miniUSB разъёма. Так же можно купить аналог с microUSB разъёмом. В пользу миниатюрных размеров, пришлось отказаться от разъёма питания, который имеется у Uno.

Arduino

Для визуального представления габаритов, моя плата Nano, наравне с китайскими аналогами Arduino Uno и Pro mini.

За время своего существования, плата претерпела некоторые изменения и на данный момент актуальной является третья версия.

Arduino Nano

Визуальное сравнение с оригинальными платами, слева на право: оригинальная плата 2-й версии, оригинальная плата 3-й версии и мой китайский аналог Nano, так же 3-й версии.
Оригинальная Arduino Nano 2-й версии строилась на ATmega168, третья версия платы обновила микроконтроллер до ATmega328.

Arduino Nano mega 328

Мой аналог так же на ATmega328, в отличии от ATmega168, имеет на борту в два раза больше памяти. Работает Nano на частоте 16 МГц. По сравнению со 2-й версией, в 3-й установлен кварц в миниатюрном корпусе,

Arduino Nano

Визуальное сравнение плат с обратной стороны, моя крайняя справа.

CH340G

Основное отличие китайского аналога от оригинала, использование в качестве преобразователя USB to COM, микросхемы CH340G. Это тот самый чип, который используют в аналогах Uno и переходнике USB to COM для Pro mini. В оригинальной плате используется микросхема FTDI FT232RL.

Драйвер от оригинальной Nano не подойдёт к аналогу на CH340G, нужны другие драйвера.

Драйвер для Windows 98/ME/2000/XP/Server 2003/2008/2012/2016/VISTA/Win7/Win8/8.1/Win10 32/64 bit:

Во всём остальном, китайский аналог Arduino Nano на 100% совместим оригинальной платой.

Про питание Arduino Nano

Питание на плату можно производить через miniUSB, подключив её USB кабелем к компьютеру или ноутбуку. Так же питание можно подавать с разнообразных блоков питания, батарей и аккумуляторов, для этих целей имеются на плате специальные пины. Если собираетесь питать плату от стабилизированного напряжения 5 В, тогда + питания нужно подключать к 27 пину (+5V). В таком случае напряжение будет напрямую идти на контроллер. При подаче большего напряжения, плата сгорит. Если напряжение больше 5 В, тогда + питания нужно подключать к 30 пину (VIN). К этому пину можно подключать не стабилизированное напряжение в диапазоне от 6 до 20 В. В таком случае, питание будет идти через встроенный на плате стабилизатор напряжения, а с него, уже стабилизированные 5 В будут подаваться на контроллер. Минус питания в обоих случаях можно подключать на 4 либо 29 пин (GND).

Входы и выходы

По вводам / выводам, китайский аналог полностью совместим с оригиналом.
Имеется 14 цифровых выводов , которые могут быть настроены как входами, так и выходами. D0 соответствует 2 пину (RX0), D1 соответствует 1 пину (TX1). Пины D2-D13 подписаны на плате соответственно. Каждый вывод может пропускать ток до 40 мА. Так же имеется 8 аналоговых входов (A0-A7) .

Светодиоды

Arduino Nano

На плате имеется 4 светодиода:
RX, TX – мигают при передаче данных по USB кабелю, между платой и компьютером.
PWR – горящий светодиод сигнализирует о наличии питания на плате.
L — светодиод, подключенный на 13 пин. Если на этом выводе будет высокий потенциал, он загорится. Самый первый скетч как раз и будет состоять в том, что бы запрограммировать Nano на мигание этого светодиода.

Про прошивку Arduino Nano

Скетчи в плату загружаются через miniUSB (microUSB) разъём. При подключении платы к компьютеру, появляется неизвестное устройство. Устанавливаем драйвера, по ссылке выше, в итоге, в диспетчере устройств появляется новое устройство "USB-SERIAL CH340". Рядом будет номер виртуального Com-порта, в моём случае это "COM11".

CH340G

Теперь попробуем залить в китайский аналог Arduino Nano первый скетч, который будет мигать светодиодом "L".

Запускаем Arduino IDE .

Arduino Nano

Выбираем плату в которую нужно зашить скетч: «Инструменты» — «Плата:» и выбираем свою плату, в данном случае это « Arduino Nano ».

Arduino Nano

Поскольку платы Nano могут использовать различные микроконтроллеры (ATmega168 или ATmega328 ), в зависимости от версии 2 или 3, выбираем свою конфигурацию: «Инструменты» — «Процессор:» в данном примере выбираю «ATmega328 ».

Arduino Nano

Выбираем порт, к которому подключена плата Nano : «Инструменты» — «Порт:» в моём случае это « COM11 ».

Blink

Выбираем скетч « Blink »: «Файл» — «Образцы» — «01. Basics » — « Blink ».

Blink

Нажимаем кнопку «Вгрузить», если нет ошибок, скетч загружается в плату.

Arduino Nano

Светодиод "L" начнёт мигать красным цветом.

Комментарии

Первый вариант за $3.80 — использует в качестве USB — UART чип FT232.

Второй за $2.30 такая же плата но USB — UART на чипе CH340.
Первый и второй варианты будут отличаться драйвером, который нужно будет установить в ПК, для FT232 или CH340. Так же они визуально отличаются по разводке дорожек, виду использования разных микросхем USB — UART, пришлось по разному разводить дорожки. Это ни на что не сказывается

Третий ($2.40), согласно разводке по верхней стороне, тоже на чипе CH340, но с не распаянными ножками. Это будет интересно тем, кто борется за каждый миллиметр в проекте. В таком случае припаянные ножки увеличивают габариты платы, которая может не поместится в компактный корпус. В таком случае к пинам припаиваются гибкими проводами.

Первые три платы выполнены на микроконтроллер е ATmega328, как и оригинальная Arduino Nano.

Четвёртый вариант (красная плата за US $2.00), это клон Nano на совершенно другом микроконтроллер е — LGT8F328P от компании TTGO, плата называется "ALPHA 8F328P-U". В качестве USB — UART используется HT42B534-1, нужен будет соответствующий драйвер.
В этой плате используется китайский микроконтроллер LGT8F328P, который по функциям совместим с ATmega328, но это не одно и то же. Для этой платы кроме драйвера USB — UART, придётся скачивать и устанавливать патч в Arduino IDE, поскольку эта плата стороннего разработчика. Многие скетчи без проблем подходят без правки от плат на ATmega328. Но LGT8F328P заявлена как улучшенный аналог ATmega328, в нём расширена имеющаяся периферия и добавлены новые функции. Если в дальнейшем у вас появится необходимость перепрошить загрузчик, то это будет проблемно, нужет будет специальный программатор (SWDICE mkII Pro), который стоит дороже, чем несколько таких плат.Существенн о меньше людей, на руках которых имеются платы на этом микроконтроллер е, поэтому ответы на возможно возникшие вопросы, вам будет получить в Интернете труднее. Разработчик микроконтроллер ов никак не способствует распространению внятной документации и примеров на этом чипе. У меня на сайте есть обзор про плату на этом микроконтроллер е, это плата XI LGT Nano.

Вывод:
Если вам нужна Nano как для начало обучения или если вы уже что то изучили и желаете собрать
какой то рабочий проект, то берите 1, 2 или 3 варианты, в зависимости от тех отличий что написал. Драйвера на все USB — UART распространённы е и без проблем есть в Интернете. Чип CH340 более распространён, потому что дешёвый и это так же сказывается на конечной цене платы. Лично у меня UNO, Nano, Lolin NodeMcu V3 на этом чипе. Для Pro Mini так же имеется отдельный переходник на этом чипе. Так же имеются отдельные USB — UART переходника на PL2303HX и CP2102. Не заметил я какой то разницы между ними, при программировани и Ардуино совместимых плат с Али, которые выполнены на микроконтроллер а ATmega328.
Если вы хотите попробовать новых экспериментов и не боитесь возможных трудностей, то берите красную плату, но это уже на свой страх и риск.
На мой взгляд самое неправильное в таких продажах то, что платы на не ATmega328 выставляют как то же самое что и на ATmega328. Человек который не знает этих нюансов, но знает что на Али можно купить клон, который будет дешевле и практически такой же как оригинальная плата, может купить плату на чипе LGT8F328 и столкнуться рядом трудностей, которые не описываются в примерах и документациях по ATmega328.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *