stm32f103 + i²c = адъ и сотона

Попробовал повозиться с I²C. Мало того, что эррата на три листа, так и не работает толком ((

Подключил lsm303dlh, пытаюсь прочитать — на шине все нормально, а stm тормозит — говорит «ack нетути». И все. Но суслик-то есть…



i2c1 не работает совместно с fsmc (без него — на ура). Блин.

Не используйте i²c вместе с stm32f103! Если уж надо какую-то последовательную шину — переходите на spi.

Комментарии (36)

RSS свернуть / развернуть
Да… Как то решал почему неходит SPI2 и UART3 — тоже самое — всё написано в errata
0
  • avatar
  • wowa
  • 06 марта 2012, 19:02
Поясните плиз, SPI2 и UART3 не работают совместно с FSMC? Я просто не могу в errata найти явное упоминание об этом.
0
Нет… Не работают именно SPI2 и UART3 с определёнными настройками. И еррата это описано… Но кто же их читает перед работой? :) Там с переферией гораздо больше глюков. Причём в большинстве случаев всё работает с ДМА и перестаёт саботать когда раьботаеш прямо с регистрами. Там чтото похерили с задержками.
0
На семинаре говорили что в F2xx уже пофиксено
0
Юзайте LPC'цешки! Они тоже не безгрешны но не на столько.
+1
  • avatar
  • Zov
  • 06 марта 2012, 19:29
Сидим на том, что есть в наличии. DiscoveryF1xx по почте пришла, а L1xx и F4xx на семинарах дали. LPCxpresso же так и не доехало, а покупать спецом чтобы через бутлоадер их шить, да без отладчика еще — нее. Плату еще к тому же надо ваять какую-нить
0
У меня вообще нет ни одного отладчика, весь софт разрабатываю в симуляторе и шью в кристал. И это не мешает нормально работать и  i2c и всей другой переферии.
0
В LPCXpresso отладчик встроен, если чё. Стоит она не так и много.
0
Да я в курсе. Я про то, что имея три дискавери нет смысла еще идти и покупать экспрессо без особой надобности.
0
Я знаю решение всех ваших проблем — сходите к практологу, пусть он вам руки из ж… пы на их биологическое место произрастания.
Я не спорю — косяки есть, но с LSM303DLH stm32f103 работает, проверял лично. Между собой контроллеры тоже нормально общаются, а также в контакте с AVR, LIS331, SHT21 и тд.
Пишите нормальный код и читайте доки, а не газету метро :)
-3
Вы, перед тем как хамить, внимательно бы прочитали статью.
Автор не говорит, что LSM303DLH с stm32f103 не работает вообще. Он говорит, что I2C1 не работает одновременно FSMC.
0
Эх, уважаемый. Ну растолкуйте убогому, почему же у меня не появляется флажок ADDR на указанной диаграммке при использовании i2c2? И почему он волшебным образом появляется, если использовать i2c1?
0
Проверьте монтаж, ремап и настройку пинов. Только что проверил LSM303 на i2c 1 и 2 (stm32f103cbt6) — без замечаний.
0
У меня high-density (F103VE и F103ZE). У cbt и FSMC-то нету.
0
Если не считаете использование готовых операционных систем в микроконтроллерах ересью — попробуйте chibios.org I2C там работает из коробки.
0
раскрыть комментарий
-6
Мой блог, куда хочу туда и флужу. Если нечего/лень по сути сказать — проходим мимо.
-1
А что тут скажешь, пост из трёх предложений не несущих никакой смысловой нагрузки. Что обсуждать то? Где проблема?
Если у вас i2c не работает, зачем писать что не надо его использовать?
У меня всё без проблем работает. Да не сразу получилось, пару дней возился, доводил до ума конечный автомат, но результат того стоит: копирую в новый проект функцию-обработчик прерывания — и всё тип-топ.
-4
Пока что это крик души совместно с ударами головой об стену. Понятное дело — разберусь, запилю статью про грабли. Но, блин, все черезэто проходили, у всех руки прямые, у всех в загашниках стопроцентно работающий код. Теперь осталось и мне пройти этот путь.
0
А истерить то зачем??? )))))))
Соглашусь, пожалуй, с предыдущим орартором… блог — гавно!!!
С таким гавном на форум… типа «мы люди не местные, с STM32 не знакомые, памажите копейкой кода, не дайте помереть с голоду инфы непонятной»… )))))))))
-2
А я соглашусь с автором. «Я наступил, вы не наступите» — Пост длю блога. Он не ждет ответа и демагогии, он констатирует факт.
0
Правильно… давайте каждый за каждым пуком создаст блог ниочём…
Представляю… «не могу запустить»,«что за хня»,«как всё плохо», «у меня, и не работает — лажа», «всё гавно»… ))))))))))))))))))))))))))))
-2
О! Я еще фоток котов не постил.
+1
Да и то… лучше бы было… ))))))
Всё ж… ПОЗИТИФФ… )))))))))
0
Кстати, в правилах указано что можешь :)
0
Персональный блог на то и персональный, что бы постить в нем что-то для себя. Не нравится — не читайте. А флудить на тему, что автор что-то не так написал, IMHO, не имеет смысла.
0
Та вашу дивизию. Неужели думаете я не смогу грамотно оформить вопрос? Смогу )

Это типичный лытдыбр, вот и помещен в личный блог.
Просто убил день на бег по граблям, что и вылилось в вечерний крик души.
По поводу неиспользования i2c — это моя личная позиция. Никому не навязываю. Вопить — «напишите мне код нажатия кнопки» как-то не в моих традициях, но людей вылазящих сказать только «хе, я разобрался все работает но никому не скажу бо лень/недостойны вы все и руки из жопы и говорить с вами неочем» не уважаю.
+3
Не понимаю почему все так накинулись на автора. Блог личный, что человек посчитал нужным то и написал. В последнее время наблюдаю все большую агрессию на сайте, когда проект создавался все были терпимее что ли.
0
А никто и не накинулся…
Моё мнение точно такое же, как и ваше… оно не лучше и не хуже — оно другое…
0
LIS35DE, STM32F103C8T6, C6T6, U8 (или как-то так) — полёт нормальный. Эррату даже не читал, просто подключил на І2С2 и поправил код примера. ЧЯДНТ?
0
Если
ЧЯДНТ?
= че я делаю не так, то вот (второе предложение)
0
Это как в анекдоте «и не в лотерею, а в преферанс, и не выиграл, а проиграл, и не волгу, а 100 рублей».

У нас общего только «STM32F103», остальное отличается. Бока могут быть везде. Конечно, если есть желание, я могу переформатировать диалог и выложить куски кода, схемы и прочее. Но по опыту, когда вываливается портянка кода и спрашивается «что у меня не так» обычно никто и не смотрит.
0
Портянку никому не интересно читать, а для вопросов есть форум. Всё логично :)
0
Странно. У меня LSMка завелась с STM32F103C8T6 без вопросов. Правда не помню какой из i2c запользовал, но во время экспериментов пробовал оба и все работало. Без ДМА.
Про пин SS для SPI уже давно было сказано, что сам чип этой ногой не дрыгает. Тем более следует учитывать что приемников для SPI может быть несколько, а значит автоматически дергать ногой — вредно. Опять же на STM32F103C8T6 у меня отлично работают оба SPI и UART3. Никаких гемороев не обнаружено. В текущем проекте — работает все через ДМА.
0
Это надо смотреть в еррата — там написаны и номера партий в которых это ещё не работало. У меня просто были микросхемы из самых первый партий семплов. Кстати чит STM32F407 ревизии А который стоит в дискавери киту — тоже довольно глючный…
0
Пин NSS имеет два режима управления — програмный и аппаратный. Если програмный, то чип его не трогает вообще и каждый волен его использовать по своему усмотрению.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.