Recently I have implemented SBUS protocol on BeagleBone Blue PRU (naminukas-brain/sbus.pru0.c at main · kikaitachi/naminukas-brain · GitHub). Now I want to move one level up and implement F.PORT protocol which is essentially UART using single wire. Currently I use E4 pin (signal B in 4th quadrature encoder connector) by reading 15th bit of R31 register. A lot of Googling convinced me that PRUs don’t allow bidirectional use of the same pin so I need to use OCP.
Maybe someone could answer the following questions:
- Is E4 capable of UART on single wire?
- How pins documented here cloud9-examples/prugpio.h at master · jadonk/cloud9-examples · GitHub map to physical pins https://inst.eecs.berkeley.edu/~ee192/sp19/images/cp1/Pinos.jpg? For example there is a physical pin labelled as GPIO3_17 but the is no such constant in prugpio.h.
- I assume I might need to switch pin from input to output mode during read/write phases. How can I do that in PRU?