完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
有专家能给点解答吗? 另外,今天在OMAP-L138 C6000 DSP+ARM Processor Technical Reference Manual的MMCSD模块一掌发现有备注: 按照evmc6748_v1-1testsexperimentermmcsd给的时钟配置,mmcsd模块function clock由pll0 sysclk2提供,为150Mhz,而代码里关于memory clk的配置如下,这样最终输出的memory clk = function clock/4 = 37.5 >> 400Khz。 是不是我理解上有问题,还是这个初始化代码有漏洞? |
|
|
|
|
|
|
|
haikitty 发表于 2019-1-23 15:27 应该是大意了。 我找了另一个SDMMC 烧写工程里是按要求配的参数(OMAP-L138_FlashAndBootUtils_2_40OMAP-L138CCSSDMMCWriter) const SDMMC_ConfigObj DEVICE_SDMMC_config = [ SDMMC_LITTLE_ENDIAN, // writeEndian SDMMC_LITTLE_ENDIAN, // readEndian SDMMC_DAT3_EDGE_DETECT_DISABLE, // dat3Detect #if (1) 249, // initModeClockRate (target 300 KHz with 150 MHz input to module) 7, // dataModeClockRate (target 10 MHz with 150 MHz input to module) #else 19, // initModeClockRate (target 300 KHz with 12 MHz input to module) 0, // dataModeClockRate (target 3 MHz with 6 MHz input to module) #endif SDMMC_4BIT_DATABUS, // busWidth 0xFF, // timeoutResponse (none) 0x0000FFFF, // timeoutData SDMMC_FIFO_LEVEL_HIGH // fifoThreshold ]; SDMMC_ConfigHandle const hDEVICE_SDMMC_config = (SDMMC_ConfigHandle) &DEVICE_SDMMC_config; static Uint32 LOCAL_sdmmcwriter() [ SDMMC_MEM_InfoHandle hSDMMCMemInfo; Int8 fileName[256]; Uint32 baseAddress = 0; Bool useHeaderForApp = FALSE; DEBUG_printString( "Starting " ); DEBUG_printString( (String) devString ); DEBUG_printString( " SDMMCWriter.rn" ); // Initialize SD/MMC Memory Device hSDMMCMemInfo = SDMMC_MEM_open(DEVICE_SDMMCBOOT_PERIPHNUM, hDEVICE_SDMMC_config); http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
|
|
|
|
lifei639156 发表于 2019-1-23 15:41 @Tony Tang,下午仔细看了OMAP-L138_FlashAndBootUtils_2_40OMAP-L138CCSSDMMCWriter程序,还有两个问题请教: 问题1:在下面的SD卡扇区块读写测试中(代码实际每次写与读都是一个512长度的数据块),写与读之间加了一个延时语句,去掉该延时语句后程序会停留在函数SDMMC_readNWords内,status=SDMMC->MMCST0; status一直为0,导致死循环。请问对SD卡进行连续的单数据块读写操作之间必须加这样的延时吗? 问题2:同样的工程内,我将SDMMC_MEM_writebytes屏蔽,进入循环后直接进行读操作,则导致程序在SDMMC_readNWords内,status=SDMMC->MMCST0; status为TOUTRD超时,需要通过工程内如下代码重复一次初始化后,才能正常读取,想知道这个具体原因? |
|
|
|
|
|
|
|
haikitty 发表于 2019-1-23 15:59 因为前面刚做完写操作,虽然数据从MMC的FIFO送给MMC卡了,但MMC卡从自己的FIFO写到其memory上是需要时间的,是不能直接马上进行回读的,其实是它不会对这个立即跟上的读操作做出响应的。换言之,根本就没有接收控制器发出的读命令,所以也不会有响应了。而增加的延时即是等SD卡向自己的内存写数完成。 建议按手册的完整流程完善你的API进行操作。 http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
|
|
|
|
lifei639156 发表于 2019-1-23 16:20 把这个delay改为如下,检查MMCST1的busy位再往下执行,就可以了。 #define MMCST1 *(unsigned int *)0x01C4000C // UTIL_waitLoop(100000); while ((MMCST1 & 0x1) !=1 ) ; http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
545 浏览 0 评论
1609 浏览 0 评论
2045 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1507 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1331 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1756浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1723浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 16:39 , Processed in 1.047121 second(s), Total 66, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2995