Заголовок сообщения: STM32 и альтернативная функция портов I2C
Добавлено: Вт сен 26, 2017 20:18:57
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
Доброго времени суток. В общем то я проблему свою решил, но хотелось бы ее обсудить.
Есть STM32F103 и есть в том числе внешняя периферия сидящая на I2c в количестве 1шт (BMP180 на платке, со своим стабилизатором и подтягивающими R). Дорожки до датчика около 15мм длиной, на разных сторонах платы. Рядом ничего активного и шумящего нет.
Длинную историю как и чего делал рассказывать не буду. Сразу по существу.
В наличии есть три MК. Если порты I2C настроить на альтернативную функцию и только потом инициализировать I2C. Первый МК работает нормально, второй не захотел формировать событие старт (по краней мере не было этого флага), третий сначала работал некоторое время, но потом стал так же как второй. Однако если задеть пальцем, подпаять антенку-проводок на SDA или подсадить туда кондер на 1нф и землю все работало. Если встать осциллом, никаких плохих сигналов не видно, но и опять при наличии щупа на SDA все работает, а SCL на такое никак не реагировало. После всяких мытарств, многократного поиска где же я дурак, выяснилось что если сначала включить тактирование модуля I2C , уже потом включить альтернативную функцию портов и уже потом проводя настройку остального в I2C все проблемы на всех МК ушли).
Вопрос. Прописано ли где-то, что альтернативные функции должны включаться только после включения тактирования периферии? Относится ли это ко всем перифериям?
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Чем танцевать ритуальные танцы, выкачайте спецификацию на i2c, приведите схему в порядок рассчитав пуллапы исходя из длины шины, скорости и ёмкости. Определитесь с таймингами , Все рассчеты есть а RM.А так же обратите внимание на настройку скорости пинов. Здесь для F4 http://mcu.goodboard.ru/viewtopic.php?id=14
Заголовок сообщения: Re: STM32 и альтернативная функция портов I2C
Добавлено: Вт сен 26, 2017 22:04:03
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
dosikus писал(а):
Определитесь с таймингами
С таймингами вроде как все просто и частота тактирововния получилась расчетная, проверял осциллом. Форма сигнала тоже как положено. Спад четкий, фронт нарастает менее 1мкс.
Мурик писал(а):
Errata посмотрите.
В еррате действительно много текста про I2C, все время про этот документ забываю. Надо будет покурить его.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Заголовок сообщения: Re: STM32 и альтернативная функция портов I2C
Добавлено: Вс окт 01, 2017 11:32:20
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
Терпеть ненавижу незаконченных тем, потому резюмирую, чтобы не путать честной народ.
Данный "глюк контроллера", являющийся по факту как всегда криворукостью, решался очередностью инициализации портов и IIC чисто случайно. Видимо чтобы по закону подлости еще более ввести в заблуждение.
На самом деле далее стали появляться другие грабли. Я долго и мужество сражался с мельницей . Дело в том что у меня два кода - загрузчик и основной. Я почему то решил, что указатель стека в обоих случаях будет стоять на вершине памяти, но компилятор со мной был не согласен и сделал совершенно разные значения, по причине ему ведомые. При передаче управления от одного кода другому корректировка указателя все решила. Так все банально, что аж стыдно
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Сейчас этот форум просматривают: john1770 и гости: 35
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения