eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2023-01-07 08:39 pm
Entry tags:

I2C on STM32G070

Добавил и I2C. В простейшем случае (без DMA) все решилось элементарным переносом с F0. Дольше провозился, разгребая все по разным файлам и переделывая proto.c.
Проверял на недавно купленном датчике SHT30 (у старых я всех подтяжки поотпаивал, чтобы к "апельсинке" присоединить, а новых аж 4 разных, но у остальных трех нужно гребенки паять — лень). Правда, у SHT30 зачем-то регистры 16-битные сделали (хоть там тех регистров и на 4 бита за глаза), так что пришлось еще добавить возможность чтения регистров с 16-битными адресами. Статусные регистры показывает, грелку включает/выключает, в однократном или непрерывном режиме температуру и влажность показывает. Температура плавает в районе ±0.05℃, влажность — в районе ±2%. По-хорошему, конечно, надо будет всю эту кучу датчиков потом в эдакий термостат засунуть, да посмотреть по калиброванному термометру, насколько врут. Еще бы чем-нибудь их показания влажности измерить… Ах, да: врет он по температуре безобразно: кажет аж 26℃ в квартире (все китайские домашние термометры 24 показывают). Если менять параметр "repeatability" (точность, видать), вообще ничего не меняется. Хотя точность обещали ±0.3℃, ну, обещанного три года ждут (а уж с китайскими датчиками, похоже, все очень плохо).
Завтра в 8 утра на работу вставать, надо долго не засиживаться, но чуть-чуть хочется еще потыкать палочкой возможность запуска I2C через DMA.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org