Hi team,
There are two awr2243 cascaded, connected through the I2C bus and the deserializer, then connected through the GMSL2 line to the deserializer on the domain, as shown in the figure below:
Porting the mmWaveLink_Cascade_example from the mmWave_DFP_02_02_04_00 DFP package to the Linux OS to run the demo program, the 2243 parameters can be initialized and configured normally. However, in the query IRQ interrupt thread, the initialization process fails if you include code that reads other device registers via the I2C bus (such as reading the value of the plus-serializer device id register). If the read-in-the-serializer device id register value code is masked out in the interrupt thread, initialization is ok.
The customer is trying to disconnect the gmsl line from the domain control board and have the hardware set the i2c scl, i2c sda, host IRQ, reset, ground signals fly to the respective GPIO for the domain control. Also disconnect the 0 ohm resistor connected between master's i2c SC, i2c sda, IRQ, reset, 4 signals and the deserializer. And configure the appropriate pins in the kernel dtsi to run the demo program. Include reading other device register codes via the I2C bus in the Query awr2243 IRQ Interrupt thread.
The behavior is the same as using gmsl to connect to a domain control board, so the problem should be independent of the serializer and the gmsl line.
What is the possible cause of an iRQ state fault that causes the initialization to fail if another device on the I2C bus is accessing I2C during the initialization of configuration parameters? And how to fix it?
The demo program runs the following log:
================= mmWaveLink Example Application ==================== Device map 1 : Device reset successful Device map 1 : MSS Power Up Async event PowerUp Time = 1672462, PowerUp Status 1 = 0x40, PowerUp Status 2 = 0x0, BootTestStatus 1 = 0x0, BootTestStatus 2 = 0x0 Device map 1 : mmWave Device Power on success mmWave Device Power on success for deviceMap 1 ==========================Firmware Download========================== Device map 1 : Meta Image download started Device map 1 : Download in Progress: 0%..2%..5%..8%..11%..14%..17%..20%..23%..26%..29%..32%..35%..38%..41%..44%..47%..50%..52%..55%..58%..61%..64%..67%..70%..73%..76%..79%..82%..85%..88%..91%..94%..97%..Done! Device map 1 : Meta Image download complete ret = 0 Device map 1 : Firmware update successful ===================================================================== Device map 1 : CRC Type set for MasterSS success Device map 1 : BSS Power Up Async event Device map 1 : RF Version [ 2. 2. 0.13] Device map 1 : MSS version [ 2. 2. 1. 7] Device map 1 : mmWaveLink version [ 2. 2. 3. 2] Device map 1 : RF Patch Version [ 2. 2. 4. 0] Device map 1 : MSS Patch version [ 2. 2. 2. 0] Device map 1 : Radar/RF subsystem Power up successful ======================Basic/Static Configuration====================== Device map 1 : Calling rlSetChannelConfig With [15]Rx and [7]Tx Channel Enabled Device cascade [1] Device map 1 : Channel Configuration success mmWave Device Init1 success for deviceMap 1 Device map 1 : Calling rlSetAdcOutConfig With [1]ADC Bits and [1]ADC Format Device map 1 : AdcOut Configuration success Device map 1 : Calling rlRfSetDeviceCfg With bssAnaControl = [0] and bssDigCtrl = [0] Device map 1 : RF Device Configuration success Device map 1 : Calling rlRfSetLdoBypassConfig With Bypass [3], ioSupply [1] Device map 1 : LDO Bypass Configuration success Device map 1 : Data format Configuration success Device map 1 : Low Power Configuration success Device map 1 : APLL Synth BW Configuration success Device map 1 : Basic/Static configuration success Device map 1 : RF-Init Async event Device map 1 : RF Initialization/Calibration successful mmWave Device Init2 success for deviceMap 1 ==================Programmable Filter Configuration================== Device map 1 : Calling rlRfSetProgFiltConfig with coeffStartIdx[0] progFiltLen[0] GHz progFiltFreqShift[0] MHz/uS Device map 1 : Programmable Filter Configuration success Device map 1 : Calling rlRfSetProgFiltCoeffRam with coeffArray0[-876] coeffArray1[-272] GHz coeffArray2[1826] MHz/uS Device map 1 : Programmable Filter coefficient RAM Configuration success ======================FMCW Configuration====================== Device map 1 : Calling rlSetProfileConfig with ProfileId[0] Start Frequency[76.000252] GHz End Frequency[1425571046.005483] GHz Ramp Slope[8.304119] MHz/uS Device map 1 : MSS RF Error [0x1] Status Async event Device map 1 : BSS CPU Fault Async event
Thanks.
Best Regards,
Cherry