Voice FPGA Pinout


I am trying to use GPIO pins on FPGA which are routed to RPI header. I have looked at the data sheet, however, the pins on the datasheet seems to be incorrect. Specifically, I tried FPGA P8, T8 and M7 but the connection to the RPI header does not work. Any advise here would be appreciated.


Hi @mehrdadh,

FPGA pins P8, T8, and M7 are routed in the PCB to Raspberry Pi GPIO pins 16, 20, and 21 but those Raspberry Pi pins are not exposed/used anywhere unless you specifically do so in the FPGA code.

For example, in this FPGA code modification example, Raspberry Pi GPIO16 is routed through FPGA P8 pin to MATRIX Voice expansion GPIO 15 through FPGA pin R2. This allows direct access to RPi GPIO16 even though the pin itself is used up by the MATRIX Voice.

Are you trying to do something like the above example?

Let me know if that helps you in any way and if not, it would be great if you could expand a bit on what you are trying to do so we can help more effectively!



Hi @Samreen

Thanks for quick response. I was trying to use the M7 pin directly in FPGA. I figured out the issue.
It seems that after power cycling the raspberry pi, it flashes the FPGA again. I believe that was the issue.


1 Like

Hi @mehrdadh,

For the MATRIX Voice, you can prevent re-flashing of the FPGA on boot by updating the voice.version file and putting matrixio-creator-init package updates on hold so that it doesn’t overwrite the `voice.version’ file you created.

Scroll down on this page to see how to backup the current voice.version file and replace it with a new one of your own.

This helps as the matrixio-creator-init package checks whether the the FPGA bitstream in the SPI flash is the same as the one in ‘voice.version’ and if it is not, it re-flashes the FPGA which is likely what happened in your case before.