ola
ola copied to clipboard
UART native Input
I was wondering if there was a way to configure OLA to use the uART rx pin as an input.
Running on RPi 4
See #1183.
The BCM2711 on the Pi4 has 5 PL011 interfaces, as well as 1 mini UART. From what I saw, the PL011 supports break detection while the mini UART does not. I am currently running 5 UART output universes on an overclocked Pi4 just fine because I have the extra UART ports. If break detection is still an issue is there a way to detect it with some sort of bit banging? From the looks of it (and I may be very wrong) the PL011 can generate an IRQ when it detects break. As long as the clock is independently set to the correct value, it seems as if it is possible.
I don't know if it's worth moving all this discussion to the original issue?
I am currently running 5 UART output universes on an overclocked Pi4 just fine because I have the extra UART ports.
That's interesting to hear @ryanriccio1, is that anything clever or just running multiple ports of our existing plugin? Does it just work out of the box or does it need any special config?
If break detection is still an issue is there a way to detect it with some sort of bit banging? From the looks of it (and I may be very wrong) the PL011 can generate an IRQ when it detects break. As long as the clock is independently set to the correct value, it seems as if it is possible.
That would be neat, and sounds potentially promising.
Is that anything clever or just running multiple ports of our existing plugin? Does it just work out of the box or does it need any special config?
I did have to overclock it a bit to make it more stable (seems like an oxymoron) but once I enabled the other UART pins in the /boot/config.txt, and disabled the mini UART and BT, they just showed up as being mounted at /dev/ttyAMA0-4. My ola-uartdmx.conf looks like this:
/dev/ttyAMA0-break = 100
/dev/ttyAMA0-malf = 24000
device = /dev/ttyAMA0
/dev/ttyAMA1-break = 100
/dev/ttyAMA1-malf = 24000
device = /dev/ttyAMA1
/dev/ttyAMA2-break = 100
/dev/ttyAMA2-malf = 24000
device = /dev/ttyAMA2
/dev/ttyAMA3-break = 100
/dev/ttyAMA3-malf = 24000
device = /dev/ttyAMA3
/dev/ttyAMA4-break = 100
/dev/ttyAMA4-malf = 24000
device = /dev/ttyAMA4
enabled = true
Everything so far seems to work fine with no special config. This gives me UART TX out of GPIO 0, 4, 8, 12, and 14. I was hoping somehow I could receive on the corresponding RX pins.
I'm attaching a link that may be helpful in figuring some of this out. Chapter 11 is the UART section and it has a list of the registers, flags, and some base address things. Chapter 6 (specifically 6.2) has a lot more details on how interrupts are handled and what the interrupt sources are and stuff like that. https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711/rpi_DATA_2711_1p0.pdf
Started same task as TTY Line discipline. Se issue #1743
Started same task as TTY Line discipline. Se issue #1743
Hello everybody. Check out beta version of the module. https://github.com/rbalykov/cdmx/