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.
已解决! 转到解答。
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.
Thank you for your reply.
I checked using the LS1046ARDB.
I believe this is the cause. Do you know what might be causing the RCW values not to change?
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
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.
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.
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()