Часть 2
В этой части будет рассказано об основных функциональных узлах устройства.
Для того чтобы было легче воспринимать, необходимо открыть следующие схемы:
(Схема подключения Капля 8266.pdf) – отображает имена сигналов на клеммнике.
(KaplyaBrain8266 princip)— принципиальная схема.
(KaplyaShasy8266 princip)— принципиальная схема.
Реализация RS485
Pin NodeMCU V3.0 |
Pin Arduino nano V3 |
|||
ESP8266F |
|
|
|
|
IO14 |
D5 |
RS458-1 — CS — изолированный |
D13 |
RS458-1 — CS — изолированный |
IO12 |
D6 |
RS458-1 RX — изолированный |
D12 |
RS458-1 RX — изолированный |
IO13 |
D7 |
RS458-1 — TX — изолированный |
D11 |
RS458-1 — TX — изолированный |
IO2 |
D4 |
RS458-0 — CS — изолированный |
D8 |
RS458-0 — CS — изолированный |
RXD |
D9 |
RS458-0 RX — изолированный |
TX1 |
RS458-0 RX — изолированный |
TXD |
D10 |
RS458-0 TX — изолированный |
RX0 |
RS458-0 TX — изолированный |
Интерфейс RS485 собран по классической схеме на базе микросхемы ADM485. Режим приема/передачи (pin RE/DE) реализован программно. В программе FLProg не забываем включать его. Также FLProg может использовать RS485-0 в двух режимах Serial com и Software com. Имеются разъемы (J7, J8) для установки терминальных резисторов 120 Ом. На плате RKaplyaShasy8266.pcb установлены защитные супрессоры на 6,8 вольт.
Гальваническая изоляция реализована в двух вариантах:
- На оптопарах PC817 или подобных (U13-U18). Достоинства — очень низкая цена, недостатки – скорость обмена ограничена 38400. На практике этого в полнее достаточно, так как условиях сильных электромагнитных помех на производстве скорость 9600 считается оптимальной.
- На микросхеме ADUM1251 и оптопарах PC817 (U9, U10 и U13, U15 соответственно). Достоинство — скорость обмена 115200, недостатки – цена.
При установки микросхем U19, U20 (ADM485) наименование цепей клемм разъемов устройства будит выглядеть, как отображено на схеме подключения (Схема подключения Капля 8266.pdf).
Реализация Кольцо
Pin NodeMCU V3.0 |
Pin Arduino nano V3 |
|||
ESP8266F |
|
|
|
|
IO14 |
D5 |
RS458-1 — CS – не используется |
D13 |
RS458-1 — CS – не используется |
IO12 |
D6 |
RS458-1 RX — изолированный |
D12 |
RS458-1 RX — изолированный |
IO13 |
D7 |
RS458-1 — TX — изолированный |
D11 |
RS458-1 — TX — изолированный |
IO2 |
D4 |
RS458-0 — CS – не используется |
D8 |
RS458-0 — CS – не используется |
RXD |
D9 |
RS458-0 RX — изолированный |
TX1 |
RS458-0 RX — изолированный |
TXD |
D10 |
RS458-0 TX — изолированный |
RX0 |
RS458-0 TX — изолированный |
Интерфейс Кольцо можно реализовать, если не устанавливать микросхемы ADM485 (U19, U20) и резисторы R42-R45, а также установить за место микросхем (U19, U20) перемычки между пинами 1-7 и 4-6, соответственно для каждой микросхемы.
Режим приема/передачи сигналы (RS458-0 – CS и RS458-1 – CS ) для интерфейса не нужны, а значит оптопары (U13, U15) можно не ставить. Тем не менее, установив оптопары, мы получим два независимых гальванически изолированных дискретных выхода. Также FLProg может использовать RS485-0 в двух режимах Serial com и Software com. Гальваническая изоляция реализована на микросхеме ADUM1251 (U9, U10).
При реализации интерфейса Кольцо наименование цепей клемм разъемов устройства будит выглядеть, как отображено на схеме подключения (Схема подключения Капля 8266.pdf).
Реализация шины I2C
Pin NodeMCU V3.0 |
Pin Arduino nano V3 |
|||
ESP8266F |
|
|
|
|
IO4 |
D2 |
I2C — изолированный SDA |
A4 |
I2C — изолированный SDA |
IO5 |
D1 |
I2C- изолированный SKL |
A5 |
I2C- изолированный SKL |
Интерфейс шины I2C собран по классической схеме на базе микросхемы ADUM1251. Собственно она сама по себе и является микросхемой гальванической развязки и разрабатывалась для этих целей и подобных шин. Следует не забывать, что на данную шину производитель этой микросхемы накладывает ограничение на длину. Длинна линии зависит от емкости, и эта емкость не должна превышать 400pF. Данный интерфейс реализован на микросхеме U4 расположенной на плате RKaplyaBrain8266.pcb.
При реализации интерфейса шины I2C. наименование цепей клемм разъемов устройства будит выглядеть, как отображено на схеме подключения (Схема подключения Капля 8266.pdf).
Реализация шины SPI
Pin NodeMCU V3.0 распиновка |
Pin Arduino nano V3 |
|||
ESP8266F |
|
|
|
|
IO14 |
D5 |
SPI SCK — изолированный |
D13 |
SPI SCK — изолированный |
IO12 |
D6 |
SPI MISO — изолированный |
D12 |
SPI MISO / RS458-1 RX — изолированный |
IO13 |
D7 |
SPI MOSI — изолированный |
D11 |
SPI MOSI — изолированный |
IO10 |
SD3 |
как выход SPI RST — изолированный |
D9 |
как выход SPI RST- изолированный |
IO15 |
D8 |
как выход SPI SDA (SS) -изолированный |
D10 |
как выход SPI SDA (SS) — изолированный |
Интерфейс шины SPI реализован сам по себе, как продукт реализаций вышеописанных интерфейсов, оставалось только установить разъем J6 на плате RKaplyaBrain8266.pcb, для подключения считывателя RFID RC522. Следующим этапом появилась возможность подключения к этому разъему микросхемы 74HC595 расположенной на плате RKaplyaAnalog.pcb.
На таблице расположенной выше приведены сигналы, используемые этой шиной. Также, можно увидеть что, все сигналы изолированные, это относиться к клеммам расположенным на плате RKaplyaShasy8266.pcb, но не к разъему J6 на плате RKaplyaBrain8266.pcb для подключения считывателя RFID RC522. Шина SPI не предназначена для передачи сигналов на дальнее расстояние, но в пределах модуля позволяет связать между собой многие полезные устройства.
Исходя из выше изложенного, при использовании шины SPI разъем J6 на плате RKaplyaBrain8266.pcb установку далее перечисленных компонентов производить нельзя:
(U18, R29, U10, U16, R31, U15, R30, U11, R24, R34, U12, R25, R35, U20, R41, R43, R45)
Реализация интерфейса 1-Wire
Pin NodeMCU V3.0 распиновка |
Pin Arduino nano V3 |
|||
ESP8266F |
|
|
|
|
IO12 |
D6 |
SPI MISO / RS458-1 RX — изолированный |
D12 |
SPI MISO / RS458-1 RX — изолированный |
IO4 |
D2 |
I2C — изолированный SDA |
A4 |
I2C — изолированный SDA |
IO5 |
D1 |
I2C- изолированный SKL |
A5 |
I2C- изолированный SKL |
RXD |
D9 |
RS458-0 RX — изолированный |
TX1 |
RS458-0 RX — изолированный |
В вышеприведенной таблице приведены наименования сигналов, которые могут использоваться для реализации интерфейса 1-Wire. Гальваническая изоляция реализована на микросхемах ADUM1251 (U4, U9, U10), Жёлтым цветом выделен сигнал которым можно воспользоваться только при условии, если U4 будет вот такой микросхемой: ADUM1250. Также необходимо обратить внимание, что при использовании сигналов IO12, RXD необходимо проделать следующие действия:
Не устанавливать микросхемы ADM485 (U19, U20) и резисторы R42-R45 в зависимости от того какой сигнал планируется использовать, а также установить за место микросхем (U19, U20) перемычки между пинами 1-7 и 4-6, соответственно для каждой микросхемы.
Реализация сторожевого таймера WDT.
Сторожевой таймер реализован на плате RKaplyaBrain8266.pcb на базе микросхемы SA555.
Подробное описание работы и на стройки этого чудного устройства прекрасно изложено в статье на сайте FLProg. Ознакомиться с ним можно сдесь: WDT
Немного от себя: стробирующие импульсы (STROBE) поступают через микросхему шинного формирователя U3, который в свою очередь получает его с ноги микроконтроллера GPIO5.
Необходимо обратить внимание на тот факт, что если в устройстве используется шина I2C, то в качестве стробирующих импульсов будет выступать сигнал тактовых импульсов шины I2C, если же устройство не предполагает использование шины I2C, то в программе необходимо реализовать поочередную запись 0 и 1 в GPIO5. Далее также необходимо обращать внимание на то, что перед записью скетча в микроконтроллер необходимо снимать джемпер J5., а после прошивки устанавливать обратно. Если этого не сделать то микроконтроллер не когда не пропишется по простой причине, что WDT будит его постоянно сбрасывать.
Реализация USB-TTL.
Данное устройство реализовано на основе модуля выпускаемого массовым производством, информацию о нем можно найти здесь: (USB-TTL CP2102)
Данное устройство используется для прошивки скетча в модуль ESP12F, установленный на плате RKaplyaBrain8266.pcb. Для прошивки модулей ARDUINO NANO он не нужен, как и не нужны транзисторы VT2, VT3 и резисторы R13-R16.
Данное устройство также используется при создании преобразователя USB-RS485 с гальванической развязкой, реализованной на плате RKaplyaRS485.pcb.
Установку модуля USB-TTL CP2102 на плату RKaplyaBrain8266.pcb можно производить в таком виде как он есть, но в этом случае разъем USB будет торчать из корпуса достаточно сильно. Второй вариант заключается в том, что можно удалить разъем USB и на его место впаять гребенку 4pin. , а на плате RKaplyaBrain8266.pcb установить раз]ем USBM1J. Подобный вариант можно посмотреть на фотографиях в архивах в первой части.
Использование модуля GSM SIM800L
Модуль SIM800L может поддерживать связь с модулями ARDUINO NANO и ESP12F по средством сигналов RX и TX. На плате RKaplyaBrain8266.pcb предусмотрено место для его установки. Также предусмотрены джемпера J2 и J3 для подключения его к разным коммуникационным портам микроконтроллера.
Pin NodeMCU V3.0 |
Pin Arduino nano V3 |
|||
ESP8266F |
|
|
|
|
IO12 |
D6 |
RS458-1 RX |
D12 |
RS458-1 RX |
IO13 |
D7 |
RS458-1 — TX |
D11 |
RS458-1 — TX |
RXD |
D9 |
RS458-0 RX |
TX1 |
RS458-0 RX |
TXD |
D10 |
RS458-0 TX |
RX0 |
RS458-0 TX |
Из выше приведенной таблицы видно, что модуль занимает один из двух коммуникационных портов, а значит что некоторые компоненты схемы устанавливаться недолжны. Это относиться к следующим элементам: (U10, U16, U18, U20 и U9, U14, U17, U19). Также необходимо не устанавливать компоненты обвязки, относящиеся к перечисленным элементам пользуясь принципиальной электрической схемой.
К сожалению, в программе FLProg не предусмотрен блок предназначенный для работы с модулем SIM800L, да и наверно некогда не будит. По этой причине о данном устройстве сказать больше нечего.
Некоторые не документированные возможности, которые никогда не войдут в описание.
Анализируя принципиальную электрическую схему не вооруженным глазом можно заметить , что все модули имеют между собой следующие взаимосвязи:
- Модули ARDUINO NANO и ESP12F параллельны друг другу по назначению сигналов.
- Оба модуля имеют связь по RX и TX с модулем GSM SIM800L.
- Модуль USB-TTL CP2102 жестко связан с модулем ESP12F.
Что же это нам дает?
Вот несколько идей:
- Используя п.3 за место модуля ESP12F можно устанавливать практически любой микроконтроллер ATMEL, STM, и т. д. Правда, для этого придется самостоятельно изготовить не большую платку переходника на которой надо будит разместить кварц, пару конденсаторов ну и конечно же сам микроконтроллер. Для изготовления подобного переходника вполне сгодиться технология ЛУТ.
- Используя п.1 на место модуля ARDUINO NANO можно установить платку на борту которой будит реализована схема высокоскоростного АЦП. Правда придется там же поместить схему гальванической изоляции, иначе датчики будут оказывать негативное влияние на работу всей системы в целом.
Продолжение следует