-
- Вот, например. Правда, без DMA. Eddy_Em(76 знак., 11.04.2025 15:40, ссылка)
- Эдуард, спасибо Вам!! Переделал под LL - вроде пашет. Даже на 1мгц
завелось. В релизе понижу, но до этого варианта не работало. - vesago(14.04.2025 21:42)
- Пожалуйста! А зачем было с кошерного CMSIS на некошерный LL переписывать? - Eddy_Em(14.04.2025 22:15)
- Спасибо!! - vesago(11.04.2025 16:23)
- Эдуард, спасибо Вам!! Переделал под LL - вроде пашет. Даже на 1мгц
завелось. В релизе понижу, но до этого варианта не работало. - vesago(14.04.2025 21:42)
- На регистрах не страшно. Я вытащил нужный код из источника по
ссылке. Если убрать шелуху, получается компактно и понятно. И
выглядит вполне вменяемо с учётом закидонов stm32 i2c
>>> SciFi(1 знак., 11.04.2025 14:03, ссылка)
- Спасибо. Возможно также поступлю :) - vesago(11.04.2025 14:12)
- Я два месяца как-то убил на ихний i2c. Завелось в итоег как надо..
если не считать периодического зависания фильтров. Плюнул, с тех
пор мастер только софверный... POV(77 знак., 11.04.2025 14:02)
- При тестировании обнаружил новый вид зависания. Если во время
работы коротить линии SDA и SCL между собой - оно виснет но не так
как описано в еррате. Выяснилось что в SR1 выставляется флаг STOPF.
Поскольку этот флаг относится к slave mode а у меня чисто мастер он
никак не обрабатывался в обработчике прерывания и получалось
бесконечное прерывание. Вот размышляю допилить обработку этого
флага или ну его нафиг и надежнее сразу переделать на программный
i2c ? - 3m(15.05.2025 10:02)
- Если обмен не особо напряжный, то сделать sw i2c - дальновидное
решение, которое можно будет достаточно просто портировать на
другие камни. Я когда-то сделал для себя вывод, что аппаратный i2c
без багов никто не осилил и проще даже не рассчитывать. - LightElf(15.05.2025 16:04)
- мне показалось, что в EFM32 master сделан годно. slave не был нужен. но в общем - не спорю - Vit(15.05.2025 20:37)
- Странный вывод. Вот, скажем, на телескопе с 2018 года трудятся
шесть контроллеров, каждый обслуживает 16 датчиков, сидящих на I2C.
Ни разу не было проблем по причине I2c. Eddy_Em(262 знак., 15.05.2025 17:31)
- "И ты прав.." - LightElf(15.05.2025 17:51)
- Если обмен не особо напряжный, то сделать sw i2c - дальновидное
решение, которое можно будет достаточно просто портировать на
другие камни. Я когда-то сделал для себя вывод, что аппаратный i2c
без багов никто не осилил и проще даже не рассчитывать. - LightElf(15.05.2025 16:04)
- Вопрос: как инициировать зависание фильтра i2c в stm32f103 ? А то
отладочные экземпляры на столе работают, беспребойно а надо
протестировать развешиваение. - 3m(06.05.2025 12:03)
- Реле на саморазмыкании поставить. - Yft(06.05.2025 18:16)
- Моторчик от детской игрушки без блокирующих щётки конденсаторов подключить к тому же питанию. Помехи всё подвесят 😬 - Бoмж(06.05.2025 14:03)
- Почитать, что в errata рекомендуется сделать и сделать наоборот ☺ Eddy_Em(152 знак., 06.05.2025 13:54)
- это только 10x серия глючная по и2ц, или все Fxxx ? - Ralex(14.04.2025 15:24)
- Только 10х. Но если следовать документации, все ОК. Правда, иногда приходится переинициализировать I2C. - Eddy_Em(14.04.2025 17:00)
- я с 103 работал - POV(14.04.2025 16:05)
- F030 и F446 - никаких проблем "из коробки". Т.е. после инициализации Кубом. - Лaгyнoв(14.04.2025 15:35)
- мне в софтварном i2c понадобилось замедлять CLK импульсы, чтобы не были слишком короткими - =L.A.=(12.04.2025 12:00)
- Даже с F103 я не встречал проблем у I2C. Просто писать код нужно
строго с учетом ERRATA. А вот долбанутые слейвы не раз попадались:
"захватит" линию клока, и не отпускает, собака. Помогает только
отключение/включение питания (но у некоторых бывает отдельно нога
reset). - Eddy_Em(11.04.2025 15:43)
- У него виснет аналоговый фильтр.. и ничего с этми не сделать,
чтение ерраты бесполезно... POV(286 знак., 11.04.2025 15:46)
- Ващето именно в еррате и описан завис фильтра. Если слейвы не тянут
SCL, то программный и2с самое надежное решение. - Andreas(11.04.2025 15:50)
- Описан. Но это не помогает забороть зависания, лишь способ приведения в чувство. - POV(11.04.2025 15:53)
- Ващето именно в еррате и описан завис фильтра. Если слейвы не тянут
SCL, то программный и2с самое надежное решение. - Andreas(11.04.2025 15:50)
- У него виснет аналоговый фильтр.. и ничего с этми не сделать,
чтение ерраты бесполезно... POV(286 знак., 11.04.2025 15:46)
- Даже в авр без проблем работало. Неужто такому гиганту как STM
сложно по-человечески сделать? Ногодрыгом я в атмеловских самах
делал. Ну там понятно. Но STM. Это же образец для подражания. - vesago(11.04.2025 14:14)
- Цена/доведенность у силабса вне конкуренции. У stm есть чип с не
кривым i2с? - jlm(11.04.2025 14:24)
- У всех STM32 нормальный I2C, кроме убогих F10x. - Eddy_Em(11.04.2025 15:41)
- Привет Эдди. Вопрос, можно ли STM32F103CBT6 заменить на
STM32F072CBT6 (Аналогичная проблема встретилась с I2C!)? Samum421(47 знак., 15.05.2025 16:52)
- В личку быстрей ответил. А что за проблема встретилась? Eddy_Em(45 знак., 15.05.2025 17:32, ссылка)
- I2C нормально не работает, данные с SHT41 не принимаются. - Samum421(15.05.2025 18:23)
- Возможно, в коде какой-то косяк. - Eddy_Em(15.05.2025 18:52)
- I2C нормально не работает, данные с SHT41 не принимаются. - Samum421(15.05.2025 18:23)
- В личку быстрей ответил. А что за проблема встретилась? Eddy_Em(45 знак., 15.05.2025 17:32, ссылка)
- i2c у всех минимум с несколькими limitation present, workaround
available. - jlm(11.04.2025 17:08)
- Но таки в F103 вообще жесть: принять 1, 2 или N байт - разные алгоритмы! - Eddy_Em(11.04.2025 20:21)
- Привет Эдди. Вопрос, можно ли STM32F103CBT6 заменить на
STM32F072CBT6 (Аналогичная проблема встретилась с I2C!)? Samum421(47 знак., 15.05.2025 16:52)
- У всех STM32 нормальный I2C, кроме убогих F10x. - Eddy_Em(11.04.2025 15:41)
- Цена/доведенность у силабса вне конкуренции. У stm есть чип с не
кривым i2с? - jlm(11.04.2025 14:24)
- При тестировании обнаружил новый вид зависания. Если во время
работы коротить линии SDA и SCL между собой - оно виснет но не так
как описано в еррате. Выяснилось что в SR1 выставляется флаг STOPF.
Поскольку этот флаг относится к slave mode а у меня чисто мастер он
никак не обрабатывался в обработчике прерывания и получалось
бесконечное прерывание. Вот размышляю допилить обработку этого
флага или ну его нафиг и надежнее сразу переделать на программный
i2c ? - 3m(15.05.2025 10:02)
- Вот, например. Правда, без DMA. Eddy_Em(76 знак., 11.04.2025 15:40, ссылка)