Hello,
A module created for read/write to an SDCard running out of internal RAM operates properly. When I transition to external ram (XIP_BOOT_HEADER_DCD_ENABLE=1), the program fails at SD_SendScr. All other modules (i.e I2C, PWM etc) unrelated to uSD are functional.
Any insight would be greatly appreciated.
Hi @kwolley ,
Did you test it on any EVK board or custom board? Please kindly clarify.
Have a great day,
Kan
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
the attached project functions on a custom board when DCD_ENABLED=0, however when I use the DCD and external RAM it fails.
Hi @kwolley ,
Did you use another SDRAM in your custom board other than the one on EVK board? if yes, maybe you have to update the DCD config file. Please refer to Solved: Re: RT1050 - Recreate DCD SDRAM config C code? - NXP Community for details.
Hope that helps,
Have a great day,
Kan
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
I apologize for my delay in response.
The DCD for this project configures clocks as follows:
#1.9, command: write_value, address: CCM_ANALOG_PLL_SYS, value: 0x2001, size: 4
#1.10, command: write_value, address: CCM_ANALOG_PFD_528, value: 0x1018101B, size: 4
#1.11, command: write_value, address: CCM_ANALOG_PLL_USB1, value: 0x3040, size: 4
#1.12, command: write_value, address: CCM_ANALOG_PFD_480, value: 0x1311100C, size: 4
#1.13, command: write_value, address: CCM_CBCDR, value: 0xA8340, size: 4
#1.14, command: write_value, address: CCM_CSCMR1, value: 0x4930000, size: 4
#1.15, command: write_value, address: CCM_CSCDR1, value: 0x6490B00, size: 4
The above commands assign the USDCH1 clock to PLL2_PFD0. This setup functions properly when operating out of internal RAM (no DCD is used).
Am I missing a register assignment?
Hi @kwolley ,
I am sorry, but I didn't find the code you are referring to in the project you sent before, are you referring to another one or you have update the DCD files afterwards? Please kindly clarify.
Also I am wondering how you generate the DCD source code, by the config tool or edit manually according to the RM? as I found the value set to CCM_CSCMR1 and CCM_CSCDR1 has some bits on the reserved field.
Have a great day,
Kan
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
I use the DCD peripheral tool and clocks tool (to verify no warnings or errors) in MCUXpresso and the reference manual.
Regarding the reserved fields, changing these fields to any value other than the default results in a warning so I do not edit these fields.
Removing all USB PLL and USDHC register definitions from the DCD and defining clock configuration in sdmmc_config.c does not solve the issue. When probing the SPI lines to the uSD, there appears to be a memory access issue when CMD8 should be sent.
The program running out of internal RAM functions on both the custom board and the eval board. While operating out of external SDRAM, it fails.