Что бы еще такого сделать?... Предлагайте! Обсудим все!!!
Ответить

ЛОГирование в EEPROM и последующий вывод

Вс июн 12, 2022 12:02:17

День добрый, друзья. Мозгую над своим концептом зарядного устройства для автомобильных АКБ.

В виде мозга будет STM32F401CCU6 (Black Pill). Пока тесты на STM32F407VET6 и F103C8T6 (Синяя таблетка).

Хочу собирать данные, например зависимость напряжения от времени при разрядке/зарядке для дальнейшего построения графиков (на ПК, или на дисплее, но позже).

Вижу так: раз в 10 секунд (тут не точно и пока не важно) МК отправляет в EEPROM свежие данные, запись времени не обязательно делать, если временной интервал между записями будет известен и один и тот же.

Размерность данных - 16 бит, думаю хватит. С количеством данных - пока не понятно. Заряд-разряд может длиться несколько суток... Допустим, запись раз в 10 сек, в течении 3 суток, без перезаписи начальных данных: 25920 записей за 3 суток. х2 байта данных = 51840 байта или 414720 бита... То есть нужно 512Кбитный EEPROM? (пока писал хоть к чему-то сам пришёл)

Вся сложность у меня возникает в моей голове, так как не очень представляю как организовать запись. С EEPROM тесно не работал, документации начитался, видосов насмотрелся. Не могу сообразить как совладать со страничной организацией памяти, и как потом выкавыривать данные.

Изначальная идея была прикрутить к МК SD флешку, и все данные записывать в какой-то текстовый файл. Но для меня задача оказалась ещё сложнее.

В наличии сейчас (для тестов) 2Кбитные 24С02. 32 страницы по 8 байт.

Кароче прошу помощи, натолкните на мысль, пожалуйста.

Re: ЛОГирование в EEPROM и последующий вывод

Вс июн 12, 2022 12:19:55

ну дык всё просто и сами же почти всё решили, один момент остался: определение адреса последней записи.
Я бы, конечно, выбрал запись на SD - вытащить и прочитать на ноуте проще, ресурс вечен (за счёт замены вышедших из строя на новые), объём громадный, стоимость не так уж высока.
Страничные чтение-запись описаны в даташите на еепром. Если там один абзац не прочитать, то при попытке записи могут всплыть разные странности, например, байты не кончились, конец страницы уже достигнут, счётчик адреса обнуляется и начинается перезапись первых байт в странице. что-то такое у меня было, как раз потому что поленился прочитать.

Re: ЛОГирование в EEPROM и последующий вывод

Вс июн 12, 2022 12:27:46

Если ориентируетесь на 4хх кристаллы, то там есть SDIO - можете прямиком подключать SD/TF карточку и туда писать текст "comma separated" который затем можно будет скормить экселю или другому спредшиту.

Можно конечно писать и в EEPROM. кусками по 256 байт (это одна страница). Я себе так в роботе делаю журналирование (но у меня там другая проблема - скорость, мне надо много и быстро, а вам только много). Собственно, в начале, я всегда первые 4 байта пишу нули, а по завершении туда записываю сколько записей сделано. Проблема, конечно, как данные вытащить наружу. У меня есть сериальный порт, через который я имею доступ к командной строке интепретатора и тот (интерпретатор) может по команде слить мне уже интепретированные данные на терминал, вывод которого я могу записать в файл, а затем, опять же скормить данные спредшиту для анализа.

А вообще, если не охота возиться с SD карточками, файловыми системами или командными строками/интерпретаторами, есть проект OpenLog - втыкаешь туды карточку и через последовательный порт шлёшь всё что надо и оно само пишется.

Re: ЛОГирование в EEPROM и последующий вывод

Вс июн 12, 2022 13:30:24

Martian писал(а):Я бы, конечно, выбрал запись на SD - вытащить и прочитать на ноуте проще, ресурс вечен (за счёт замены вышедших из строя на новые), объём громадный, стоимость не так уж высока.
uldemir писал(а):Если ориентируетесь на 4хх кристаллы, то там есть SDIO - можете прямиком подключать SD/TF карточку и туда писать текст "comma separated" который затем можно будет скормить экселю или другому спредшиту.


Наткнулся на статью: Подключение SD карты к STM32 через 4-х битный интерфейс SDIO (не реклама, не пинайте).
В принципе, если перейти на F411CUE6 модификацию Чёрной пилюли (там есть SDIO), то можно попробовать ... Вроде, не настолько сложно, как я предполагал. Кто пользовался - там нет ограничений на объём карт памяти? У меня минимум на 8Гб есть :)

За вывод данных в виде CSV - спасибо! Это действительно упростит жизнь в дальнейшем.

UPD: всё получилось, кстати =) Всё по той статье выше. Флешка на 8 Гб завелась, файлик .csv наполняется данными :music:

Re: ЛОГирование в EEPROM и последующий вывод

Вс июн 12, 2022 23:10:37

Устройство в качестве освоения интересных новых опций работы с памятью или практическое применение? Потому как изучение здоровья автомобильных аккумуляторов не стоит того времени. Там по внутреннему сопротивлению (отдаваемому току) понятно в утиль или на подзаряд батарею. Чудес не случается. Все эти истории про десульфатацию это от бедности.
Ответить