Cannot use Arduino A5 as digital output on PYNQ-Z2. pin stuck at 0V regardless of driven value

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