Other Parts Discussed in Thread: IWR6843ISK-ODS, MMWAVEICBOOST
Tool/software:
Dear TI Support Team
I am trying to interpret the raw ADC data received from the DCA1000EVM board over ethernet. The problem is that the number of samples I receive does not match the number of samples I expect (there samples missing in the order of a few dozen). I am using the following hardware:
- IWR6843ISK-ODS (PROC075 Rev. A)
- MMWAVEICBOOST (PROC074B-001)
- DCA1000EVM (PROC048 Rev. A)
The 3 devices are stacked together and powered via the 5V socket of the BOOST board. The BOOST board and the DCA1000 are connected via the 60-pin connector. The BOOST board is connected to my PC via USB (to configure the sensor) and the DCA1000 is connected to my PC via ethernet in order to stream the ADC data. Both the communication with the sensor (i.e. sending the config and starting it) as well as the communication with the DCA1000 are done using a Python script.
The sensor is running the Out-Of-Box-Demo and configured using the commands stored in the following file: 7041.config.cfg
A JSON file containing a datacard_config (similar to the one described in mmwave_sdk_user_guide.pdf) is given here:
{ "dataLoggingMode": "raw", "dataTransferMode": "LVDSCapture", "dataCaptureMode": "ethernetStream", "lvdsMode": 2, "dataFormatMode": 3, "packetDelay_us": 5, "ethernetConfig": { "DCA1000IPAddress": "192.168.33.180", "DCA1000ConfigPort": 4096, "DCA1000DataPort": 4098 }, "ethernetConfigUpdate": { "systemIPAddress": "192.168.33.30", "DCA1000IPAddress": "192.168.33.180", "DCA1000MACAddress": "12-34-56-78-90-12", "DCA1000ConfigPort": 4096, "DCA1000DataPort": 4098 } }
According to this configuration, I would expect the following number of ADC samples when recording 10 frames:
numFrames * numLoops * chirpsPerLoop * numRx * numADCsamples = 10 * 9 * 3 * 4 * 249 = 268920 (for both I and Q, with every value occupying 2 Bytes, totalling to 4 * 268920 = 1075680 Bytes of data)
The procedure generally works, however, when parsing the received data I get too few ADC samples. The data exchange over Ethernet looks as follows whene analyzed in wireshark:
As far as I understand, the first two and the last packet are config exchanges ('5' at the start for 'Start record' and System status 0x1 for 'No LVDS data' at the end). In-between we have 738 packets of data length 1466 and a final packet of data length 938. According to the DCA1000SVM Data Capture Card User's Guide (Rev. A), each packet starts with a sequence number of 4 bytes and a byte count of 6 bytes, meaning that the length of the ADC data itself is 10 bytes less than indicated above. This results in a total number of bytes of 738 * 1456 + 928 = 1075456, which is 224 bytes less than expected.
The number of received ADC values is also different depending on the number of requested frames, but never correct and I cannot really find a pattern that would explain the situation.
Due to this, I am really unsure whether to trust the data I receive. Can you help me out here?
Thank you for a response and best regards,
Selvin