stm32f103c8t6 (bluepill) ? Проблема из разряда приколов - если на линии SDA висит щуп осциллографа, то все четко запускается, если рукой держать SDA- тоже. Иначе - висит при старте, SDA SDL в высоком уровне, HAL выдает BUSY (0x02) . Длина проводника 1 см, скорость 100кГц. если увеличить длину до 5-6 см - запускается. опрашиваю этим :
Ay = HAL_I2C_Mem_Read (&hi2c1, MPU6050_ADDR, WHO_AM_I_REG, 1, &check, 1, 1000);
С подтягивающими резисторами на линиях I2C все хорошо?
читайте эрату I2C на f103 мусор сломанный
Написал софт и2с уже. Нуиво вникать тем более чип левый
Тоже проблемы с i2c, оказывается я не один. И тоже квантовые эффекты были: смотрю анализатором - работает. Отпаиваюсь - не работает. STM32F103RCT6
А на F40X все культурнее в этом плане?
Да, мультиплексор AF, плавучка, менее глючные блоки периферии. Шарман.
намного лучше
F1 - I2C отстой F4 лучше F3 F7 L4 топ постепенно про серию F1 нужно забывать
Было такое, припаял дополнительную емкость на SDA SCL
а в чем именно отстойность заключается?
вот и мне интересно
Неполный автомат работы с DMA, не все события могут вызывать прерывание-приходится тупить в цикле ожидания. Зависает.
У STM32 I2C вообще специфический. Достаточно сказать, что надо реализовывать отдельно: - прием одного байта - прием двух байт - прием трех и более байт. При этом для второго случая есть даже специальный бит-костыль, который изменяет соответствие флагов и состояний на шине. А конкретно, если его поставить, то ACK, выставленный вместе с ним, будет передан для СЛЕДУЮЩЕГО байта, а не текущего.
Обсуждают сегодня