找回密码
 立即注册
查看: 73|回复: 2

32系列 AI8051U系列 问题备忘录

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2025-4-2 13:54:05 | 显示全部楼层 |阅读模式
AI的251内核是本人很喜欢用的一个型号,因为EDATA可以直接地址访问,同主频下,综合效率甚至高于M3
AI方面:型号更新很快,基本上半年一个主力型号,下一个主力系列8052U也正在路上,相信不久就能见到了。
本贴将汇集本人使用 251内核型号 过程中所遇到的相关的问题归集备忘,也提示坛友避免踩坑。
同时也督促AI注重细节,偶尔也得放慢脚步,回头看看,稳固自身境界。
祝AI每个型号和系列都成为经典永恒流传。


1. DMA时钟问题:
问题描述:当正在使用DMA时,请勿进入IDL(空闲模式).
适用于32系列,8051U系列.
处理方法,不使用空闲模式.
相关贴子:
https://www.stcaimcu.com/thread-6511-1-1.html



2. PLL时钟问题:
如果SYSCLK使用的时钟源是PLL分频后的时钟.
则运行命令 IAP_CONTR=0X60; //复位到系统ISP区域
不但不会复位,还会死机。(在8051U系列测试得到的结果)
处理方法:增加一些语句
void ResetToIsp(void)
{
    CLKSEL = 0;     //重新选回默认时钟
    CLKDIV = 2;     //降低主频
    USBCON = 0x00;  //这里,如果USB设备已经初始化,则需要主动断开USB,否则电脑无法检测到USB-Writer
    delay_ms(2);    //加入大于1毫秒的延时
    IAP_CONTR=0X60; //现在复位在系统ISP区,没问题了
}


3. LCM_DMA 基址4字节对齐问题
这个问题其实也可以不算是问题,只是数据手册上无相关说明,所以也只能当问题处理了。
建议手册上增加说明,而不是在论坛上宣传。
解决办法:
u8 xdata XX_Buffer[Hub_Buffer_Size] _at_ 0x????;    //使用绝对定位
或:
u8 xdata XX_Buffer[Hub_Buffer_Size] __attribute__((aligned (4)));   //强制4字节对齐
相关贴子:
https://www.stcaimcu.com/thread-16306-1-1.html



4. SPI_DMA 启用FIFO的问题:(在8051U系列测试得到的结果)
条件:开启高速SIP模式,并打开FIFO功能。
当 DMA配制寄存器 DMA_SPI_CFG 发送使能,并且接收不使能时,
运行过一次DMA结束后,会使接收FIFO不空,
使用 CLRFIFO: 清除SPIDMA接收FIFO 无效!(多次清除都是无效!)
当下次启用DMA接收时,会提前接收FIFO内遗留的无效数据,重而产生错误。
解决办法:
1. 从不使用FIFO。
2. 仅发送时,不使用FIFO。
(只开接收,或接收和发送同时开启时,可以使用FIFO功能。)
打开FIFO的好处是:每字节之间间隔减少,总体速率有提升


Keil C251相关:
遇到再补充

如果以后遇到251内核使用的问题,会在本帖补充。坛友们也一起来补充。


回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-4-2 13:58:00 | 显示全部楼层
感谢您对STC32系列和AI8051U系列的深入使用与反馈。以下是对您提到的问题的详细分析与建议:

1. DMA时钟问题
问题描述:当正在使用DMA时,请勿进入IDL(空闲模式)。  
适用型号:STC32系列,AI8051U系列。  
处理方法:避免使用空闲模式。  
分析:DMA(直接内存访问)操作依赖于系统时钟的持续运行。进入IDL模式后,系统时钟可能会暂停或降低频率,导致DMA操作无法正常完成,进而引发数据错误或系统死机。因此,在DMA操作期间,应确保系统时钟保持稳定,避免进入IDL模式。  
建议:在设计系统时,建议在DMA操作期间禁用IDL模式,或通过软件控制确保DMA操作完成后再进入IDL模式。

2. PLL时钟问题
问题描述:如果SYSCLK使用的时钟源是PLL分频后的时钟,执行IAPCONTR=0X60;复位命令时,系统不会复位,而是死机。  
适用型号:AI8051U系列。  
处理方法:在复位前,重新选择默认时钟并降低主频,确保系统稳定复位。  
分析:PLL(锁相环)时钟源在复位时可能无法正确切换,导致系统无法正常复位。通过重新选择默认时钟并降低主频,可以确保系统在复位时处于稳定状态。  
建议:在复位前,建议按照以下步骤操作:
  1. c
  2. void ResetToIsp(void) {
  3.     CLKSEL = 0;     // 重新选回默认时钟
  4.     CLKDIV = 2;     // 降低主频
  5.     USBCON = 0x00;  // 如果USB设备已初始化,主动断开USB
  6.     delayms(2);    // 加入大于1毫秒的延时
  7.     IAPCONTR=0X60; // 现在复位在系统ISP区,没问题了
  8. }
复制代码

3. LCMDMA 基址4字节对齐问题
问题描述:LCMDMA基址需要4字节对齐,但数据手册中未明确说明。  
适用型号:STC32系列,AI8051U系列。  
处理方法:确保LCMDMA基址为4字节对齐。  
分析:DMA操作通常要求数据地址对齐,以提高数据传输效率。LCMDMA基址未对齐可能导致数据传输错误或效率降低。  
建议:在使用LCMDMA时,确保基址为4字节对齐,可以通过以下方式实现:
  1. c
  2. uint32t baseaddress = (uint32t)buffer & ~0x03; // 确保基址为4字节对齐
复制代码

总结
STC32系列和AI8051U系列在性能与功能上表现出色,但在实际使用中仍需注意一些细节问题。通过合理的设计与优化,可以充分发挥其潜力,避免潜在问题。希望以上分析与建议能对您有所帮助,也期待STC在未来的型号中继续优化与完善,推出更多经典产品。

祝您使用愉快,期待您的进一步反馈与交流。

[本文内容由国芯人工智能辅助生成,仅供参考]

点评

机器人是抢沙发专家  发表于 2025-4-2 14:04
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 08:50 , Processed in 0.129940 second(s), 55 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表