PicoZed Power and Sequencing
Sequence and timing information for the PicoZed SDR is controlled by the ADM1166 Super Sequencer with Margining Control and Nonvolatile Fault Recording. These files and information were designed in accordance with the Xilinx product specification Zynq-7000 All Programmable SoC: DC and AC Switching Characteristics to prevent damage to the FPGA.
Timing Diagram
The diagram below details the timing and order of operation for every enable pin, voltage rail, gated transistor, and sequencer state on the board. This information is meant to be used in conjunction with the state diagram, Xilinx document, and sequencer code to provide a more complete understanding of this complicated power design.
Some of the voltages for this design are generated by the Avnet PicoZed SDR Carrier Card and brought to the PicoZed SDR through connectors JX1–JX4. These voltages are gated by a transistor and must be qualified by the sequencer before they can pass to other components on the board. The remainder of the voltages are generated on board by an LDO or switcher.
The sequencer qualifies a particular voltage then drives the enable pin high to turn on the next voltage for qualification and/or to drive a transistor gate and allow that particular voltage access to the downstream circuitry.
For example, in state 3 of the sequencing engine, the ADM1166 will check if the 1.0V rail is in range. If yes, the state machine will attempt to turn on 1.8V by setting 1.8V_EN high. If no, the state machine will take appropriate action. State 4 checks the 1.8V rail is in range, and tries to enable 1.35V by setting 1.35V_EN high, and so on.
Download
Timing Diagram — generated with Timing Diagram Editor
State Diagram
Programming the ADM1166 Power Sequencer
Using Linux or Hyperterminal Program
Required items
A 12V, 5A AC-DC Power Adapter
1 PicoZed SDR Carrier Board (AES-PZSDRCC-FMC-G)
1 PicoZed SDR Board (AES-PZSDR-Z7035-AD9361-G)
1 microSD card or 1 SD card
1 micro USB cable
1 Ethernet cable
Setting up the hardware
Plug the PicoZed SDR into the PicoZed SDR Carrier.
Plug the power supply into connector P20.
Plug the micro USB cable into connector P10.
Plug the Ethernet cable into your network and the PicoZed SDR Carrier.
Insert the micro SD card into the PicoZed SDR.
Command line
In the command line of your terminal program, enter the following:
root@analog:~# git clone https://github.com/analogdevicesinc/PicoZed-sdr.git
Cloning into 'PicoZed-sdr'...
remote: Counting objects: 13, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 13 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (13/13), done.
Checking connectivity... done.
root@analog:~# cd PicoZed-sdr/
root@analog:~# cd SDR2_ADM1166_updates/
root@analog:~# chmod +x ./adm1166_eeprom
root@analog:~# ./adm1166_eeprom ADM1166.hex
Starting to reprogramm the AD1166 EEPROM.
Reading f800 ... success
... existing memory is identical.
...
Successfully reprogrammed the ADM1166 EEPROM.
... reboot the board to load the new configuration.
root@analog:~#
Reboot the board and the new EEPROM configuration will be implemented.
Using the USB-SDP-CABLEZ serial I/O interface
Required items
A 5V, 2A AC-DC Power Adapter
1 Breakout Board
1 PZSDR Board
1 microSD card (with appropriate image)
1 Custom Adapter for the USB-SDP-CABLEZ
Software setup
Install the ADMxxxx Run Time Installer.
Install the Super Sequencer Configuration Tool.
Install the Graphviz setup (included in the Super Sequencer Tool install process; allows generation of state diagrams).
Hardware setup
Insert the micro SD card into the PZSDR board.
Firmly plug the PZSDR board into the Breakout board.
Using a USB mini cable, plug the USB-SDP-CABLEZ into the PC.
Connect the custom adapter to the USB-SDP-CABLEZ.
Note
If using the carrier board, place a piece of non-conductive tape on the bottom of the adapter board to avoid unintentional short circuits. If using the breakout board or the PZSDR card by itself, no tape is required.
Plug the adapter into connector P1 on the PZSDR board (underside of the PCB), lining up the 5 pins with the 5 holes of the connector.
Check that the green LED is on, confirming the boards are correctly mated.
Note
If the PZSDR board is not plugged into the breakout board, the sequencer tool cannot monitor the voltage rails (but it can still be properly programmed). To monitor the voltage rails, plug the PZSDR board into the breakout board and toggle S5 so the switch is towards the outside edge of the board.
How to program the sequencer
Find and open the Super Sequencer Software. The ADM1166 should be listed under device type.
Note
If the ADM1166 is not listed, check the connection between connector P1 of the PZSDR board and the custom adapter. A solid connection is required for configuration.
Click Continue. If prompted to load settings from last saved session, click No.
Click File → Recall Settings from File → Recall.
Navigate to the desired
.txtfile and select it. Click Recall then Ok.Wait a few seconds while the software imports the configuration. A prompt appears detailing the checksum results.
Click Ok → EEPROM OPTIONS → Copy Entire Configuration to EEPROM.
Wait a few seconds while the software uploads the configuration to the ADM1166. The sequencer is now properly configured.
Disconnect the custom adapter from the PZSDR board.
Troubleshooting
If the board has no power, plug in the USB-SDP-CABLEZ and navigate to the Readback tab. From there you can observe each of the VH, VPx, VXx input voltages as read by the ADM1166.
Software — Input Voltage Range Determination and Setting
The following provides a detailed overview of how the ADM1166 input voltage ranges are calculated and programmed to account for input and output Zynq voltage settings, ADM1166 power sequencer input voltage ranges, etc.
Zynq I/O Voltage Range
From the XC7Z035 Zynq DC and AC Switching Characteristics:
Description |
VIN_MIN |
VIN_MAX |
|---|---|---|
VMGTAVCC |
0.97 V |
1.080 V |
VMGTAVTT |
1.17 V |
1.230 V |
VCCO (HR Bank) |
1.14 V |
3.465 V |
VCCO (HP Bank) |
1.14 V |
1.890 V |
ADM1166 Super Sequencer Input Voltage Ranges
The ADM1166 has several input voltage ranges for the VP and VX pins. The VX pins only work on the Ultra-Low Range setting.
ADM1166 Range |
VP_MIN |
VP_MAX |
VX_MIN |
VX_MAX |
|---|---|---|---|---|
Mid-Range |
2.5000 V |
6.000 V |
— |
— |
Low Range |
1.250 V |
3.000 V |
— |
— |
Ultra-Low Range |
0.573 V |
1.375 V |
0.573 V |
1.375 V |
VMGTAVCC and VMGTAVTT drive directly into the VX3 and VX4 pins of the ADM1166. The I/O voltage range lines up nicely inside the input voltage range of the sequencer: 1.14V is above the minimum of the Ultra-Low Range (0.573V) and 1.23V is below the maximum (1.375V).
The problem
The VCCO I/O voltage levels don’t fit inside any one range of the sequencer. 1.14V is below the minimum voltage of the Low-Range (1.25V), and the 1.89V/3.465V is above the maximum of the Ultra-Low Range (1.375V).
Fixing the problem for HP Banks 33 and 34
A resistor divider is added between the bank voltage and the ADM1166 input. The input impedance of the IC to ground (R3) is in parallel with R2.
Its resistance varies from 20kΩ to 60kΩ depending on the input voltage.
The resistor divider was designed so the worst case output voltage fits inside the Ultra-Low Range:
When JX_VCCO_33_34 = 1.14V, the input impedance of the IC is 35kΩ.
When JX_VCCO_33_34 = 1.89V, the input impedance of the IC is 23kΩ.
Description |
Ohms |
Ohms |
|---|---|---|
R2 |
10.0k |
10.0k |
R3 |
35k |
23k |
R2 ‖ R3 |
7.777k |
6.96k |
Applying Ohm’s law:
JX_VCCO_33_34_SEQ = (1.14V × 7777) / (4020 + 7777) = 0.7515V
JX_VCCO_33_34_SEQ = (1.89V × 6969) / (4020 + 6969) = 1.198V
Both values are inside the Ultra-Low Range of the power sequencer.
Fixing the problem for HR Banks 12 and 13
The resistor divider for bank 12 (HR bank) has swapped resistor values with the bottom leg of the divider connected to a 3.3V supply. Bank 13 is also an HR bank with the same resistor divider; the calculations are identical.
Nodal analysis gives:
For the smallest possible Zynq output voltage and smallest ADM1166 input impedance: VOUT = 2.431V.
This shows the smallest possible output voltage of the Zynq does NOT sit in the Mid-Range setting (minimum is 2.5V). This accommodates most use cases.
Warning
If you are trying to use 1.2V for HR bank 12 or bank 13, you MUST CHANGE to the Low Range setting.
For the largest possible Zynq output voltage and largest ADM1166 input impedance: VOUT = 3.041V. This sits inside the Mid-Range after going through the resistor divider.
Summary
Zynq Voltage Rail |
ADM1166 Range |
Datasheet Min |
Datasheet Max |
Divider Vout Min |
Divider Vout Max |
ADM1166 Input Min |
ADM1166 Input Max |
|---|---|---|---|---|---|---|---|
VMGTAVCC |
Ultralow |
0.970 V |
1.080 V |
— |
— |
0.573 V |
1.375 V |
VMGTAVTT |
Ultralow |
1.170 V |
1.230 V |
— |
— |
0.573 V |
1.375 V |
VCCO (HR Bank) |
Mid-Range |
1.140 V |
3.465 V |
2.431 V |
3.043 V |
2.500 V |
6.000 V |
VCCO (HP Bank) |
Ultralow |
1.140 V |
1.890 V |
0.748 V |
1.192 V |
0.573 V |
1.375 V |
Resistor divider values
All resistors are 1%.
Description |
ADM1166 Range |
V1 |
R1 |
R2 |
V2 |
|---|---|---|---|---|---|
VCCO (HR Bank) |
Ultralow |
1.140 V |
10.0k |
4.02k |
3.300 V |
VCCO (HR Bank) |
Ultralow |
3.465 V |
10.0k |
4.02k |
3.300 V |
VCCO (HP Bank) |
Mid-Range |
1.140 V |
4.02k |
10.0k |
0.000 V |
VCCO (HP Bank) |
Ultralow |
1.890 V |
4.02k |
10.0k |
0.000 V |
Sequencer default configuration
When you purchase the PicoZed SDR 2x2 SOM, the sequencer comes pre-programmed. Settings can be changed using the Super Sequencer software with the USB-SDP-CABLEZ dongle. The images below show the default states for the voltage rails.
JX_MGTAVCC
JX_MGTAVTT
JX_VCCO_12
JX_VCCO_13
JX_VCCO_33_34
The ADM1166 Super Sequencer Software shows where to select the range for each input pin (VP or VX), how to set the desired UV/OV thresholds, hysteresis, fault type, and glitch delay.
Note
The thresholds are programmed using 8-bit resolution, so the program was written to be as close to the UV or OV threshold as possible without restricting the range, and in some cases adding a small amount of headroom. This is why the calculated tables differ slightly from the software values.
VH Thresholds
Warning
Be very careful when modifying VH Thresholds. These thresholds are designed based on the FMC Carrier to account for absolute worst case diode voltage drop over current and temperature.
Warning
Thinking of modifying other settings? Still be careful! This is not to say DON’T change settings — merely think twice, then think twice more, then program once. The worst thing that can happen is to have a board with no power and no way to reprogram the threshold you just changed.
Recovery procedure
If you adjusted a setting incorrectly and the sequencer won’t allow the system to boot (for example, if you typed the under voltage threshold into the over voltage threshold field), this is recoverable. If you have the USB-SDP-CABLEZ dongle, use the Super Sequencer Software to reprogram the device as described in the Using the USB-SDP-CABLEZ serial I/O interface section above. If you do not have a USB-SDP-CABLEZ dongle, order one, then follow the same procedure.
Default configuration file
The default file that comes pre-loaded when you order hardware can be found on GitHub. This file is updated on occasion to include new features, tweaks, or other improvements.