Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| network_protocol_programming_lab:fast_scan [2020/06/05 10:02] – rathke | network_protocol_programming_lab:fast_scan [2021/04/19 12:44] (current) – [Requirements] rathke | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Exercise: Scanning faster ====== | ====== Exercise: Scanning faster ====== | ||
| - | In this lesson, we are finishing the receiver. The maximum number of channels that could be scanned is limited. Scanning could only be successful, if the actions that are required to be done does not exceed the bit rate of the preamble. E.g Times, that hit to be taken into account are: | + | In this lesson, we are finishing the receiver. The maximum number of channels that could be scanned is limited. Scanning could only be successful, if the actions that are required to be done does not exceed the length |
| * the time needed to switch from idle state to receive state and vice versa (e.g. $50\mu s$), | * the time needed to switch from idle state to receive state and vice versa (e.g. $50\mu s$), | ||
| * the time to measure the RSSI (e.g. $990\mu s$), | * the time to measure the RSSI (e.g. $990\mu s$), | ||
| - | * the time to read or write the registers of CC1200 (e.g. SPI overhead | + | * the time to read or write the registers of CC1200 (SPI overhead |
| - | * the time to perform a strobe command (e.g. SPI overhead | + | * the time to perform a strobe command (SPI overhead |
| * and for sure the processing time of the Beaglebone Black. | * and for sure the processing time of the Beaglebone Black. | ||
| Line 17: | Line 17: | ||
| The answer could be to look deeper at the scanning process: Changing the frequency need every time a calibration of the Voltage Controlled Oscillator (VCO). Calibration means, that the VCO must be re-configured. Calibration is done normally every time leaving the idle state and switching to receiving or transmitting state. The calibration overhead is included in the measured SPI overhead. | The answer could be to look deeper at the scanning process: Changing the frequency need every time a calibration of the Voltage Controlled Oscillator (VCO). Calibration means, that the VCO must be re-configured. Calibration is done normally every time leaving the idle state and switching to receiving or transmitting state. The calibration overhead is included in the measured SPI overhead. | ||
| - | To fasten calibration, | + | To fasten calibration, |
| This means, whenever you like to jump to a frequency, just program the FREQ registers and the three mentioned register in idle state and jump to receive or transmit state without calibration. This only works, if automatic calibration has been disabled in the SETTLING_CFG register. | This means, whenever you like to jump to a frequency, just program the FREQ registers and the three mentioned register in idle state and jump to receive or transmit state without calibration. This only works, if automatic calibration has been disabled in the SETTLING_CFG register. | ||
| - | Doing this will reduce the SPI overhead from $140\mu s$ to approximately $60\mu s$ and the over-all processing time to $1.1 ms$ | + | Doing this will reduce the SPI overhead from $140\mu s$ to approximately $60\mu s$ and the over-all processing time to $1.1 ms$. |
| + | Remark: The reason of using auto calibration is, that the calibration process is dependent from temperature changes. Without auto-calibration it could happen, that sender and receiver get out of synchronization. Therefor pre-calibration is needed from time to time. | ||
| + | ===== Requirements | ||
| + | This task requires | ||
| + | |||
| + | * a ready BeagleBone Black equipped with the CC1200. | ||
| + | * 4C attached to a second BeagleBone Black equipped with the CC1200. | ||
| + | * 4C sending packets with a symbol rate of 1.2 kBaude and a preamble count of 6 Bytes. | ||
| + | ===== Tasks ===== | ||
| + | |||
| + | * the programming is done by extending the source files from the previous lesson [[network_protocol_programming_lab: | ||
| + | * Extend your program by pre-calibration. | ||
| + | * For testing, start your program and use the same test scenarios used by [[network_protocol_programming_lab: | ||
| + | * To open the possibility to test, that pre-calibration is really faster than auto-calibration, | ||
| + | |||
| + | ===== Hints ===== | ||
| + | |||
| + | * First disable auto-calibration. If using the tree frequencies recommended, | ||
| + | * After pre calibration and loading the calibration registers, packet reception will be possible. | ||
