• fail stm32 1wire не понимаю. В прошлый раз дергал 1 wire через usart и всё работало. Сейчас написал на управлении одним GPIO пином. Проверил, что напряжение, как положено, тянется вверх-вниз, проверил правильность настройки таймера (не до конца уверен). Теперь reset отрабатывает нормально, а команды вроде READ ROM 1wire устройства не понимают и ничего не отдают.

Replies (9)

  • @Kim, На осциллографе то одинаковые картинки?
  • @Kim, На осциллографе то одинаковые картинки?
  • @Renha, прошу прощения за даблпост
  • @Renha, Так было бы слишком просто. У меня нынче нет 10к на осциллограф для домашних игрушек?
  • @Kim, s,?,,
  • @Kim, Так. Заработало. Были косяки с таймингами. Точнее со скоростью переключения режимов. При работе на 16 мегагерцах (hsi, переферийные таймеры без деления) даже таймер не нужен: переключить на output, сразу же на input и тогда укладываешься в 15 микросекунд 1wire протокола в течение которых можно считывать ответ. На 24 мегагерцах (pll, без деления) можно подождать пару микросекунд, после опускания напряжения на шине и аж 10 микросекунд (таймер на systick'ах. Reload выставлен в 48, то есть время получаем с точностью до 2 микросекунд) до считывания ответа.

    Если же переключать режимы не ручной работой с портами, а при помощи апилки из libopencm, то время ожидания надо сократить ещё на 8 микросекунд.
  • @Kim, можно собрать на stm32, и много ещё на чём, и разбирать когда не нужно
  • @Renha, А есть что по стандартам вывода на комп? У меня просто лежит stm32f3-discovery доска неоприходованная. На ней как раз usb есть распаянный
  • @Renha, И собрать получение сигнала под софт для логических анализаторов — хорошая идея