англичанка гадит uart Raspberry Pi 3

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

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

Вчера подключил свой 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/

Тэги:

 

Автор:

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

  • Dancespeed
    07.06.2016 в 10:28 ответ

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

    • raspiman
      10.06.2016 в 13:17 ответ

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

  • Dancespeed
    07.06.2016 в 10:30 ответ

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

  • Shatki
    16.08.2016 в 02:37 ответ

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

  • Olekos
    20.04.2017 в 09:14 ответ

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

  • Rasp10
    15.06.2017 в 15:06 ответ

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

Ваш комментарий

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

© Сообщество пользователей RaspberryPi 2021