Size: a a a

2020 December 14

DC

Dmitry CTM in Embedded Group
hardegor
легких путей нет - либо написать свой, либо разобраться в существующем, потому что у каждого свой глюк вылазит.
глюк, на самом деле известный (хотя по слухам их два, просто проявляются схожим образом) и присутствует в большинстве контроллеров STM32
источник

СС

Сиие Сууие in Embedded Group
Dmitry CTM
Господа, нет ли у кого под рукой заведомо рабочего модуля I2C master для STM32F4?
Решение на HAL актуальной версии:
1. Через DMA не хочет передавать по 1 байту, только от 2х и более.
2. Известная проблема с "зависанием" STM32 I2C master проявляется вплоть до постоянного нахождения в EV-прерывании (какой-то флаг не сбрасывается в HAL-обработчике).
от двух и более четно или нет, 3 байта передать можно?
источник

СС

Сиие Сууие in Embedded Group
это немного тупо звучит, но у меня "проблема двух байт" когда-то вылазила в каком-то странном образе из-за того что оно первый раз запускалось при конфигурации и потом второй раз дёргалось по флагу готовности буффера
источник

DC

Dmitry CTM in Embedded Group
Сиие Сууие
это немного тупо звучит, но у меня "проблема двух байт" когда-то вылазила в каком-то странном образе из-за того что оно первый раз запускалось при конфигурации и потом второй раз дёргалось по флагу готовности буффера
весьма вероятно, что так оно и есть
источник

h

hardegor in Embedded Group
Сиие Сууие
это немного тупо звучит, но у меня "проблема двух байт" когда-то вылазила в каком-то странном образе из-за того что оно первый раз запускалось при конфигурации и потом второй раз дёргалось по флагу готовности буффера
это не глюк - в даташите, насколько помню, если принимаешь 2 байта, надо как-то отдельно вычитывать последний.
источник

KA

Konstantin Akmarov in Embedded Group
Dmitry CTM
Господа, нет ли у кого под рукой заведомо рабочего модуля I2C master для STM32F4?
Решение на HAL актуальной версии:
1. Через DMA не хочет передавать по 1 байту, только от 2х и более.
2. Известная проблема с "зависанием" STM32 I2C master проявляется вплоть до постоянного нахождения в EV-прерывании (какой-то флаг не сбрасывается в HAL-обработчике).
Забить на HAL и использовать LL для начала
источник

LZ

Leonid Zaliubovskii in Embedded Group
cd00291090-stm32f10xx-stm32f2xx-stm32f4xx-and-stm32l1xx-i2c-communication-peripheral-application-library-cpal-stmicroelectronics.pdf
источник

LZ

Leonid Zaliubovskii in Embedded Group
А также почитать доку и воркэрраунд на сайте стм32. Например
источник

LZ

Leonid Zaliubovskii in Embedded Group
Вдумчиво
источник

DC

Dmitry CTM in Embedded Group
Konstantin Akmarov
Забить на HAL и использовать LL для начала
По нашей предварительной оценке минимум 3 раб дня на дев + отладку. Не успеваем
источник

U

Username in Embedded Group
Dmitry CTM
По нашей предварительной оценке минимум 3 раб дня на дев + отладку. Не успеваем
без DMA не вариант?
источник

NN

Nikita Nazarenko in Embedded Group
shadowsoul
а зачем у неё шматок вот этого гуя на жабе сделан?
чтобы красивенько натыкать периферию. с этой задачей справляется вполне
источник

DC

Dmitry CTM in Embedded Group
Username
без DMA не вариант?
Вариант. Лишь бы работало :)
источник

U

Username in Embedded Group
Dmitry CTM
Вариант. Лишь бы работало :)
так может стоит проверить тогда халовские функции, работающие без DMA, у меня работало. это я к тому что иногда лучше в лоб сделать, чем супероптимально
источник

DC

Dmitry CTM in Embedded Group
Username
так может стоит проверить тогда халовские функции, работающие без DMA, у меня работало. это я к тому что иногда лучше в лоб сделать, чем супероптимально
В моем случае зависание поймано именно на отправке 1 байта через _IT
источник

U

Username in Embedded Group
Dmitry CTM
В моем случае зависание поймано именно на отправке 1 байта через _IT
не сталкивался, видимо придётся errata читать, как выше советовали
источник

U

Username in Embedded Group
Dmitry CTM
В моем случае зависание поймано именно на отправке 1 байта через _IT
а, глянул старый проект, у меня даже без прерываний сделано, возможно потому что тоже глюки были
источник

DC

Dmitry CTM in Embedded Group
Username
не сталкивался, видимо придётся errata читать, как выше советовали
Да, в еррате есть информация. Вопрос в том, реализовывал ли уже кто-то эти рекомендации.
источник

KA

Konstantin Akmarov in Embedded Group
Dmitry CTM
По нашей предварительной оценке минимум 3 раб дня на дев + отладку. Не успеваем
что там такого с I2C master на целых 3 дня переделывания?
источник

DC

Dmitry CTM in Embedded Group
Константин, Ваша оценка? Поллинг + прерывания, на базе LL, с отладкой
источник