PYNQ version: v3.0.1
Board: PYNQ-Z2 (xc7z020clg400-1)
Vivado: 2022.2
Problem
I want to use Arduino header pin A5 as a digital output from the PL. The digital path to A5 is U10 (IO_L12N_T1_MRCC_13, Bank 13), constrained as LVCMOS33 in my XDC. The pin measures −0.004 V regardless of whether I drive it '0' or '1'; it never responds to the PL at all. Reproduced on two separate PYNQ-Z2 boards.
Every other pin in my design works correctly.(including A0,A1,A2,A3 and A4)
What I’ve tried
Moved my signal to a different pin… works fine. The issue is specific to U10.
Question
Is U10 simply unusable as a digital output on the PYNQ-Z2? The other FPGA pins connected to A5 are G19 (IO_L18P_T2_AD13P_35, VAUX13P) and G20 (IO_L18N_T2_AD13N_35, VAUX13N). both XADC auxiliary inputs. Is there a way to use any of these three pins as a normal digital output, and if so, what configuration is needed?
Hi @Bahey-shalash,
Welcome to the PYNQ community.
I checked the schematics and what you’re doing is correct. It’s concerning that the issue is reproducible in a different board.
Are you able to use other pin?
Mario
A0,A1,A2,A3 and A4 work fine for me
set_property -dict { PACKAGE_PIN U10 IOSTANDARD LVCMOS33 } [get_ports { LCD_BxDO[7] }] ;# A5 (LCD_B7)
## ── Sync / timing ────────────────────────────────────────────────────────────
set_property -dict { PACKAGE_PIN V11 IOSTANDARD LVCMOS33 } [get_ports { HSYNCxSO }] ;# A3 (LCD_HSYNC)
set_property -dict { PACKAGE_PIN W11 IOSTANDARD LVCMOS33 } [get_ports { VSYNCxSO }] ;# A2 (LCD_VSYNC)
set_property -dict { PACKAGE_PIN Y12 IOSTANDARD LVCMOS33 } [get_ports { DExSO }] ;# A1 (RGB_DE)
## ── SPI init ─────────────────────────────────────────────────────────────────
set_property -dict { PACKAGE_PIN Y11 IOSTANDARD LVCMOS33 } [get_ports { DCXxSO }] ;# A0 (DCX)
set_property -dict { PACKAGE_PIN T5 IOSTANDARD LVCMOS33 } [get_ports { RESETxBO }] ;# A4 (RESETX)
I tried just putting a constant 1 on that pin or a 0 and the value doesnt really change… tried on 2 different PYNQ z2 boards too