This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
ee:hydrophones:start [2018/01/28 17:06] Ryan Summers |
ee:hydrophones:start [2018/03/20 04:54] Ryan Summers [Communication] |
||
---|---|---|---|
Line 79: | Line 79: | ||
//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.// | ||
+ | |||
+ | ==== Cross-Compile FFTW3 ==== | ||
+ | In order to perform frequency analysis, the HydroZynq utilizes the FFTW3 libraries. In order to generate the libfftw3.a library and the associated header files, it is necessary to compile FFTW from scratch. This can be completed by downloading the FFTW tarball from [[http://www.fftw.org/download.html|here]]. Next, untar the tarball, create an output directory for the library and headers, and configure FFTW before installation with the following options: | ||
+ | mkdir build | ||
+ | ./configure --host=arm-none-eabi "CFLAGS=--specs=nosys.specs -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard" --enable-armv7a-cntvct --prefix=`pwd`/build | ||
+ | make -j4 | ||
+ | make install | ||
+ | |||
+ | The library and appropriate headers will now be in the ''%%build/%%'' directory. | ||
==== Programming & Debugging ==== | ==== Programming & Debugging ==== | ||
Line 107: | Line 116: | ||
=== Port Descriptions === | === Port Descriptions === | ||
^ Port Number ^ Destination ^ Description ^ | ^ Port Number ^ Destination ^ Description ^ | ||
- | | 3000 | HydroZynq | Command port | | + | | 3000 | HydroZynq | Command port | |
- | | 3001 | Cobalt | Sample data stream port | | + | | 3001 | Cobalt | Sample data stream port | |
- | | 3002 | Cobalt | Time of Arrival Delay result port | | + | | 3002 | Cobalt | Time of Arrival Delay result port | |
- | | 3003 | Cobalt | Cross-correlation stream port | | + | | 3003 | Cobalt | Cross-correlation stream port | |
- | | 3004 | Cobalt | Debug/STDOUT port | | + | | 3004 | Cobalt | Debug/STDOUT port | |
+ | | 3005 | Cobalt | Requests to silence the control system. | | ||
Note that the HydroZynq does not run ROS natively, so python scripts running on cobalt are necessary for interfacing the HydroZynq with ROS. As of now, these scripts are still under development. | Note that the HydroZynq does not run ROS natively, so python scripts running on cobalt are necessary for interfacing the HydroZynq with ROS. As of now, these scripts are still under development. | ||
Line 138: | Line 148: | ||
| 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. | | ||
+ | | 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//| | ||
+ | | filter | unsigned int | If data is 0, IIR filtering is disabled. Otherwise, filter is enabled. //Default: disabled.// | | ||
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. |