This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello:
We designed a customized board which use external MCU to control AWR1243P through SPI.
I modified the mmwavelink_example in mmwave_DFP to run it on our MCU, now it can download the firmware, however,
the app stuck in the "while" loop after the MMWL_fileDownload function:
printf("\nWaiting for firmware update response from mmWave device \n");
while (mmwl_bInitComp == 0)
{
osiSleep(1); /*Sleep 1 msec*/
timeOutCnt++;
if (timeOutCnt > MMWL_API_INIT_TIMEOUT)
{
retVal = RL_RET_CODE_RESP_TIMEOUT;
break;
}
}
It seem that mmwl_bInitComp never become 1 so the app times out.
I checked that the mmwl_bInitComp can only be set to 1 in two sync events:
case RL_DEV_AE_MSSPOWERUPDONE_SB:
{
mmwl_bInitComp = 1U;
}
break;
case RL_DEV_AE_MSS_BOOTERRSTATUS_SB:
{
mmwl_bInitComp = 1U;
}
break;
, which is the mss power up and boot event.
I wonder if firmware download finish will trigger any of the two event?
Best
Tim
Hello, Cesar:
Thank you for your reponse,
I did more testing today and check the SPI data after the power on reset:
As shown in the picture above, the SUBID 0x5000 indicate that this a AWR AE DEV MSSPOWERUPDONE SB, however,
the data is 0x0000000A, I checked the DFP doc and found that the non-zeros bit map
indicates some errors, am I correct?
Looking forward to your response,
Best
Tim
Hello Tim,
So your host application is getting the MWW_POWER_UP (0x5000) async-event. If you map the byte sequence with the ICD (sub block 0x5000) then 0x0018 is SBLKLEN, next 4 bytes [0x000A 0x7D6D] maps to MSS Power up time and further 8 bytes for MSS_POWERUP_STATUS which is all zero (passed status).
Thus, there is no error in the received async-event message. You can proceed further in the host application to configure the AWR1243 device.
Regards,
Jitendra
Hello, Jitendra:
Thank you for your response,
I tried to config AWR1243 again today, however, I still encounter the same problem as I
stated in the main poster: I can not receive the Asynchronous Event (RL_DEV_AE_MSSPOWERUPDONE_SB)
after it shows that "Meta Image download complete ret = 0".
I also tried to bypass the firmwaredownload function by set
#define FIRMWARE_DOWNLOAD 0
However, it will stop after MMWL_rfEnable function because no Asynchronous Event (RL_DEV_AE_RFPOWERUPDONE_SB)\
is got:
Any suggestion?
Best
Tim
Hello Tim,
You must download the firmware else RadarSS won't powerup successfully and you won't get DEV_AE_RFPOWERUP async-event.
1. Could you confirm if the Host processor is little or big endian? Based on this type data format while it is packing the SPI message will differ.
2. What is ackTime and crcType value to clientCtx structure before calling to rlDevicePowerOn function?
3. Is it possible to probe on HostIRQ line of AWR1243P device during the last file chunk download? I need to need if AWR device has raised the HostIRQ line after firmware download is done which Host may have missed.
Regards,
Jitendra
Hello, Jitendra:
Thank you for you help,
1. The big/little endian in my host processor should be ok otherwise I cannot receive ACK from AWR1243.
2. I set ackTime=1000 and crcType=32 bits
3. I think this is the key problem as shown in the following screenshot, after the last chunk sent from AWR1243, the AWR1243 raise the interrupt line after only about 7.18us, however, my host programm was still processing the SPI message so the interrupt is missed ( green line is the SPI clock and yellow line is the interrupt ).
Is there any configuration I can do with the AWR1243 so that the time slot between the end of the spi and rising of the interrup can be increase. Otherwise I need to change a lot in my host processor part.
best
Tim
Hi Tim,
HostIRQ must be stitched with GPIO hardware interrupt handler. And that will get interrupted independent of CPU involvement (even if blocked in some task).
There is no way we can control the response time from AWR1243 device. It will raise the HostIRQ as soon as it has processed the received SPI command message and ready with the response. And this time varies from CMD to CMD.
I don't fully get the reason but Could you explain why host processor is not able to get interrupted with HostIRQ in this scenario?
Regards,
Jitendra
Hello, Jitendra:
I rewrote my interrupt handler so that it can response to such short intervel interrupt, now it work fine.
Thank you for your help.
Best
Tim