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

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

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

Jump to solution
1,493 Views
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 Kudos
Reply
1 Solution
1,418 Views
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.

View solution in original post

0 Kudos
Reply
8 Replies
1,455 Views
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 Kudos
Reply
1,448 Views
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 Kudos
Reply
1,444 Views
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 Kudos
Reply
1,435 Views
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 Kudos
Reply
1,419 Views
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 Kudos
Reply
1,406 Views
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 Kudos
Reply
1,475 Views
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 Kudos
Reply
1,470 Views
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 Kudos
Reply