Document GPIO and SPI signals to FPGA
This commit is contained in:
parent
3fff60832f
commit
162868de45
|
@ -23,6 +23,84 @@ LED3 is on when the timetagger is active (at least one event type is enabled).
|
|||
|
||||
LED4 to LED7 are controlled by software via register `LED_STATE`.
|
||||
|
||||
|
||||
# GPIO signals
|
||||
|
||||
The GPIO controller in the Zynq PS is internally connected to the FPGA.
|
||||
A few of the internal GPIO signals are used by the firmware.
|
||||
By manipulating these GPIO signals, the Linux system can reset the FPGA firmware and control specific features.
|
||||
|
||||
| EMIO GPIO pin | Linux GPIO | Direction | Description |
|
||||
|---------------|------------|----------------|-------------|
|
||||
| 0 | 54 | out (to FPGA) | Global firmware reset |
|
||||
| 1 | 55 | in (from FPGA) | Reset status report |
|
||||
| 2 | 56 | out (to FPGA) | ADC clock duty cycle stabilizer |
|
||||
|
||||
### GPIO 0: Global firmware reset
|
||||
|
||||
GPIO 0 drives a global reset signal to the FPGA firmware.
|
||||
|
||||
- GPIO 0 is an output from the PS to the FPGA.
|
||||
- Driving this signal as `0` resets the FPGA firmware.
|
||||
- Driving this signal as `1` releases the firmware reset.
|
||||
|
||||
This signal should be used to reset the FPGA during or after any manipulations
|
||||
of the ADC clock signal such as switching the ADC clock duty cycle stabilizer.
|
||||
|
||||
After switching this signal to `1`, it may take approximately 1 ms
|
||||
for the FPGA to lock clocks and release its reset.
|
||||
|
||||
**Note:** Any attempt to access firmware registers via the AXI bus while
|
||||
the FPGA is in reset, will crash the Zynq PS.
|
||||
For that reason, the output state of GPIO 0 must remain at `1` as long
|
||||
as any software is interacting with the FPGA.
|
||||
|
||||
### GPIO 1: Reset status report
|
||||
|
||||
GPIO 1 reports the reset status of the FPGA firmware.
|
||||
|
||||
- GPIO 1 is an input to the PS from the FPGA.
|
||||
- The signal is `0` while the FPGA is in reset.
|
||||
- The signal is `1` if the FPGA reset has been released.
|
||||
|
||||
### GPIO 2: ADC clock duty cycle stabilizer
|
||||
|
||||
GPIO 2 drives the clock duty cycle stabilizer signal of the LTC2145 ADC.
|
||||
|
||||
- GPIO 2 is an output from the PS to the FPGA.
|
||||
- Driving this signal as `0` disables the clock duty cycle stabilizer.
|
||||
- Driving this signal as `1` enables the clock duty cycle stabilizer.
|
||||
|
||||
This signal is only supported on Red Pitaya boards with 2 input channels.
|
||||
|
||||
This GPIO signal is asynchronously routed through the FPGA to the ADC.
|
||||
Changing the state of this signal may shift the phase of the ADC data clock.
|
||||
It must therefore only be changed while the FPGA firmware is in reset.
|
||||
|
||||
|
||||
# SPI signals
|
||||
|
||||
The SPI controller `SPI0` in the Zynq PS is internally connected to the FPGA.
|
||||
The SPI signals from this controller are asynchronously routed through the FPGA to the LTC2145 ADCs.
|
||||
|
||||
This feature is only supported on Red Pitaya boards with 4 input channels.
|
||||
Boards with 2 input channels do not provide access to the SPI bus of the ADC.
|
||||
|
||||
The SPI signals are connected as follows:
|
||||
|
||||
| SPI signal | Direction | Connection |
|
||||
|------------|-----------|----------------------|
|
||||
| SCLK | out | SCK pin of both ADCs |
|
||||
| MOSI | out | SDI pin of both ADCs |
|
||||
| MISO | in | wired to `0` |
|
||||
| SS[0] | out | CSn pin of ADC A |
|
||||
| SS[1] | out | CSn pin of ADC B |
|
||||
| SS[2] | out | not connected |
|
||||
|
||||
Note that programming the timing registers of the ADC, may shift the phase of the ADC data clock.
|
||||
It must therefore only be done while the FPGA firmware is in reset.
|
||||
|
||||
|
||||
# Analog acquisition chain
|
||||
|
||||
The analog acquisition chain has 2 analog input signals (or 4 channels for a 4-channel device).
|
||||
|
|
Loading…
Reference in New Issue