After the LS1046A boots up, the QSPI CS is always in a LOW state.

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

After the LS1046A boots up, the QSPI CS is always in a LOW state.

跳至解决方案
1,451 次查看
Johnson_s
Contributor III

I have created an original board that implements the LS1046A. I am trying to use the Flash Programmer together with the JTAG of CodeWarrior, but the QSPI signals are not functioning.

Specifically, the QSPI_A_CS0 signal transitions from High to Low immediately after boot, but the CS does not respond after the Flash Programmer is started.

The QSPI erase and dump from the Flash Programmer are successful, but when observing the waveform with an oscilloscope, the QSPI signals do not show any activity. I modified the tcc file from the RDB.

Additional information:On the board, there is a DIP switch that allows setting the value of CFG_RCW_SRC[0:8]. When set to QSPI mode, the signals are outputting normally, but when set to hard-coded RCW mode, the issue occurs.

0 项奖励
回复
1 解答
1,376 次查看
June_Lu
NXP TechSupport
NXP TechSupport

Please refer to AN5252_QorIQ LS1046A Design Checklist, page 47, check PORESET_B, HRESET_B, nRESET, TRST to check your schematics.

DCFG_CCSR_RCWSR13 only could be writeable in POR, it could not write correctly because the JTAG control the POR probably some issue.

在原帖中查看解决方案

0 项奖励
回复
8 回复数
1,413 次查看
June_Lu
NXP TechSupport
NXP TechSupport

Please follow RAM Boot using CodeWarrior on LS1046ARDB Application Note , 6.3.3 Create Hello World CodeWarrior project, check the DCFG_CCSR_RCWSR13 value if it is 0x20124000.

Thanks

0 项奖励
回复
1,406 次查看
Johnson_s
Contributor III

Thank you for your reply.
I checked using the LS1046ARDB.

  1. When I set the RCW on the LS1046ARDB, the values changed.
  2. However, when I set the RCW on the custom board, the values did not change.

I believe this is the cause. Do you know what might be causing the RCW values not to change?

0 项奖励
回复
1,402 次查看
June_Lu
NXP TechSupport
NXP TechSupport

The reset circuit would be the possible reason, please check the schematics by yourself or send your schematics related to the reset and JTAG part to me here.

If it's confidential, you could create a new case in the path below:

https://www.nxp.com/support/support:SUPPORTHOME

Add information case#00686870 in the new case for the further support.

Thanks

0 项奖励
回复
1,393 次查看
Johnson_s
Contributor III

I reviewed the reset circuit as per your advice. I modified it so that the CPU's PORESET_B and TRST_B become active when JTAG's TRST is enabled, but the RCW value still does not change.

I'm sorry, but I cannot provide the circuit diagram.

0 项奖励
回复
1,377 次查看
June_Lu
NXP TechSupport
NXP TechSupport

Please refer to AN5252_QorIQ LS1046A Design Checklist, page 47, check PORESET_B, HRESET_B, nRESET, TRST to check your schematics.

DCFG_CCSR_RCWSR13 only could be writeable in POR, it could not write correctly because the JTAG control the POR probably some issue.

0 项奖励
回复
1,364 次查看
Johnson_s
Contributor III

Amazing!

Following the circuit on page 47, I was able to confirm that when JTAG's TRST is input, only the PORESET_B is activated, and the RCW has been changed.

Thank you!

0 项奖励
回复
1,433 次查看
June_Lu
NXP TechSupport
NXP TechSupport

Please kindly change the

 "USE_SAFE_RCW = False" in the Target Initialization File

into

"USE_SAFE_RCW = True"

And flash the QSPI by the flash programmer again.

Thanks.

0 项奖励
回复
1,428 次查看
Johnson_s
Contributor III

Thank you for your reply.
However, as you suggested, I am running it with "USE_SAFE_RCW=True."
In that case, the following code becomes effective, but the result does not change.

if USE_SAFE_RCW:
# Please make sure SERDES REF CLK is set to 100 MHz (SW4[1:2] = 00)
# Set rcw_src to the hard-coded RCW option matching the board's DIP SW
# regarding SYSCLK and differential/single-ended clock source

# use this when SYSCLK = 66 MHz, single-ended clock source
# TA.rcw.set_source(0x9A)
# use this when SYSCLK = 66 MHz, differential clock source
# TA.rcw.set_source(0x9B)
# use this when SYSCLK = 100 MHz, single-ended clock source
# TA.rcw.set_source(0x9E)
# use this when SYSCLK = 100 MHz, differential clock source
TA.rcw.set_source(0x9F)

# Activate QSPI lines

TA.rcw.set_data({13: 0x20124000})

 

# add here if you need to override other particular RCW values
#TA.rcw.set_data({1: 0x40282830, 9: 0x00C12980, 10: 0x00002580})
TA.rcw.apply()

0 项奖励
回复