Arduino Uno. Танцы выходов

Полную схему я выложу обязательно. Ведущий МК работает отлично, проблема была в ведомом с перезагрузкой ведущего.

Просто набрал в гугле Serial Eeprom

https://www.onsemi.com/pdf/datasheet/cat24m01-d.pdf

1 лайк

SPI или ISP?

Эх, совсем нет гугла у человека)))
http://ww1.microchip.com/downloads/en/devicedoc/s71271_04.pdf

У меня не только гугл, у меня рамблер есть. Просто в
Ardini-IDE написано ISP. А это, оказывается, разные понятия.

Да не особо разные. Если только чуть-чуть. SPI - для обмена данными, ISP - для прошивки. Но по сути там разница только в том, что один SS (ведомый чип) «дёргает», а второй «ресет». Это моё понятие этих протоколов, на «истину в одном лице» не претендую.

1 лайк

А нужно ли еще какое-либо железо для прошивки?

Нет. Ещё железо необязательно.Внешняя EEPROM пишется/читается МК ардуино, до 1млн циклов перезаписи. Интерфейс обычно I2C, хотя и SPI бывают, но это не важно.
Опять же в гугле полно информации.
Есть даже готовые модули
https://www.yourduino.ru/product/modul-pamyati-eeprom-at24c256-i2c-2

1 лайк

Тут главный вопрос лишь - позволит ли протокол кондиционера, что-бы считывать и отправлять “на лету” по байту из EEPROM, или всё таки придётся сначала загружать в буфер, а потом передавать.
Во втором случае, всё же придётся “раскошелиться” на один массив в оперативной памяти из

1 лайк

Скорости может не хватить. Но внешнюю EEPROM освоить хотелось бы. Да я и с внутренней еще не работал.

Похоже, что получилось обойтись обойтись без ведомого МК.
Проделал следующее.

Из ведомого МК перенес в программную память ведущего:
const unsigned int PROGMEM ConOff[211]={…}; // не расписываю все элементы
const unsigned int PROGMEM ConCold[211]={…}; // не расписываю все элементы
const unsigned int PROGMEM ConHeat[211]={…}; // не расписываю все элементы

unsigned int massiw[211]; // РАСКОШЕЛИЛСЯ
int cicl; // индекс элементов массивов для обмена

Добавил 20 переменных типа long int для балласта.
Отсюда я буду отщипывать байты для новых переменных при развитии проекта.
Даже еще память отсюда останется.

После прошивки на 32х разрядной Windows получаю такое сообщение:
Скетч использует 17564 байт (54%) …
Глобальные переменные используют 1358 байт (66%) …
МК работает.
Проект осталось доработать чуть-чуть. А там еще памяти 46%. Мне столько для доработки не надо.

Но самое интересное, что на 64х разрядной Windows
глобальных переменных 77% против 66%. И предупреждение о нестабильной работе.

Версии ARDUINO-IDE на двух Windows одинаковые: 1.8.19.
На каждой системе устанавливал FLProg (32x и 64x версии соответственно). Возможно, что FLProg подставила свои библиотеки.