Según este datasheet, sí. En la página 98 aparece un esquema de uno de los pines de GPIO y se puede ver cómo tiene un driver que lo puede dejar en alta impedancia, y una resistencia de pullup interna con un mosfet para desactivarla.yombo escribió:Yo no estaría muy seguro. Los Arduino (Atmega) no tienen salidas en colector abierto. Recuerdo haber medido 5V en pines configurados como entrada.
En la sección 18.2.1 puede leerse esto:
Por lo que entiendo que para que un pin se comporte como una salida en colector abierto lo que se hace es escribir un 0 en él, y luego para conmutar entre el estado "0" y el estado "Z" lo que se hace es configurarlo como salida o como entrada, respectivamente. En nuestro caso no interesa dejar activa la resitencia de pullup porque eso metería 5V a la FPGA. El pullup (a 3.3V) ya lo pone el ZX-UNO.18.2.1.
Configuring the Pin
Each port pin consists of three register bits: DDxn, PORTxn, and PINxn. As shown in the Register Description, the DDxn bits are accessed at the DDRx I/O address, the PORTxn bits at the PORTx I/O address, and the PINxn bits at the PINx I/O address.
The DDxn bit in the DDRx Register selects the direction of this pin. If DDxn is written to '1', Pxn is configured as an output pin. If DDxn is written to '0', Pxn is configured as an input pin.
If PORTxn is written to '1' when the pin is configured as an input pin, the pull-up resistor is activated. To switch the pull-up resistor off, PORTxn has to be written to '0' or the pin has to be configured as an output pin. The port pins are tri-stated when reset condition becomes active, even if no clocks are running.
If PORTxn is written to '1' when the pin is configured as an output pin, the port pin is driven high. If PORTxn is written logic zero when the pin is configured as an output pin, the port pin is driven low.