This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
ee:hydrophones:start [2018/04/03 09:50] Ryan Summers |
ee:hydrophones:start [2020/03/06 00:58] Chris Nathman |
||
---|---|---|---|
Line 64: | Line 64: | ||
==== Code ==== | ==== Code ==== | ||
- | All software and firmware is available in [[https://github.com/PalouseRobosub/hydro-zynq|the GitHub repository]]. There are two primary directories, ''%%hardware/%%'' and ''%%software/%%''. The ''%%hardware/%%'' folder contains all the Verilog and TCL files for interacting with Vivado. TCL scripts have been generated to rebuild the block design in [[https://www.xilinx.com/products/design-tools/vivado.html|Vivado]], and a ''%%README.txt%%'' file in ''%%proj/%%'' describes how to use them. Additionally, the IO constraints file is provided for the current hardware. | + | All software and firmware is available in [[https://gitlab.com/PalouseRobosub/Electrical/hydro-zynq|the Gitlab repository]]. There are two primary directories, ''%%hardware/%%'' and ''%%software/%%''. The ''%%hardware/%%'' folder contains all the Verilog and TCL files for interacting with Vivado. TCL scripts have been generated to rebuild the block design in [[https://www.xilinx.com/products/design-tools/vivado.html|Vivado]], and a ''%%README.txt%%'' file in ''%%proj/%%'' describes how to use them. Additionally, the IO constraints file is provided for the current hardware. |
The software folder contains all C source code used in programming the HydroZynq. An ELF file can be created by using the ''%%mk%%'' script supplied with the source file name. | The software folder contains all C source code used in programming the HydroZynq. An ELF file can be created by using the ''%%mk%%'' script supplied with the source file name. | ||
Line 71: | Line 71: | ||
./mk app/main_bin.c | ./mk app/main_bin.c | ||
- | All files located in ''%%src/%%'' will be compiled against the application specified to generate the binary. Finally, a ''%%BOOT.bin%%'' file (binary image that is used for booting off the SD cared) can be created through the utilization of the ''%%doit%%'' script. | + | All files located in ''%%src/%%'' will be compiled against the application specified to generate the binary. |
+ | |||
+ | ==== Programming & Debugging ==== | ||
+ | In order to generate a boot-able ''%%BOOT.bin%%'' file (binary image that is used for booting off the SD card), utilize the ''%%doit%%'' script in the ''%%software/%%'' directory. | ||
Example: | Example: | ||
Line 79: | Line 82: | ||
//The current firmware utilizes **software/bit/adc_dma_revb.bit** as the bitstream file.// | //The current firmware utilizes **software/bit/adc_dma_revb.bit** as the bitstream file.// | ||
- | + | In order to efficiently debug through GDB and program on the fly, the [[https://store.digilentinc.com/jtag-hs3-programming-cable/|Digilent HS3]] can be used as a JTAG access point for GDB debug interfaces. To interact with the HydroZynq through JTAG, use the ''%%xmd%%'' command (provided by the Xilinx Vivado tool suite). | |
- | ==== Programming & Debugging ==== | + | |
- | Programming and debugging can be completed through creation of a new ''%%BOOT.bin%%'' on the SD card, but this is often inefficient. The [[https://store.digilentinc.com/jtag-hs3-programming-cable/|Digilent HS3]] can be used as a JTAG access point for GDB debug interfaces. To interact with the HydroZynq through JTAG, use the ''%%xmd%%'' command (provided by the Xilinx Vivado tool suite). | + | |
After executing xmd from the command line, you will enter a shell-like environment. To connect to the ARM core for programming, enter: | After executing xmd from the command line, you will enter a shell-like environment. To connect to the ARM core for programming, enter: | ||
Line 133: | Line 134: | ||
reset:1 | reset:1 | ||
+ | |||
+ | frequency 35000 | ||
| | ||
The supported keys are as follows: | The supported keys are as follows: | ||
Line 139: | Line 142: | ||
| threshold | unsigned int | Sets the HydroZynq ping ADC threshold value. | | | threshold | unsigned int | Sets the HydroZynq ping ADC threshold value. | | ||
| debug | unsigned int | If data is 0, HydroZynq debug mode is disabled. Otherwise, debug mode is enabled. | | | debug | unsigned int | If data is 0, HydroZynq debug mode is disabled. Otherwise, debug mode is enabled. | | ||
- | | frequency | unsigned int | Specifies target pinger frequency. May be 25000, 30000, 35000, or 40000. Units are Hz. | | + | | frequency | unsigned int | Specifies target pinger frequency. May be 25000, 30000, 35000, or 40000. Units are Hz. **This must be set or the zynq will not look for pings.** | |
| post_ping_duration_us | unsigned int | The number of microseconds after ping threshold to truncate the signal to. //Default: 50 us//| | | post_ping_duration_us | unsigned int | The number of microseconds after ping threshold to truncate the signal to. //Default: 50 us//| | ||
| pre_ping_duration_us | unsigned int | The number of microseconds before ping threshold to truncate the signal to. //Default: 100 us//| | | pre_ping_duration_us | unsigned int | The number of microseconds before ping threshold to truncate the signal to. //Default: 100 us//| | ||
| filter | unsigned int | If data is 0, IIR filtering is disabled. Otherwise, filter is enabled. //Default: disabled.// | | | filter | unsigned int | If data is 0, IIR filtering is disabled. Otherwise, filter is enabled. //Default: disabled.// | | ||
+ | | print | N/A | Prints out all current zynq parameter values. | | ||
In debug mode, the HydroZynq records for 2.1 seconds, dumps all 2.1 seconds of data to the data stream port, and repeats. No correlations are performed and no result is sent. | In debug mode, the HydroZynq records for 2.1 seconds, dumps all 2.1 seconds of data to the data stream port, and repeats. No correlations are performed and no result is sent. | ||
Line 153: | Line 157: | ||
| Analog-to-Digital Converter | LTC2171-14 | [[http://cds.linear.com/docs/en/datasheet/21721014fb.pdf|Datasheet]]| | | Analog-to-Digital Converter | LTC2171-14 | [[http://cds.linear.com/docs/en/datasheet/21721014fb.pdf|Datasheet]]| | ||
+ | === Hydrophone dimensions: === | ||
+ | {{:ee:hydrophones:as-1_hydrophone_dimensions.jpg}} |