Есть Arduino Uno (точнее её китайский клон). Есть библиотека для работы с i2c для ардуино, стандартная - wire.h
Есть банальный EEPROM 24с32, выпаянный из телевизора
И есть некоторая проблема с ним.
Проблема заключается в том, что если обмен с 24с32 делать без делеев между атомарными операциями, то чтение запись происходит ненадежно.
Даже более сильно - надежно возникают проблемы.
Опыт показал, что достаточно задержки в 3-5 мс.
Под атомарными операциями понимается как чтение\запись одного байта, так и чтение\запись последовательности байт за один цикл обмена (микросхема поддерживает такой режим).
В чем проблема? В eeprom, библиотеке, или в HW-реализации i2c на мелкопроцессоре Ардуины?
-- 12.12.2018, 08:27 --И есть еще такой вопрос.
Опять же есть та же самая Ардуина.
Через SoftwareSerial к ней подключен LCD экран.
Через i2c будет подключен АЦП, с разрешением от 12 до 18 бит. Ну, 18 бит это будет скорее всего излишне. Но 12-16 хочется поддержать.
С АЦП будет делаться выборка порядка 500-1000 точек.
Их надо где-то сохранить, чтобы
а) сделать предобработку и выгрузить в LCD экран.
б) слить на комп через HardwareSerial
Вообщем, где-то надо сохранить 2-3 килобайта. А памяти уже столько нет.
Вопросы:
а) можно ли использовать для этого EEPROM (выборка будет делаться примерно раз в секунду при включенном устройстве)?
б) может есть какая-то достпуная память (ОЗУ) с i2c интерфейсом? Посоветуйте чип