Данные (импульсы) снимаются со счетчика электроэнергии посредством подключения либо импульсному выходу или на светодиод счетчика навешивается фототранзистор.
Данные отправляются на облачный сервер и записываются во FRAM память, для защиты от пропадания питания.
FRAM память можно использовать или I2C или SPI.
Если SPI, то используется overlap - память припаивается поверх основного флеша на модуле esp.
Отображение информации, графики - через web.
Количество считанных импульсов сохраняется в энергонезависимою FRAM память.
В ней также сохраняется кольцевой лог потребленной энергии за каждую минуту. Минуты с нулевыми значениями импульсов "архивируются", чтобы больше данных влезло.
Если FRAM - I2C, то программный флеш работает на частоте 80 Mhz, а если SPI, то на 40 Mhz. Это связано с режимом SPI overlap.
Особого замедления отображения веб страниц я не заметил.
У esp8266 есть две шины SPI - которые называются SPI и HSPI.
SPI используется процессором для доступа к флешу с прошивкой, HSPI может использоваться для других устройств.
Встроенный SPI буфер у esp8266 - 64 байта.
В режиме SPI overlap возможен доступ по одним и тем же линиям (MOSI,MISO,CLK) к трем устройствам, которые выбираются через CS0, CS1, CS2.
CS0 - это программная флеш.
Команда включения режима SPI overlap:
Арбитр HSPI шины можно настроить волшебными командами так, чтобы он сам решал какое устройство в данный момент использовать и назначить программному флешу наивысший приоритет, чтобы работало кеширование кода (ICACHE).
Вот эти команды включают для HSPI только линию CS2:
В режиме overlap есть ограничения по частоте SPI - если программная флеш работает на частоте SPI равной 80 Mhz, то и другие SPI устройства должны работать на той же частоте.
Либо нужно программную SPI установить в 40 Mhz, тогда можно будет использовать свои устройства на 40 Mhz и ниже.
Исходник: GitHub - vad7/PowerMeter: Esp8266 Power meter with webserver
Данные отправляются на облачный сервер и записываются во FRAM память, для защиты от пропадания питания.
FRAM память можно использовать или I2C или SPI.
Если SPI, то используется overlap - память припаивается поверх основного флеша на модуле esp.
Отображение информации, графики - через web.
Количество считанных импульсов сохраняется в энергонезависимою FRAM память.
В ней также сохраняется кольцевой лог потребленной энергии за каждую минуту. Минуты с нулевыми значениями импульсов "архивируются", чтобы больше данных влезло.
Если FRAM - I2C, то программный флеш работает на частоте 80 Mhz, а если SPI, то на 40 Mhz. Это связано с режимом SPI overlap.
Особого замедления отображения веб страниц я не заметил.
У esp8266 есть две шины SPI - которые называются SPI и HSPI.
SPI используется процессором для доступа к флешу с прошивкой, HSPI может использоваться для других устройств.
Встроенный SPI буфер у esp8266 - 64 байта.
В режиме SPI overlap возможен доступ по одним и тем же линиям (MOSI,MISO,CLK) к трем устройствам, которые выбираются через CS0, CS1, CS2.
CS0 - это программная флеш.
Команда включения режима SPI overlap:
Код:
SET_PERI_REG_MASK(HOST_INF_SEL, PERI_IO_CSPI_OVERLAP); // HOST_INF_SEL = 0x3ff00028
Код:
SET_PERI_REG_MASK(SPI_EXT3(SPI),0x1);
SET_PERI_REG_MASK(SPI_EXT3(HSPI),0x3);
Код:
CLEAR_PERI_REG_MASK(SPI_PIN(HSPI), SPI_CS2_DIS);
SET_PERI_REG_MASK(SPI_PIN(HSPI), SPI_CS0_DIS | SPI_CS1_DIS);
Либо нужно программную SPI установить в 40 Mhz, тогда можно будет использовать свои устройства на 40 Mhz и ниже.
Исходник: GitHub - vad7/PowerMeter: Esp8266 Power meter with webserver
Последнее редактирование: