Access HSE service by MU_B channel_0

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Access HSE service by MU_B channel_0

2,879 Views
yin_qiu
Contributor III

hello NXP experts:

I meet a problem while taking use of HSE by calling MU

I have already installed HSE by the project named "WT_HSE_Installer-main "provided by FAE and I have already checked the procedure of the HSE installation of this project "WT_HSE_Installer-main ". 

now I integrate the hse interface in my uboot project to get the access method for HSE.

generally ,I call the function "HSE_GetVersion(&gHseFwVersion)" to check the basic function of HSE but it stuck after writing IP_MU_0__MUB->TR[Channel] and IP_MU_0__MUB->RSR can not be changed to 1, I use polling mode to get the response of HSE.

FAE told me that MU will be ready to work once the MCU is powered and no more initialization .

could you pls help me to do the analysis?

thanks a lot

0 Kudos
Reply
7 Replies

2,876 Views
yin_qiu
Contributor III
and any method could help me to verify whether the HSE has be installed successfully or not? I take use of S 32K312 and the HSE is swap version and I think the address in 0x4D4000 and 0x5D4000should be the start address of HSE, but I get nothing in memory watch by PE and the AE told me the contents of this address is masked to user.
0 Kudos
Reply

2,846 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @yin_qiu 

Simplest way to check if HSE is installed and correctly initialized:

First, check HSE GPR register at 0x4039_C028. Bit ‘0’ says if HSE firmware is installed or not.

Then check HSE_STATUS_INIT_OK flag in FSR register in MU0. This flag says if HSE is up and running. Notice that user should wait until it’s set after reset before triggering HSE services.

Also make sure that all data objects are forced to non-cacheable memory, this is very common issue.

Regards,

Lukas

0 Kudos
Reply

2,835 Views
yin_qiu
Contributor III

I take use o S32K312 and I find no such HSE_GRP in Peripheral and I also type the address in memory window it shows the 0 valueyin_qiu_0-1739863854091.png

 

0 Kudos
Reply

2,807 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

The FSR register looks good, the HSE is obviously up and running. It seems the memory at 0x4039C028 is not displayed correctly. Even if HSE firmware is not installed, the content should be completely different. There should not be just all zeros. You can try to read it by your code via pointer. My guess is that it could be caused by the debugger.

Have you tried to disable data cache completely? Go to project properties and delete D_CACHE_ENABLE:

 

Does this make a difference?

0 Kudos
Reply

2,802 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

It seems the screenshot was not uploaded, so I will attach it here.

0 Kudos
Reply

2,840 Views
yin_qiu
Contributor III

hello lukaszadrapa:

thank you for your support:

I have attached my source file and I have already checked the bit 24 of FSR in MU_0_MUB. it is 1 in bit24 so the code can run and pass the "while(!MU_GetHseStatus())".

but if the function "HSE_GetVersion" is called ,the pc stuck in the function “HSE_Write_Impl” which makes me feel confused.

you mentioned the register "HSE GPR " and I try to browse in the  Peripheral registers by S32DS but I find no such register.

yin_qiu_0-1739862812824.png

 

 

0 Kudos
Reply

2,837 Views
yin_qiu
Contributor III

I did such logical code in the Main function: source code can pass the while ,but stuck in the function  HSE_GetVersion.

yin_qiu_0-1739862925588.png

I put the Mu descriptor in DTCM and also I put it in no cacheable ram, the result is the same

0 Kudos
Reply