Но настали черные дни, когда мне перестало хватать выходных сигналов Arduino Nano, когда я занимался созданием устройства для тестирования шаговых двигателей. (TODO: вставить ссылку на статью о тестере ШД, когда будет готова). Моё устройство для тестирования ШД в результате вышло довольно комплексным — двухстрочный дисплей 1602 с системой меню, управляемое полнофункциональной клавиатурой 4×4, 3 цифровых разряда для установки величины микрошага ШД, сигналы Step и Dir для шагового двигателя, и тп. Казалось бы, самое время мигрировать на другую версию Arduino. Но моя природная лень воспротивилась этой миграции. И ленивая голова стала искать решение.
Было принято решение искать решение на базе уже того, что есть. Перебирая платки и детальки из наборов, я заметил 16ти-пинового черного «жука». Сначала в одном наборе, потом в другом. Решил поинтересоваться, что же это за деталь, и зачем её добавляют в наборы. Зачем её кладут в кит-наборы, я не понял, но саму микросхему нашел на сайте NXP.
Оказалось, что это довольно интересная микросхема — сдвиговый регистр с последовательным входом и параллельным выходом.
Условное обозначение микросхемы 74НС595 (из даташита)
Контакт | Наименование | Описание и подключение |
---|---|---|
10 | ~MR | Master Reset — сброс, активный уровень низкий. В идеальном случае неплохо бы сделать схему сброса, которая сначала подает низкий уровень на этот вход, а затем переводит его в единичное состояние. Но можно не возиться, и подключить его на +5В. В этом случае на выходе до первой записи будут случайные значения |
13 | ~OE | Output Enable — разрешение выхода, активный уровень низкий. При подаче 0 на выходы подается содержимое регистра, при подаче 1 — выходы отключаются, переводятся в Z-состояние, что позволяет использовать одну шину попеременно разным устройствам. Подключаем на землю, если не нужно управлять состоянием выходов |
14 | DS | Serial Data In |
11 | SHCP | Shift Register Input clock — тактовый вход сдвигового регистра. Для вдвигания бита в регистр следует подать переход с 0 на 1. Когда возвращать в 0 — на усмотрение. Можно — сразу же, можно — непосредственно перед вдвиганием. В первом случае можно считать, что переключение происходит по фронту прямого сигнала, во втором — по спаду инверсного. См. также ниже замечания по быстродействию. Также по приходу этого сигнала изменяется значение последовательного выхода Q7/S |
12 | STCP | Storage Register Clock Input — тактовый вход регистра защелки. По фронту данного импульса происходит перенос значения со сдвигового регистра на параллельные выходы Q0-Q7 |
9 | Q7S | Serial Data Output — последовательный выход. На него выводится значение старшего разряда сдвигового регистра. Данный выход может использоваться для масштабирования сдвигового регистра до 16ти-разрядной, 24х-разрядной и т.д. схемы |
15, 1-7 | Q0, Q1-7 | Выходы регистра-защелки. Сигнал на них переносится с внутреннего сдвигового регистра по приходу сигнала STCP |
8 | GND | Питание — общий провод |
16 | VCC | Питание — + |
Что более важно, так это блокировочные конденсаторы. Без них схема может работать не так, как задумано, и более того, непредсказуемо. Теоретически, в цепи питания каждого корпуса нужно ставить 0.1мкФ конденсатор. Это значение ёмкости я вычислил как среднее по интернету. Моя схема вполне заработала и без него. Чтобы уточнить, залез было в библию схемотехника, чтобы уточнить — Хилл и Хоровиц, «Искусство схемотехники» — это почти как «Искусство Программирования» Дональда Кнутта, но только для железячников (к слову, Хилл и Хоровиц гораздо ближе к народу, Кнутт через-чур умничает) — но там блокировочными конденсаторами похоже называют развязывающие по входам конденсаторы. Жаль, хорошая книга, но очень отстала уже от жизни. У меня второе или третье русское издание конца 90ых или начала 0ых годов, оригинал скорее всего ещё лет на 10 старше. На третьем, розовом томе, обнаружил наклейку — «14руб» — как же дешево тогда всё было, по современным меркам. А прошло-то всего 15 лет или чуть больше. Аж ностальгия замучала.
Быстродействие Arduino Nano и библиотеки Arduino в плане скорости переключения выходов и обработки входов по моим наблюдениям где-то посередине от единиц килогерц до десятков килогерц. Так что, на мой взгляд, при написании кода для управления сдвиговым регистром 74HC595 нет нужды озадачиваться какими-либо задержками при установке управляющих сигналов.
Другое дело, что для 8ми разрядного последовательного расширителя следует делить максимальную доступную на Ардуино частоту переключения выходов — установили DS, установили SHCP в 1, сбросили SHCP (в 0) — 8 раз, и установка/сброс STCP. Итого, на вскидку, 3*8 + 2 = 26 операций digitalWrite. Итого выходит примерно в 25 раз медленнее, чем может сама Ардуинка.
При масштабировании до 16ти, 24х или 32х выходов замедление будет соответственно примерно 3*16 + 2 = 50, 3*24 + 2 = 74 и 3*32 + 2 = 98 раз.
Для управления чем-то действительно быстрым, очевидно, такой расширитель на сдвиговом регистре 74HC595 не подходит, но, в некоторых применениях, для задания редко меняющихся статичных сигналов вполне подходит. Так, например, я использовал такой расширитель для задания 3х-разрядного режима микрошага для установки режима микрошага для драйвера ШД DRV8825 в тестере для шаговых двигателей. К слову, мне это пока не особо пригодилось — шаговики из матричных принтеров ужасно работают в микрошаговом режиме, по крайней мере, под управлением драйвера DRV8825 — так, например, в режиме микрошага 1/2 половина шага какая-то вялая и не уверенная, только вторая половина бодрая и мощная. Поэтому при использовании микрошага при малейшем усилии на ось ШД он первые пол-шаги начинал пропускать. Остальные режимы микрошага я как-то после этого и не исследовал на имеющихся принтерных ШД.
Если не управлять прямо сигналами регистра 74HC595 — ~MR, ~OE с Ардуино, то достаточно только трех выходов Ардуино для управления сигналами DS, SHCP и STCP сдвигового регистра, чтобы при помощи микросхемы 74HC595 превратить их в 8 или 16 или больше выходных сигналов.
Для мультиплексирования нескольких расширителей на базе 74HC595 можно пойти двумя путями: 1) для каждого расширителя сигнала выделить отдельный latch сигнал — т.е. все регистры на шине параллельно сдвигают поступающие данные, и, соответственно, сдвигают значения на выходах внутреннего сдвигового регистра, но только один передает значение из внутреннего сдвигового регистра на выходы микросхемы; 2) сигналы сдвига передаются только на один из расширителей, а перенос значений сигналов на выход происходит одновременно для всех модулей расширения.
Я больше склонен использовать вариант, когда во внутренних сдвиговых регистрах может находится всё, что угодно (вариант 1), а на выходе зафиксировано какое-то из предыдущих значений, и вот почему: при переносе значений из внутреннего сдвигового регистра на выход могут происходить неконтролируемые переходы из 0 в 1 и обратно, какой-то дребезг сигнала, даже если исходное значение во внутреннем регистре и на выходе одно и то же. И, на мой взгляд, операцию переноса состояния внутреннего регистра сдвига на выходы 74HC595 следует использовать как можно реже.
У Arduino количество входов в старших версиях (Arduino Mega) значительное, однако само устройство все-же больше заточено под прототипирование и выпуск IoT устройств в небольших количествах. Быстро и недорого заткнуть брешь. Этот вариант пригоден далеко не для всех задач, особенно когда нужно развертывать сотни IoT устройств.
На Arduino довольно удобно разрабатывать. Есть Aruino IDE, несложный вариант C++, поддержка в среде Visual Studio Code/Visual Studio 2017. Накоплена огромная экспертиза, множество штатных библиотек, закрывающих многие задачи, масса форумов, статей и т.п. Однако, к сожалению, если нужно сделать удаленное обновление прошивки, нормального штатного решения для Arduino мне найти не удалось. Нестандартные bootloader разрабатывались давно, обновлений кода нет и насколько стабильно работают, непонятно.
Микроконтроллеры ESP8266 и старший собрат ESP32 — это промышленные микроконтроллеры, отлично документированные с штатной поддержкой обновления программного обеспечения по TCP/IP.
Если разрабатывается решение для промышленной автоматизации, то рекомендую использовать чипы ESP. Будет хороший задел на будущее в части дальнейшего развития. Учитывая то, что код под ESP можно создавать на С++ в среде Arduino IDE/Visual Studio Code/2017, а многие библиотеки совместимы между Arduino и ESP, в случае необходимости можно перейти с ESP на Arduino. Естественно, с потерей функционала Wi-Fi, который встроен в ESP, а в Arduino требуется дополнительный shield. Например, тот-же самый ESP8266. 🙂
В чипах ESP уже встроена поддержка Wi-Fi и Bluetooth (ESP32), есть режимы пониженного энергопотребления, что упрощает разработку устройств работающих от аккумулятора.
Для автономного электропитания рекомендую используется емкий Li-Ion аккумулятор 18650. На Aliexpress можно найти варианты аккумулятора на 9900 mAh. Скорее всего китайцы лукавят, ставя эту цифру, но батарея действительно емкая.
К ней несложно найти недорогой battery shield для питания устройств на этих микроконтроллерах. Есть и недорогие пассивные battery case для случая, когда управление Li-Ion аккумулятором реализованно на отдельном shield. Например, для платы Wemos D1 mini есть такой вариант shield.
Вкратце сравню ESP8266 с ESP32.
ESP8266 | ESP32 | |
---|---|---|
MCU | Xtensa Single-core 32-bit L106 | Xtensa Dual-Core 32-bit LX6 with 600 DMIPS |
802. 11 b/g/n Wi-Fi | HT20 | HT40 |
Bluetooth | X | Bluetooth 4.2 and BLE |
Typical Frequency | 80 MHz | 160 MHz |
SRAM | X | ✓ |
Flash | X | ✓ |
GPIO | 17 | 36 |
Hardware /Software PWM | None / 8 channels | None / 16 channels |
SPI/I2C/I2S/UART | 2/1/2/2 | 4/2/2/2 |
ADC | 10-bit | 12-bit |
CAN | X | ✓ |
Ethernet MAC Interface | X | ✓ |
Touch Sensor | X | ✓ |
Temperature Sensor | X | ✓ |
Hall effect sensor | X | ✓ |
Working Temperature | -40ºC to 125ºC | -40ºC to 125ºC |
Price | $ (3$ — $6) | $$ ($6 — $12) |
Where to buy | ESP8266 Wi-Fi Development Boards | ESP32 Wi-Fi Development Boards |
Использовать GPIO входы/выходы на этих чипах можно по-разному.
Функциональное назначение выводов чипа ESP8266.При приобретении ESP32 devkit на Aliexpress нужно обращать внимание на количество PIN-ов. Наиболее распространенный вариант — 30 PIN-овый, такой-же как ESP8266. Он стоит в районе 5 USD. Есть вариант на 36 PIN и 38 PIN. На 38 PIN стоит в районе 8 USD. Отличить легко, PIN-ы опускаюся до нижнего края кнопок.
Здесь уже нужно смотреть, что нужно от платы, поскольку може оказаться выгоднее приобрести расширение на 16 GPIO за 1,5 USD, чем переплачивать за PIN-ы на devkit.
Функциональное назначение выводов чипа ESP32 с 36 PIN-амиВ ESP32 встроен ряд датчиков, которые можно использовать при разработке простых решений. Например, можно периодически опрашивать датчик температуры для мониторинга состояния «здоровья» самого чипа, чтобы не допускать его перегрева.
У ESP32 можно использовать 10 входов в качестве емкостных (TOUCH). Присоединенный к ним провод будет изменять емкость при поднесении руки. Например, можно реализовать вечные емкостные кнопки, которые могут быть реализованы на печатной плате, без использования механических компонент.
В ESP8266 только один АЦП (ADC), в то время как в ESP32 доступно 18!!! АЦП, причем 12 битных, в отличие от 10-ти битного АЦП ESP8266. Напряжение срабатывания АЦП в ESP32 можно менять от 0 до 4 V.
I2C адресация модуля ADS111516-ти битные внешние модули АЦП с чипом ADS1115 4-х канальные и стоят с доставкой в Россию в районе 1,5 USD. Примерно столько же стоит 12-ти разрядный ADS1015. Datasheet здесь.
Чтобы в ESP8266 получить такое-же количество каналов АЦП, как у ESP32 потребуется 4 шт. внешних АЦП и цена только этих модулей получится в районе 6 USD. Сам чип ESP32 распаянный на плате можно приобрести примерно за 7 USD с доставкой в Россию. Схема подключения здесь.
Если есть сомнения по поводу входного напряжения, то целесообразно использовать внешний АЦП, поскольку выход из строя платы на 4 канала обойдется несколько дешевле, чем потеря микроконтроллера. Либо подстраховываться установкой стабилитрона.
Помимо АЦП в ESP32 есть два 8-ми битных ЦАП (DAC).
Помимо увеличения аналоговых входов с помощью АЦП есть вариант расширения мультиплексором. Хорошая статья на эту тему в которой подробно рассмотрен аналоговый мультиплексор/демультиплексор CD4051/74HC4051. Много вариантов от других производителей.
CD4051 — это 8 канальный аналоговый CMOS мультиплексор/демультиплексор. ДЛя увеличения количества аналоговых входов на 7 потребуется 1 аналоговый и 3 цифровых входа.
Функциональная схема работы мультиплексора/демультиплексора CD4051Мультиплексор передает сигнал с одного из нескольких входов на единственный выход. Демультиплексор, напротив, передает сигнал с единственного входа на один из информационных выходов.
Если приобретать модуль на Aliexpress, то цена будет в районе 0,8 USD за 8 каналов, 16-ти разрядное АЦП ADS1115 — 1,5 USD за 4 канала. Если же приобретать только микросхему CD4051, то цена будет гораздо ниже микросхемы АЦП.
Для увеличения количества цифровых входов можно воспользоваться добротной платой расширителя GPIO на 8 Входов/Выходов. Она хорошо документирована, исполнена на высоком техническом уровне. Хотя, ценник не Aliexpress-а. 🙂 При изготовлении нескольких сотен устройств, себестоимость конечного устройства существенно вырастет.
Посмотрим, что есть на сей счет есть у китайских собратьев. А у них конечно-же что-то есть и недорого. 🙂
Сразу отмечу качественное исполнение модулей по цене в районе 1 USD. Чип от TI PCF8574 обеспечивает 8 каналов ввода-вывода (GPIO) управляемых по шине I2C. Есть выход INT соединяемый с входом микроконтроллера поддерживающим обработку прерываний. При возникновении прерывания на одном из входов платы расширения, прерывание транслируется микроконтроллеру для дальнейшей приоритетной обработки поступившего сигнала.
Конструктивно синие модули удобно каскадировать, втыкая один в другой. Адрес устройств удобно задается либо DIP переключателями, либо джамперами. Возможно подключение внутренних pullup резисторов на +5V.
Старший брат TI PCF8575 позволяет получить 16 GPIO портов за цену в два раза выше. Но реализация платы попроще. никаких DIP переключателей для выбора адреса I2C. Зато 16 каналов в компактном исполнении.
Аналогичный чип от компании Microchip на 16 входов для расширения количества GPIO портов, MCP23017. Есть вариант для шины I2C и более шустрый для SPI (MCP23S17). Китайские продавцы нередко указывают в описании товара чип MCP23S17, однако по фото платы видно, что чип MCP23017. Обращайте на это внимание! Аналогичный чип на 8 портов — MCP23008.
MCP23017 плата увеличения GPIO для микроконтроллеровЦена этого варианта модуля в районе 1,5 USD. Исполнение платы попроще обойдется почти в два раза дешевле. Чип позволяет обеспечить увеличение GPIO на 8+8=16. Как и чип от Texas Instruments помимо входов для подключения устройств есть два выхода прерываний на каждый блок из 8 устройств. Этот чип позволяет работать на частоте до 1,7 МГц и 10 MHz для версии под шину SPI, в отличие от чипа PCF8574 для которого верхний предел 400 кГц. Также возможно подключение внутренних pullup резисторов на +5V. Схема подключения платы к ESP8266 разобрано здесь.
SX1509 модуль для увеличения количества GPIO.Ещё один 8+8=16-ти канальный расширитель количества GPIO с Aliexpress на чипе SX1509. Библиотека и описание от Sparkfun. Чип дороже, чем ранее представленные. По ТТХ чип очень похож на ранее рассмотренные варианты. Работает на частоте 400 кГц. Есть встроенная поддержка ШИМ (PWM) на выходах.
Чип «заточен» для работы с LED и клавиатурой. В части LED из-за наличия ШИМ позволяет управлять яркостью светодидов, выполнять затухание, моргание и пр. Есть в наличии выход INT для трансляции прерываний микроконтроллеру. Поддерживаются встроенные pull-up, pull-down резисторы на входах.
GPIO expander от Fairchild (ON Semiconductor) FXL6408UMX. Аналогично 8 портов управляемых по шине I2C. Datasheet.
Для управления силовой частью, например, реле, хорошо бы иметь сборку транзисторов Дарлингтона, вроде недорогого ULN2003, но управляюмую по цифровым шинам.
MAX4820/4821 — транзисторые сборки управляемые по SPI/параллельному интерфейсу 8 выходов. Коммутируют максимум 5 V нагрузку.
TPIC2603 — управляемая по последовательному интерфейсу SDI сборка на 6 каналов.
TPIC2802 — управление по последовательному интерфейсу 8 каналами с током по 1А на канал.
MC33996 — управляемый по шине SPI коммутатор 16 выходов.
По одним статьям RTC в ESP32 — это не Real Time Clock, а ядро низкого энергопотребления. Однако, по другим все-же Real Time Clock, но плохого качества (+-5%), который не стоит использовать в бизнес-приложениях.
Возможно, проблема неточности встроенного RTC может быть решена добавлением внешнего кварцевого резонатора. Я нашел упоминание о схеме подключения карцевого резонатора к контактам RTC_GPIO8/RTC_GPIO9. Но непонятно как запитывать встроенный RTC от батарейки. Отдельного входа RTC VBAT нет.
В общем, не факт, что удастся сэкономить на входе. 🙁 Особенно, если нужен data logger, а не только RTC. В data logger RTC уже встроен и SPI выводы на чтение/запись придется отдать :-(. Хотя в data logger RTC нередко подключается на шину I2C.
рассмотрено в статье.
В теории к одной шине I2C можно подключить до 127 устройств. У каждого из устройств должен быть свой уникальный адрес. Нередко адрес устройства один и жестко «прошит», поэтому нельзя подключить на одну шину несколько таких модулей. Входов I2C в ESP всего 1 (2 у ESP32) шт.
Для подключения I2C устройств с совпадающими адресами используются I2C мультиплексоры. На Aliexpress из недорогих доступен I2C extender на чипе TCA9548A. Цена в районе 1 USD с доставкой в Россию.
8-канальный I2C мультиплексор на чипе TCA9548AМультиплексор работает просто. По умолчанию ему присвоен некоторый адрес. Микроконтроллер соединяется с ним по шине I2C и затем отправляет команду выбора одного из 8-ми выходов, с которым будет происходить общение. Далее можно взаимодействовать с I2C устройством как будто с ним установлено прямое соединение. Если нужно периодически опрашивать все датчики подключенные к 8 входам, то такой опрос происходит в цикле.
Фактически, мультиплексор обеспечивает временную прямую коммутацию GPIO микроконтроллера с выбранным устройством по его номеру. Это некоторый недорогой workaround для решения проблем с конфликтом адресов I2C.
Подробный обзор досупных модулей реализующих RS485 интерфейс сделал в статье.
Подключение термопар к ESP32/ESP8266/Arduino с помощью модулей MAX6675 и MAX31855.
Для некоторых задач есть необходимость увеличения количества последовательных портов. Для старших моделей Arduino, например, Mega, острой необходимости в увеличении последовательных портов нет, там их достаточно. Однако для ESP8266 задача вполне актуальна, учитывая что там только один hardware serial port, да и тот нередко занят под распаянный на плате USB ковертер. Можно эмулировать работу последовательного порта на GPIO с помощью SoftSerial, но не для всех задач это приемлемо.
Расширение одного последовательного порта UART (RX/TX) наРешение от компании AtlasScientific — 8:1 Serial Port Expander самое дорогое. Цена в районе 15$ без доставки довольно высока, хотя если сравнивать с одно и двух портовыми модулями, то цена за порт меньше 2 $, что выгоднее чем у 1-2-х портовых собратьев.
Есть конвертеры I2C в один порт UART и 8 GPIO портов на чипе SC16IS750. Стоят порядка 4 $ с оставкой в Россию. SPI вариант на чипе
SC16IS760. Учитывая, что на одну шину можно вешать несколько модулей — можно набрать нужное количество. SPI порт достаточно шустрый, чтобы обеспечить подключение достаточно большого количества таких модулей.
Есть старший собрат ковертера I2C в два порта UART и 8 GPIO портов на чипе SC16IS752. Стоят порядка 5 $. SPI вариант на чипе SC16IS762.
Плат на чипах MAX14830, MAX3107, MAX3108, MAX3109 я на Aliexpress не нашел.
Схемное решение для получения 4-х портов UART.
На этом краткий обзор по вариантам расширения входов микроконтроллеров завершаю. В дальнейшем рассмотрю работу с указанными модулями подробнее.
Spread the love
Запись опубликована в рубрике IT рецепты, IT решения для бизнеса с метками Aliexpress, IoT. Добавьте в закладки постоянную ссылку.
Arduino Dock 2 — это наша версия платы Arduino Uno R3 с наддувом. Эти две платы используют один и тот же микроконтроллер ATmel ATmega328P (MCU) и имеют одинаковое расположение контактов. Это позволяет вам использовать любые шилды Arduino, которые вы использовали с Arduino Uno R3, с док-станцией Arduino и Omega.
Omega может программировать микроконтроллер при подключении к плате. Это означает, что вы можете подключиться к Omega по беспроводной сети, а затем запрограммировать MCU для беспроводной работы с Arduino!
Док-станция Arduino включает разъем для внутрисхемного последовательного программирования (ICSP) для размыкания выводов SPI, которые можно использовать для программирования микроконтроллера док-станции Arduino с помощью внешнего программатора. Кроме того, к Omega подключен хост-порт USB, который можно использовать для любых приложений типа USB.
Для питания док-станции можно использовать соединение microUSB или разъем DC Barrel.
Чтобы подключить Omega к док-станции Arduino, совместите края Omega с фиолетовыми линиями на док-станции Arduino, как показано ниже:
Убедитесь, что Omega полностью вставлена вниз, как показано на рисунке ниже:
Возможно, вам придется совместить штифты с отверстиями, прежде чем вставлять Omega в док-станцию.
Порт MicroUSB используется для подачи питания на док-станцию Arduino, которая, в свою очередь, подает питание на Omega и микросхему ATmega328P.
Порт MicroUSB получает питание 5 В и использует его непосредственно для питания микросхемы ATmega328P. Док-станция оснащена регулятором напряжения, который снижает напряжение до требуемых для Omega 3,3 В.
На док-станции нет USB-to-Serial чипа. Это означает, что вы , а не , сможете последовательно подключаться к Omega через порт Micro-USB.
Вы по-прежнему можете подключиться к терминалу Omega с помощью SSH. Вы можете узнать, как это сделать, в этом руководстве по подключению к Omega.
Цилиндрический разъем постоянного тока также можно использовать для питания Omega с помощью адаптера питания постоянного тока. Мы рекомендуем любой источник питания постоянного тока с напряжением 5 В и током не менее 0,5 А. Безопасно использовать блоки питания, обеспечивающие ток более 0,5 А при напряжении 5 В.
Обратите внимание, что цилиндрический разъем постоянного тока док-станции Arduino должен использоваться только с источниками питания постоянного тока 5 В. Если используется более высокое напряжение, ваш Omega и док-станция Arduino могут быть повреждены!
Кнопка сброса на док-станции подключена напрямую к GPIO сброса Omega. Нажатие этой кнопки делает одно из двух: перезагрузка или восстановление заводских настроек.
Моментальное нажатие кнопки сброса и ее отпускание инициирует перезагрузку ОС Omega.
Нажатие и удержание кнопки сброса в течение 10 секунд, а затем отпускание вызовет восстановление заводских настроек.
Предупреждение: Это вернет вашу Omega к файловой системе по умолчанию последнего обновления прошивки, это удалит ВСЕ ваши данные!
В дополнение к кнопке сброса Omega, док-станция Arduino Dock 2 оснащена кнопкой сброса микроконтроллера. Эту кнопку можно использовать для сброса чипа ATmega в любое время. Это НЕ перезагрузит Omega.
USB-порт Omega можно использовать для подключения ко всем типам устройств, а именно к USB-накопителю для увеличения объема памяти Omega. Порт USB поддерживает USB 2.0 и представляет собой разъем типа A.
Док-станция Arduino предназначена для того, чтобы сделать встроенный микроконтроллер помощником и сопроцессором Omega. Поэтому было важно включить несколько ключевых соединений между Omega и микроконтроллером.
Поскольку микроконтроллер работает от 5 В, а Omega — от 3,3 В, док-станция Arduino оснащена преобразователем
В таблице ниже показаны соединения между Omega и микроконтроллером ATmega:
UART1 | Последовательные контакты |
I2C | I2C |
GPIO 15 | СПИ ССК |
GPIO 16 | СПИ МОСИ |
GPIO 17 | СПИ МИСО |
GPIO 19 | Сброс |
Назначение этих соединений описано в подразделах ниже.
Соединение UART используется для обеспечения двусторонней связи между Omega и микроконтроллером ATmega. Последовательный порт ATmega подключен к последовательному порту Omega UART1 .
Дополнительные сведения см. в статье «Обмен данными с последовательными устройствами».
Соединение I2C обеспечивает соединение I2C между Omega и ATmega. В большинстве случаев Omega настраивается в качестве ведущего, а ATmega — в качестве ведомого.
Это полезно при использовании устройств 5V I2C. Подключите их к контактам I2C ATmega, и Omega сможет их прочитать благодаря встроенному переключателю логического уровня.
Дополнительные сведения см. в статье «Обмен данными с устройствами I2C».
Четыре соединения SPI используются для загрузки скетчей в ATmega с помощью Omega. Дополнительную информацию см. в статье «Прошивка микроконтроллера док-станции Arduino».
Соединение сброса используется для сброса чипа ATmega. Это можно сделать с помощью кнопки сброса или с помощью GPIO 19 Omega..
Мы предоставили подробную схему размеров и геометрии док-станции Arduino Dock 2.
Док-станция Arduino Dock 2 оснащена функциями, которые позволяют использовать Omega с ATmega. чип с легкостью. Вы можете запрограммировать или перезагрузить микроконтроллер, используя GPIO Omega, и даже подключиться к последовательному порту ATmega, используя UART Omega.
Следуйте инструкциям из раздела «Прошивка микроконтроллера», чтобы узнать, как загружать скетчи (программы) в микроконтроллер Arduino, встроенный в док-станцию Arduino.
Самый простой способ установить связь между микроконтроллером Arduino Dock и Omega — через последовательный порт. Нет никаких причудливых протоколов, просто данные пересылаются туда и обратно. Важно помнить, что последовательный порт ATmega подключен к UART1 на Omega.
Взгляните на нашу статью «Общение с последовательными устройствами», чтобы узнать, как заставить Omega обмениваться данными с микроконтроллером док-станции Arduino!
Док-станция Arduino 2 эффективно соединяет линии I2C микроконтроллера с линиями Omega, добавляя микроконтроллер в качестве ведомого к шине I2C Omega.
Взгляните на нашу статью «Общение с устройствами I2C», чтобы получить дополнительную информацию о I2C и о том, как Omega может взаимодействовать с устройствами I2C. На стороне микроконтроллера библиотека проводов может использоваться для облегчения связи I2C.
Расширение транзисторного выходаПредыдущий
Следующий
Документы
Модели
Поставщик расширителя ввода-вывода MCP23008 I2C используется для записи транзисторных выходов.
Выходы с открытым коллектором, поддерживающие до 36 В постоянного тока
Поставщик расширителя ввода-вывода MCP23008 I2C используется для записи транзисторных выходов.
Выходы с открытым коллектором, поддерживающие до 36 В постоянного тока
Поставщик расширителя ввода-вывода MCP23017 I2C используется для записи транзисторных выходов.
3 августа 2022 г. Комментариев нет
Решения NORVI для подключения GSM LTE Почему GSM/LTE в IoT? https://norvi. lk/product/esp32-gsm-series/ В 21 веке подключение к Интернету вещей стало очень важным
Подробнее »
12 июля 2022 г. Комментариев нет
Связь GSM для приложений IOT. От приложений бытового уровня до промышленных приложений применяется технология IoT. Но главная проблема приложений IoT — непрерывная связь.
Подробнее »
12 июля 2022 г. Комментариев нет
Что такое ПЛК? Программируемый логический контроллер (ПЛК) — это специальное вычислительное устройство, предназначенное для использования в промышленных системах управления и других системах
Подробнее »
6 января 2022 г. Нет комментариев
NORVI IIOT и NORVI ENET — это базовые решения Интернета вещей для дома и промышленности, которые были произведены компанией ICONIC DEVICES (PVT) Limited, Шри-Ланка.