IO¶

Used¶
| name | number | usage |
|---|---|---|
| PA2 | 2 | AMP PWR_EN |
| PA3 | 3 | AMP_MUTE |
| PC0 | 64 | BLUE LED |
| PC1 | 65 | GREEN LED |
| PC2 | 66 | YELLOW LED |
| PC3 | 67 | RED LED |
| PG11 | 203 | TOUCH KEY |
To convert IO name to IO number:
# n(PC3) = ('C' - 'A') * 32 + 3 = 2 * 32 + 3 = 67 name = 'PC3' number = (ord(name[1]) - ord('A')) * 32 + int(name[2])
There are several ways to control IO.
Via IO registers (direct memory access)¶
sudo apt install -y sunxi-tools sudo sunxi-pio -m PC1=1 # turn on green LED
Accessing IO registers has the high priority.
Via IO service¶
By default, there is a IO service to detect the touch key and to control the LEDs and amplifier. The IO service provides MQTT message bus to access.
mosquitto_pub -t /voicen/leds/value -m 0xf mosquitto_pub -t /voicen/leds/value -m 0x0
Via GPIO sysfs interface¶
sudo su cd /sys/class/gpio echo 65 > export # export the IO to userspace echo out > gpio65/direction # set IO as output echo 1 > gpio65/value echo 0 > gpio65/value echo 65 > unexport # Reverses the effect of exporting to userspace
Via gpiod¶
sudo apt install -y gpiod sudo gpioset 0 65=0 # turn on green LED sudo gpiomon 0 203 # detect touch event