Присоединяйтесь!
Авторизация

Англичанка гадит. Глобальная проблема c UART в новой Raspberry Pi 3

07 June 2016 - Автор Modest_Karlovich

Привет, малиноводы! Модест Карлович на связи

Вчера подключил свой gps-приёмник к UART-пинам новой Raspberry Pi 3, однако gpsd обрабатывать данные с приёмника отказался.

Начал выяснять в чём дело и понял, что старая русская поговорка (я вынес её в заголовок топика) снова актуальна!

Итак, поскольку в Raspberry Pi 3 теперь есть Bluetooth, то выводы uart0 от чипа процессора теперь используются под нужды Bluetooth. Таким образом в Raspberry Pi 3 больше нет нормального хардварного uart'а

Вместо него разработчики сделали программный UART. И это плохо, очень плохо. Программный uart не имеет собственного генератора такта, а использует для работы частоту процессора, а она на Raspberry Pi постоянно меняется в зависимости от нагрузки, соответственно меняется и скорость работы порта. Вы и сами можете это проверить командой

stty -F /dev/ttyS0

(да, теперь этот квазиUART представлен устройством /dev/ttyS0, а не /dev/ttyAMA0 как было раньше)

в выводе команды видно, что скорость работы порта постоянно меняется и зафиксировать её на определённую константу невозможно, а значит невозможно и пользоваться портом для чтения/передачи данных. Вот такую свинью совместимости с предыдущими моделями RasPi подложили сообществу английские электронщики (хотя судя по тупости такого подхода, не удивлюсь если к новому процессору приложили свои таланты китайские инженеры)

Разработчики предлагают абсолютно гениальные решения для решения проблемы с UART:

1.Зафиксировать частоту core_freq на уровне 250mhz, прописав core_freq=250 в конфиг /boot/config.txt, что естественно повлечёт за собой снижение производительности компьютера

2."Вернуть всё в зад", фактически отключив Bluetooth , добавив в конфиг

dtoverlay=pi3-miniuart-bt

Резюмирую статью - Теперь у нас нет возможности нормально пользоваться UART'ом по умолчанию. Для номральной работы нужно либо зафиксировать частоту ядра процессора на пониженном уровне и соответственно потерять часть производительности, либо отказаться от одновременного использования UART и Bluetooth.

Вот такие дела.

О проблемах в архитектуре RasPi3 вам рассказал Модест Карлович! Читайте мой блог тут - http://raspberrypi.ru/profile/Modest_Karlovich/created/topics/

07 June 2016
Modest_Karlovich
автор статьи

Комментариев: 5

  1. Dancespeed

    07 June 2016 - Ответить

    А если использовать usb-GPS приемник? Интересно, а как тогда реализован wi-fi?

    • raspiman

      10 June 2016 - ответить

      C USB gps приёмником проблем возникнуть не должно, т.к работа с ним осуществляется через устройство /dev/USBx

  2. Dancespeed

    07 June 2016 - Ответить

    Для беспроводных сетей один чип, вроде…

  3. Shatki

    15 August 2016 - Ответить

    Весь вечер убил на поиск причины не работы UART на Pi3. Спасибо очень выручила статья!

  4. Olekos

    20 April 2017 - Ответить

    Вот тут поподробнее:https://www.youtube.com/watch?v=68jbiuf27AY

  5. Rasp10

    15 June 2017 - Ответить

    The Raspberry Pi UARTshttps://www.raspberrypi.org/documentation/configuration/uart.md

Отправить комментарий

Авторизуйтесь для отправки комментария

Присоединяйтесь
Новые сообщения

Новые комментарии к блогам
  • Чёт дорого

    Raspberry Pi 400
  • Как её программировать?

    Raspberry Pi Pico
  • Зря Wi-Fi не вколхозили, как они с esp32 конкурировать собрались, который и по характеристикам...

    Raspberry Pi Pico
  • "будет вылетать из материнкой платы без дополнительного прижима" Для умных - там есть...

    Raspberry Pi Compute Module 4 (CM4)
  • Это интересно. По цене как китайские клоны ардуин, а возможности и мощность намного больше....

    Raspberry Pi Pico
  • Пиши по-русски, ты в национальном домене, а не на коме.

    GPIO для чайников (часть 1)
  • Смотри ссылку в конце статьи "Руководство по программированию Pico на C/С++"

    Raspberry Pi Pico
  • Слабовато конечно, но на замену всяким ардуинам вполне себе пойдёт

    Raspberry Pi Pico
  • Как раз очевидно, что не знающие вообще никакого языка или знающие их плохо, будут искать не...

    GPIO для чайников (часть 1)