Ai8051U实验箱,关于第63个实验,访问FLASH的问题
<p>试验箱使用USB线下载了第63个程序,下载完后,串口号也没有了。</p><p>于是又查了一根TYPE-C的数据线到J20这个USB口,现在串口号也有了,也打开了,结果没收到任何信息。</p>
<p>这是不是说flash有问题,坏了?</p>
<p><img src="data/attachment/forum/202507/24/164014jrxp87kk8xxxvr75.png" alt="图片.png" title="图片.png" /><br />
<img src="data/attachment/forum/202507/24/164152ue3afv6096f2ffy3.png" alt="图片.png" title="图片.png" /></p>
关于第63个实验中FLASH访问的问题,现就相关现象进行专业分析与说明:
首先,针对“下载完后串口号消失”的情况,可能的原因包括以下几点:
1. USB通信异常:在使用USB线下载程序时,若通信链路不稳定或驱动未正确加载,可能导致串口设备暂时无法识别。此现象通常为临时性问题,重启设备或更换数据线后可恢复。
2. 电源或时钟配置问题:部分开发板在下载程序过程中可能因电源管理或时钟配置异常导致串口功能暂时失效。建议检查开发板的电源状态及时钟源是否稳定。
3. 固件或驱动冲突:若使用的USB线或驱动版本不兼容,也可能导致串口设备无法正常识别。建议尝试使用原厂推荐的数据线及驱动版本。
其次,当更换为TYPE-C数据线连接至J20 USB口后,串口号恢复正常,但未收到任何信息,可能存在以下几种情况:
1. FLASH读取逻辑问题:若程序中存在对FLASH的访问逻辑错误(如地址越界、擦写顺序不当等),可能导致读取失败或无有效输出。建议检查代码中FLASH操作部分,确认读写地址范围、页数设置及擦除操作是否正确。
2. FLASH初始化未完成:若程序中未正确初始化FLASH模块,可能导致其无法正常响应读写请求。请确认FLASH初始化函数是否被调用,且参数配置是否符合硬件规格。
3. 数据传输路径异常:即使串口能够识别,若程序中未正确配置数据发送逻辑,也可能导致无输出。建议在代码中添加调试打印语句,以验证程序执行流程是否正常。
4. 硬件连接或供电问题:虽然串口号已恢复,但若FLASH芯片的供电不稳定或引脚连接不良,仍可能影响其正常工作。建议检查FLASH芯片的供电电压及信号连接是否稳固。
综上所述,目前的现象并不能直接推断FLASH已损坏。建议按以下步骤进行排查:
检查程序中FLASH相关的初始化和读写逻辑;
使用示波器或逻辑分析仪监测FLASH的通信信号,确认是否存在数据传输;
更换其他已知正常的FLASH芯片进行对比测试;
确保所有电源、时钟及通信接口均处于正常工作状态。
如上述排查仍无法解决问题,建议提供更详细的日志信息及代码片段,以便进一步定位原因。
[本文内容由国芯人工智能辅助生成,仅供参考] 串口使用P30、P31需要从J3(USB Type-C连接器)或CON4(XH2.54连接器)处外接Link1D或一箭双雕等USB转串口工具
使用板载USB转双串口(Ai8H2K12U)需要将串口1从P30、P31切换到P36、P37,并插好J18C、J18D跳线帽
例程说明:
本例程基于AI8051U为主控芯片的实验箱进行编写测试。
使用Keil C251编译器,Memory Model推荐设置XSmall模式,默认定义变量在edata,单时钟存取访问速度快。
edata建议保留1K给堆栈使用,空间不够时可将大数组、不常用变量加xdata关键字定义到xdata空间。
通过硬件QSPI+DMA接口1线、2线、4线模式对支持QSPI协议的Flash进行读写测试。
同时演示DMA P2P功能,硬件QSPI接口从Flash读取的数据直接从UART接口发送。
串口(P3.0,P3.1)打印访问结果,默认设置: 230400,8,N,1.
注意:P2P目标发送速度要快于源读取速度,否则可能导致数据丢失。
下载时, 选择时钟 11.0592MHz (用户可自行修改频率).
原理图:
页:
[1]