stm32f1 cmsis настройка I2C

Кто любит RISC в жизни, заходим, не стесняемся.
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

stm32f1 cmsis настройка I2C

Сообщение ivan dimir »

как настроить I2C принцып что нужно настраивать.И ещё один вопрос у меня есть пример как передать 1 байт и принять.А если у меня 2 байтовое слово как это сделать тоже по принципу?
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: stm32f1 cmsis настройка I2C

Сообщение VladislavS »

Реклама
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: stm32f1 cmsis настройка I2C

Сообщение ivan dimir »

У меня яндекс не работает
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: stm32f1 cmsis настройка I2C

Сообщение Мурик »

Реклама
Эиком - электронные компоненты и радиодетали
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: stm32f1 cmsis настройка I2C

Сообщение ivan dimir »

Спасибо кот.Спасибо Дюдюка.Вы настоящие спецы.
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: stm32f1 cmsis настройка I2C

Сообщение Мурик »

Разработчик кроме выпрашивания кодов на форумах :))) должен уметь их находить, :) иначе можно дойти до такого.
Реклама
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: stm32f1 cmsis настройка I2C

Сообщение Eddy_Em »

Я бы просто посоветовал сниппеты для F0 скачать, ими и пользоваться.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: stm32f1 cmsis настройка I2C

Сообщение VladislavS »

[uquote="Мурик",url="/forum/viewtopic.php?p=3877899#p3877899"]Разработчик кроме выпрашивания кодов на форумах :))) должен уметь их находить :)[/uquote]Я по простоте душевной всегда считал, что писать должен уметь.


[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3877957#p3877957"]Я бы просто посоветовал сниппеты для F0 скачать, ими и пользоваться.[/uquote]
Очень ценный совет для f1. :facepalm:
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: stm32f1 cmsis настройка I2C

Сообщение Мурик »

VladislavS писал(а):Я по простоте душевной всегда считал, что писать должен уметь.
В идеале да, но не все способны на это. Максимум что могут - слепить кое-как работающий код из кусков выпрошенных на форумах...
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: stm32f1 cmsis настройка I2C

Сообщение Eddy_Em »

Очень ценный совет для f1.
Они в большинстве своем переносятся на F1 безболезненно. Сам так и делаю. А вообще, конечно, STM32F103 — худшее, что только можно придумать использовать!..
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: stm32f1 cmsis настройка I2C

Сообщение VladislavS »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3878019#p3878019"]Они в большинстве своем переносятся на F1 безболезненно.[/uquote]Брехня. Тема про I2C. Они у F0 и F1 совсем разные.

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3878019#p3878019"]А вообще, конечно, STM32F103 — худшее, что только можно придумать использовать!..[/uquote]Отличный контроллер. Стоит копейки, производительности хоть попой кушай, информации по программированию в сети и того больше. Простой и надёжный как АК.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: stm32f1 cmsis настройка I2C

Сообщение Eddy_Em »

VladislavS, какой он, нафиг, простой и надежный, если там I2C через жопу настолько, что некоторые его ногодрыгом делают?
Я уж не говорю о других косяках...
Вот ты сможешь включить на нем подтяжку в режиме выхода? Ну и т.д.

Нет, если нужно что-то простое и недорогое, то самый лучший выбор - STM32F072. А если вдруг понадобится математика, а то и флоаты, то брать сразу F303 или F4xx...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: stm32f1 cmsis настройка I2C

Сообщение VladislavS »

У меня I2C F103 на хотплуге висит и тарахтит себе без сбоев. Кто там чем ногодрыгает проблема не чипа.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: stm32f1 cmsis настройка I2C

Сообщение Мурик »

У F103 есть только одна существенная проблема с I2C.
I2C analog filter may provide wrong value, locking BUSY flag and preventing master mode entry
Description
The I2C analog filters embedded in the I2C I/Os may be tied to low level, whereas SCL and
SDA lines are kept at high level. This can occur after an MCU power-on reset, or during
ESD stress. Consequently, the I2C BUSY flag is set, and the I2C cannot enter master mode
(START condition cannot be sent). The I2C BUSY flag cannot be cleared by the SWRST
control bit, nor by a peripheral or a system reset. BUSY bit is cleared under reset, but it is
set high again as soon as the reset is released, because the analog filter output is still at low
level. This issue occurs randomly.
Note: Under the same conditions, the I2C analog filters may also provide a high level, whereas
SCL and SDA lines are kept to low level. This should not create issues as the filters output
will be correct after next SCL and SDA transition.
Возникает при сильных помехах на I2C (кто-то туда полез тыкать отверткой или пинцетом и куда попало коротить). Решается программно.
Workaround
The SCL and SDA analog filter output is updated after a transition occurs on the SCL and
SDA line respectively. The SCL and SDA transition can be forced by software configuring
the I2C I/Os in output mode. Then, once the analog filters are unlocked and output the SCL
and SDA lines level, the BUSY flag can be reset with a software reset, and the I2C can enter
master mode. Therefore, the following sequence must be applied:
1. Disable the I2C peripheral by clearing the PE bit in I2Cx_CR1 register.
2. Configure the SCL and SDA I/Os as General Purpose Output Open-Drain, High level
(Write 1 to GPIOx_ODR).
3. Check SCL and SDA High level in GPIOx_IDR.
4. Configure the SDA I/O as General Purpose Output Open-Drain, Low level (Write 0 to
GPIOx_ODR).
5. Check SDA Low level in GPIOx_IDR.
6. Configure the SCL I/O as General Purpose Output Open-Drain, Low level (Write 0 to
GPIOx_ODR).
7. Check SCL Low level in GPIOx_IDR.
8. Configure the SCL I/O as General Purpose Output Open-Drain, High level (Write 1 to
GPIOx_ODR).
9. Check SCL High level in GPIOx_IDR.
10. Configure the SDA I/O as General Purpose Output Open-Drain , High level (Write 1 to
GPIOx_ODR).
11. Check SDA High level in GPIOx_IDR.
12. Configure the SCL and SDA I/Os as Alternate function Open-Drain.
13. Set SWRST bit in I2Cx_CR1 register.
14. Clear SWRST bit in I2Cx_CR1 register.
15. Enable the I2C peripheral by setting the PE bit in I2Cx_CR1 register.
Я не считаю что из-за этого стоит отказываться от МК.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: stm32f1 cmsis настройка I2C

Сообщение dosikus »

ivan dimir, i2c в F4 такой же - http://mcu.goodboard.ru/viewtopic.php?id=14
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: stm32f1 cmsis настройка I2C

Сообщение ivan dimir »

Уважаемые коты.И Дюдюка. Я знаю что i2c везде на stm32 одинаков.Меня принцип настройки шины интересует.В мануале я ничего не понял.Если по таймерам и АЦП всё понятно.То в гугле каждый пишет как настроить шину по разному.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: stm32f1 cmsis настройка I2C

Сообщение VladislavS »

[uquote="ivan dimir",url="/forum/viewtopic.php?p=3878779#p3878779"]Я знаю что i2c везде на stm32 одинаков.[/uquote]Это не так. Я вот два разных модуля I2C в микроконтролерах stm32 знаю.
[uquote="ivan dimir",url="/forum/viewtopic.php?p=3878779#p3878779"]Меня принцип настройки шины интересует.[/uquote]Настроить две ноги в AF, включить тактирование, записать штук 5 регистров правильными значениями по RM. Всё как обычно и с другими устройствами.
[uquote="ivan dimir",url="/forum/viewtopic.php?p=3878779#p3878779"]В мануале я ничего не понял.[/uquote]Что конкретно непонятно? Спрашивайте. А то создаётся впечатление, что вы не своим делом заняты.
[uquote="ivan dimir",url="/forum/viewtopic.php?p=3878779#p3878779"]Если по таймерам и АЦП всё понятно.[/uquote]Очень странно. Настройка таймеров и АЦП, кмк, посложней I2C будет.
[uquote="ivan dimir",url="/forum/viewtopic.php?p=3878779#p3878779"]То в гугле каждый пишет как настроить шину по разному.[/uquote]Ничего удивительного. Даже просто GPIO настроить есть куча разных подходов.
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: stm32f1 cmsis настройка I2C

Сообщение ivan dimir »

Я вот два разных модуля I2C в микроконтролерах stm32 знаю.Как это разные модули I2C?.Меня интересуют этих 5 регистров?
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: stm32f1 cmsis настройка I2C

Сообщение Мурик »

ivan dimir писал(а):Меня интересуют этих 5 регистров?
RM на контроллер не интересует?
В нем все есть.
ivan dimir
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Вс дек 29, 2019 08:05:21

Re: stm32f1 cmsis настройка I2C

Сообщение ivan dimir »

Меня интересуют биты?
Ответить

Вернуться в «ARM»