Microchip
直播中

韩志保

7年用户 184经验值
私信 关注
[问答]

使用MLA fileio写入microSD卡时出现问题怎么办

你好,我是微芯片新手,这个论坛,我已经陷入困境,真的需要帮助。我使用PIC24FJ128GA202试图写数据到一个微SD卡。我使用的是MPLAB X V3.3和ICD3。我正在将微芯片应用程序库(MLA)用于文件系统,现在我正试图修改fileio代码中的示例来处理我的图片。使用调试器逐步检查代码,我发现它正在等待SPIRBE位来指示接收缓冲区中存在信息,但是该位永远不会被设置。我还试着继续调试,让它运行5分钟左右,但是它仍然停留在while循环中。调用堆栈是SPI1_ExchangeBuffer(uint16_t len=0x0200,void*pRecieveData=0,void*pTransmitData=30)DRV_SPI_GetBuffer()FILEIO_SD_AsyncReadTasks()FILEIO_SD_SectorRead()FILEIO_LoadMBR()FILEIO_DriveMount()main()在我的PCB I上连接如下卡引脚#pin nameSDO 11 RPI4SDI 14 RP5SCK 15 RP6EDIT:不知何故附上了示意图,之前遇到了麻烦。所以我试着用这些线路上的电阻作为分压器来重新确定SD卡的电压,但是后来我发现SD卡可以工作在2.7V-3.3V,所以现在我有一个零欧姆,47kOhm接地。VDD应该是3V的电池。我会提供更多的信息(如示意图),但在尝试发布此消息时继续获得以下信息,我将尝试编辑以添加信息。您没有权限访问“http://www..hip.com/for./post.aspx?”在这个服务器上。

回帖(8)

朱虹

2020-4-29 08:03:29
我已经在配置位#pragma config SOSCSEL=OFF//SOSC选择位(数字(SCLKI)模式)中禁用了SOSC,这足以禁用SOSC吗?下面将包含我的配置位
举报

张丽

2020-4-29 08:22:51
这应该是所有你需要的。请测试你的硬件以确保这已经足够了。
举报

朱虹

2020-4-29 08:32:22
我已经测试了我的PIN配置,我相信PIN 11(RPI4)是正确的。然而,这个问题仍然存在,它仍然被困在SPI1Exchange缓冲区中。我的测试程序如下。我的电路在PCB上,所以我焊接了一根线到引脚11(RPI4),并且检查了库中的代码,我发现数据是使用SPI1_Exchange发送和接收的。DRV_SPI_Get和DRV_SPI_Put都重定向到这个函数。瓮。我注意到,在SPIX交换函数中,PixVIEDATA不是全部1(0xFF),它有00001101个11000000。我真的不明白为什么,因为我找不到任何关于库中的所有助手函数是如何使DriveMount函数工作的,但是我假设它的工作正常。EDIT:我刚意识到pRecieveData是一个指针,所以它显示的值是RecieveDa的地址检查表中的TA是0xDC0,这是我之前看到的相同值。我现在觉得很傻,总之,我相信PIN 11的PIN配置是正确的。
举报

张丽

2020-4-29 08:54:48
第一次使用任何库代码时必须小心。如果您从未调试过在微芯片PIC上实现的任何SPI接口,那么您可能处于颠簸的旅程中。微芯片库代码素有粗略和容易出现奇数行为的名声。并非所有代码和目标的组合都已被验证。从我自己的经验来看,我使用微芯片库代码作为可能实现的例子。然后,我为项目所需的内容编写自己的实现。我从来没有成功地使用提供API的微芯片。总是有bug。为了调试螺旋初始化代码,您需要创建最简单的方法来打开、读取、写入和关闭库API并用真实硬件运行。它有助于知道工作硬件来验证你可以使用微芯片库来构建一个项目,并且它运行正常。这是不可能告诉你具体做什么的。有点像问你需要多少绳子来捆扎我的山羊。在你提出一个数量之前,你可能需要更多关于我和我的山羊的细节。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分