Автор Тема: Как запустить UART1, UART2, UART3 ?  (Прочитано 982 раз)

Оффлайн sav13

Как запустить UART1, UART2, UART3 ?
« : Сентябрь 14, 2016, 02:16:15 pm »
Подскажите, как настроить UART1, UART2, UART3, которые выведены на гребенку GPIO в Lubumtu или любом другом LINUX?
« Последнее редактирование: Сентябрь 16, 2016, 05:03:28 pm от sav13 »

Оффлайн igzero

Re: Как запустить UART1, UART2, UART3 ?
« Ответ #1 : Сентябрь 14, 2016, 05:04:45 pm »
Подскажите, как настроить UART1, UART2, UART3, которые выведены на гребенку GPIO в Lubumtu или любом другом LINUX?
Смотри это

Изучай это
http://linux-sunxi.org/Fex_Guide
Согласно той ОС что ты пользуешь, ложишь в нужное место свой SCRIPT.BIN подключаешь на порты что надо, делаешь с этим что хочешь

Оффлайн sav13

Re: Как запустить UART1, UART2, UART3 ?
« Ответ #2 : Сентябрь 14, 2016, 05:12:30 pm »
После запуска модуля gpio_sunxi
получил:

[    0.000000] Kernel command line: earlyprintk=ttyS0,115200 loglevel=8 initcall_debug=0 console=ttyS0,115200 console=tty0 init=/init
[    0.000000] console [tty0] enabled, bootconsole disabled
[    0.628567] uart0: ttyS0 at MMIO 0x1c28000 (irq = 32) is a SUNXI
[    0.724758] console [ttyS0] enabled
[    0.850315] uart2: ttyS2 at MMIO 0x1c28800 (irq = 34) is a SUNXI
[    0.850558] uart3: ttyS3 at MMIO 0x1c28c00 (irq = 35) is a SUNXI

Пробовал к гребенке подключаться согласно этой картинки, но все порты кроме ttyS0 который отдельно разведен молчат

Оффлайн igzero

Re: Как запустить UART1, UART2, UART3 ?
« Ответ #3 : Сентябрь 14, 2016, 05:32:57 pm »
После запуска модуля gpio_sunxi
получил:

[    0.000000] Kernel command line: earlyprintk=ttyS0,115200 loglevel=8 initcall_debug=0 console=ttyS0,115200 console=tty0 init=/init
[    0.000000] console [tty0] enabled, bootconsole disabled
[    0.628567] uart0: ttyS0 at MMIO 0x1c28000 (irq = 32) is a SUNXI
[    0.724758] console [ttyS0] enabled
[    0.850315] uart2: ttyS2 at MMIO 0x1c28800 (irq = 34) is a SUNXI
[    0.850558] uart3: ttyS3 at MMIO 0x1c28c00 (irq = 35) is a SUNXI

Пробовал к гребенке подключаться согласно этой картинки, но все порты кроме ttyS0 который отдельно разведен молчат
Порты-то в script.fex включил? Я же не зря тебе ссылку дал

Оффлайн igzero

Re: Как запустить UART1, UART2, UART3 ?
« Ответ #4 : Сентябрь 14, 2016, 05:35:25 pm »
После запуска модуля gpio_sunxi
получил:

[    0.000000] Kernel command line: earlyprintk=ttyS0,115200 loglevel=8 initcall_debug=0 console=ttyS0,115200 console=tty0 init=/init
[    0.000000] console [tty0] enabled, bootconsole disabled
[    0.628567] uart0: ttyS0 at MMIO 0x1c28000 (irq = 32) is a SUNXI
[    0.724758] console [ttyS0] enabled
[    0.850315] uart2: ttyS2 at MMIO 0x1c28800 (irq = 34) is a SUNXI
[    0.850558] uart3: ttyS3 at MMIO 0x1c28c00 (irq = 35) is a SUNXI

Пробовал к гребенке подключаться согласно этой картинки, но все порты кроме ttyS0 который отдельно разведен молчат
Порты-то в script.fex включил? Я же не зря тебе ссылку дал
Порты-то в script.fex (bin) включил / настроил?  Ну а в линухе после этого иницилизируй их при помоши stty ("man stty" в помощь)

Оффлайн sav13

Re: Как запустить UART1, UART2, UART3 ?
« Ответ #5 : Сентябрь 16, 2016, 08:23:18 am »
script.bin настроил
ttyS2 нормально заработал. Без проблем agetty на нем запустил
А вот ttyS1 почему то не хочет, хотя dmsg его показывает

[    0.628419] uart0: ttyS0 at MMIO 0x1c28000 (irq = 32) is a SUNXI
[    0.724659] console [ttyS0] enabled
[    1.315929] uart1: ttyS1 at MMIO 0x1c28400 (irq = 33) is a SUNXI
[    1.513692] uart2: ttyS2 at MMIO 0x1c28800 (irq = 34) is a SUNXI
[    1.695156] uart3: ttyS3 at MMIO 0x1c28c00 (irq = 35) is a SUNXI

И в script.bin нормально прописано
[uart0]
uart_used = 1
uart_port = 0
uart_type = 2
uart_tx = port:PA04<2><1><default><default>
uart_rx = port:PA05<2><1><default><default>

[uart1]
uart_used = 1
uart_port = 1
uart_type = 2
uart_tx = port:PG06<2><1><default><default>
uart_rx = port:PG07<2><1><default><default>

[uart2]
uart_used = 1
uart_port = 2
uart_type = 2
uart_tx = port:PA00<2><1><default><default>
uart_rx = port:PA01<2><1><default><default>

И порты PG6 и PG7 работают нормально
Команда меняет состояние пинов
echo 1 > /sys/class/gpio_sw/PG6/data
echo 1 > /sys/class/gpio_sw/PG7/data

Причем изначально UART1 в script.bin был отключен и ttyS1 при загрузке небыло. Только после моих манипуляций он появился. Может на этих портах какое то другое устройство висит?
В принципе трех работающих UART мне для моих задач вполне достаточно.

P.S. UART3 та же фигня, что и UART1 - GPIO работают, а устройство ttyS3 нивкакую
« Последнее редактирование: Сентябрь 16, 2016, 08:52:59 am от sav13 »

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 406
  • Лайков: 106
  • Карма: +14/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Как запустить UART1, UART2, UART3 ?
« Ответ #6 : Сентябрь 16, 2016, 01:31:00 pm »
script.bin настроил
...
И порты PG6 и PG7 работают нормально
Команда меняет состояние пинов
echo 1 > /sys/class/gpio_sw/PG6/data
echo 1 > /sys/class/gpio_sw/PG7/data
В этом и косяк, при загрузке сначала инициализируется uart , а потом модуль gpio который переключает выводы на себя.
Отключай в script.bin PG6 и PG7 из списка gpio и будет тебе счастье, то же про uart3.
Следите чтоб в script.bin одни и теже выводы не были одновременно включены для разных устройств. иначе будут коллизии.

Оффлайн sav13

Re: Как запустить UART1, UART2, UART3 ?
« Ответ #7 : Сентябрь 16, 2016, 05:02:57 pm »

В этом и косяк, при загрузке сначала инициализируется uart , а потом модуль gpio который переключает выводы на себя.
Отключай в script.bin PG6 и PG7 из списка gpio и будет тебе счастье, то же про uart3.
Следите чтоб в script.bin одни и теже выводы не были одновременно включены для разных устройств. иначе будут коллизии.
Спасибо. Все заработало.
Даже не понятно, чего народ апельсинки ругает