找回密码
 立即注册
查看: 1304|回复: 8

AI8051U-测试板子研发

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:205
  • 最近打卡:2025-12-18 09:26:23
已绑定手机

19

主题

106

回帖

809

积分

高级会员

积分
809
发表于 2025-10-11 15:57:24 | 显示全部楼层 |阅读模式

由于AI8051U的功能比较多丰富,决定将外设配备齐全,画了一个核心板子,麻烦工程师看下哪里需要修正,请提下宝贵意见。
先表示感谢!
截图202510111553407265.jpg

说明:工作电压为3.3V~4.5V 之间,此板子功能包括:
1.通过I8080_DMA驱动黑白LCD160160液晶显示屏幕。
2.通过QSPI驱动W25Q和W25N系列的Flash存储。
3.通过Uart 驱动蓝牙(BlueTooth)芯片,并有低功耗和连接显示。
4.通过P32~P35驱动I2S
5.留下14个备用引脚共后续测试。

其中有些电路的设计,我是参考擎天柱的,但是能力有限可能设计的有问题,请工程师多挑毛病。

回复

使用道具 举报 送花

3

主题

2944

回帖

1634

积分

等待验证会员

积分
1634
发表于 2025-10-11 15:58:00 | 显示全部楼层
您好,感谢您分享AI8051U测试板的设计方案。以下是对该板子的初步评审意见,主要从电源设计、接口配置、外设驱动、信号完整性及可测试性等方面进行分析,并提出一些优化建议,供您参考。

一、电源设计建议

您提到板子的工作电压为33V~45V,这是一个较高的电压范围,建议注意以下几点:

1. 电源转换模块选型:  
   AI8051U芯片本身工作电压可能为3.3V或5V,因此需要DC-DC降压模块将输入电压降至芯片所需电压。建议选用高效率、低纹波的同步整流型DC-DC芯片,如TI的LM5116或MP2307系列,并预留输入/输出滤波电容以提高稳定性。

2. 过压与反接保护:  
   输入电压范围较高,建议加入TVS二极管(如SM712)和保险丝(或PTC)以防止电压浪涌和反接损坏主控芯片。

3. 电源隔离与分区供电:  
   若有多个外设模块(如LCD、Flash、蓝牙等),建议采用分区供电策略,使用LDO或DC-DC模块为不同模块独立供电,减少相互干扰。

二、外设接口设计评审

1. I8080DMA驱动LCD
时序匹配性:I8080接口为并行接口,需确保主控芯片与LCD模块的时序匹配,包括读写周期、地址建立/保持时间等。建议查阅LCD手册,确认主控是否支持相应模式。
信号完整性:并行总线走线较长时容易产生干扰,建议对数据线、控制线进行等长处理,并加入端接电阻或RC缓冲电路。
DMA使用合理性:DMA可以提升传输效率,但需注意DMA通道与LCD控制器的映射关系,确保数据流无冲突。

2. QSPI驱动Flash(W25Q/W25N)
时钟频率与模式:QSPI接口支持多种模式(如单线、双线、四线),建议根据Flash型号选择合适的时钟频率和数据线模式,避免超频导致读写失败。
引脚复用与冲突检查:确认QSPI引脚未与其他外设冲突,尤其是复用为GPIO或其他功能时。
预留Flash容量扩展接口:若后续可能升级Flash容量,建议在PCB上预留焊盘或排针。

3. UART驱动蓝牙模块
电平匹配:蓝牙模块通常为3.3V逻辑电平,需确保UART接口电平匹配,必要时加入电平转换电路(如TXS0108)。
低功耗设计支持:蓝牙模块的低功耗模式(如Sleep Mode)需通过主控正确控制,建议预留唤醒引脚或中断引脚。
预留调试接口:建议在蓝牙模块附近预留UART调试接口,便于后续调试通信协议或日志输出。

4. I2S音频接口(P32~P35)
接口定义确认:I2S接口通常包括BCLK、WS、SD等信号,建议确认P32~P35对应的I2S功能定义是否与主控匹配。
音频输出驱动能力:若直接驱动耳机或扬声器,需考虑主控输出能力是否足够,否则建议加入音频功放模块(如TDA1308)。
EMI抑制:高速音频信号容易产生电磁干扰,建议对I2S信号线进行屏蔽处理或靠近地层布线。

5. 备用引脚设计
功能复用建议:14个备用引脚建议标注其可能的复用功能(如ADC、PWM、SPI等),便于后续功能扩展。
上拉/下拉配置:备用引脚建议配置为高阻态或加入弱上拉/下拉电阻,避免悬空导致不确定状态。

三、PCB布局与布线建议

1. 关键信号线布线:
并行总线(如I8080)应尽量短而等长,避免交叉布线。
高速信号线(如QSPI、I2S)应靠近地层布线,减少回路面积。
UART、蓝牙等低速信号线可适当放宽布线要求。

2. 电源与地线处理:
建议使用大面积铺地,降低地阻抗。
数字地与模拟地应单点连接,避免地环路干扰。
电源线应加粗处理,尤其是DC-DC输入输出线。

3. 去耦电容配置:
每个电源入口处建议加入10μF陶瓷电容 + 0.1μF电容进行滤波。
主控芯片电源引脚附近应加0.1μF去耦电容,减少高频噪声。

四、可测试性与可维护性建议

1. 测试点预留:
在关键信号线上预留测试点(Test Point),便于后续示波器测量。
在电源输入、DC-DC输出等位置预留电压测试点。

2. LED指示灯:
建议加入电源指示灯、运行状态灯、通信指示灯等,便于快速判断板子状态。

3. 跳线配置:
若存在多种配置方式(如不同电压输入、功能选择),建议使用跳线帽进行配置,提高灵活性。

4. 丝印与标识:
所有接口、引脚、电源输入等建议清晰标注,提高可读性。
建议在PCB上印制版本号、日期等信息,便于后期追踪。

五、其他建议

1. 散热设计:
若DC-DC模块或主控芯片功耗较高,建议加装散热片或预留散热孔。

2. EMC设计:
若产品需通过EMC认证,建议在输入端加入共模电感与Y电容,提升抗干扰能力。

3. 软件支持:
建议在设计阶段同步考虑驱动开发,尤其是DMA、QSPI、LCD控制器等模块的初始化配置。

总结

整体来看,该AI8051U测试板功能丰富、接口齐全,具备良好的扩展性与实用性。但在电源设计、信号完整性、接口兼容性及可测试性方面仍有一些优化空间。建议在PCB投板前进行一次完整的信号完整性仿真和电源完整性分析,确保设计的稳定性与可靠性。

如有进一步的硬件或软件问题,欢迎继续交流,祝您的项目顺利推进!

—— 国芯人工智能

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

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:647
  • 最近打卡:2025-12-18 07:29:35
已绑定手机

93

主题

6940

回帖

1万

积分

超级版主

积分
13026
发表于 2025-10-11 17:48:54 | 显示全部楼层
断电按钮连接不正确,请参考官方设计
截图202510111748512004.jpg

截图202510111751368805.jpg


回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:205
  • 最近打卡:2025-12-18 09:26:23
已绑定手机

19

主题

106

回帖

809

积分

高级会员

积分
809
发表于 2025-10-13 08:50:49 | 显示全部楼层
Debu*** 发表于 2025-10-11 17:48
断电按钮连接不正确,请参考官方设计

您提供的这个元器件比较多,有较简单的方式吗?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:205
  • 最近打卡:2025-12-18 09:26:23
已绑定手机

19

主题

106

回帖

809

积分

高级会员

积分
809
发表于 2025-11-12 16:04:31 | 显示全部楼层
Debu*** 发表于 2025-10-11 17:48
断电按钮连接不正确,请参考官方设计

我用 “一键双雕” 下载器连接P30、P31,设置了uart1使用p30、p31,用于接收/返回电脑上串口命令,同时我还uart1的P16、P17连接了蓝牙模块的tx、rx引脚,实时保持与蓝牙模块通讯。
我这种方式可行吗?uart1的两对“P30、P31”和“P16、P17” 能同时单独通信吗?
截图202511121601206660.jpg 截图202511121602019596.jpg
代码如下,目前只写了P30、P31的的配置,并且采用了DMA读取uar1的数据
  1. void UartInit(void)
  2. {
  3.         S1_S1 = 0;  //UART1 switch to, 00: P3.0 P3.1, 01: P3.6 P3.7, 10: P1.6 P1.7, 11: P4.3 P4.4
  4.         S1_S0 = 0;
  5.         SCON = 0x50;                //8位数据,可变波特率
  6.         AUXR |= 0x40;                //定时器时钟1T模式
  7.         AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
  8.         TMOD &= 0x0F;                //设置定时器模式
  9.         TL1 = 0xA9;                        //设置定时初始值
  10.         TH1 = 0xFF;                        //设置定时初始值
  11.         ET1 = 0;                        //禁止定时器中断
  12.         TR1 = 1;                        //定时器1开始计时
  13.         //ES = 1;                                //使能串口1中断
  14.        
  15.         //UR1TOCR = 0xc0; //使能超时接收,使能超时中断,超时时钟选择 1:系统时钟  0:串口数据位率(波特率)
  16.         //UR1TOTL = 0xFF;
  17.         //UR1TOTH = 0x0F; //0x5666 = 22118
  18.         //UR1TOTE = 0x00; //需要写 UR1TOTE 后,新的TM值才会生效
  19. }
  20. void UartPutc(unsigned char dat)
  21. {
  22.   SBUF = dat;
  23.   while(TI == 0);
  24.   TI = 0;
  25. }
  26. char putchar(char c)
  27. {
  28.   UartPutc(c);
  29.   return c;
  30. }
  31. //========================================================================
  32. // 函数: void DMA_Config(void)
  33. // 描述: UART DMA 功能配置.
  34. // 参数: none.
  35. // 返回: none.
  36. // 版本: V1.0, 2024-5-6
  37. //========================================================================
  38. void DMA_UART1_Config(void)
  39. {
  40. DMA_UR1T_CFG = 0x80;        //bit7 0:Disable Interrupt
  41.     DMA_UR1T_STA = 0x00;
  42.     DMA_UR1T_AMT = (u8)(UART1_BUF_COT - 1);        //设置传输总字节数(低8位):n+1
  43.     DMA_UR1T_AMTH = (u8)((UART1_BUF_COT - 1)>>8);       //设置传输总字节数(高8位):n+1
  44.     DMA_UR1T_TXAH = (u8)((u16)&DmaBuffer >> 8);
  45.     DMA_UR1T_TXAL = (u8)((u16)&DmaBuffer);
  46.     DMA_UR1T_CR = 0x80;         //bit7 1:使能 UART1_DMA, bit6 1:开始 UART1_DMA 自动发送
  47.     DMA_UR1R_CFG = 0x80;        //bit7 0:Disable Interrupt
  48.     DMA_UR1R_STA = 0x00;
  49.     DMA_UR1R_AMT = (u8)(UART1_BUF_COT - 1);       //设置传输总字节数(低8位):n+1
  50.     DMA_UR1R_AMTH = (u8)((UART1_BUF_COT - 1)>>8);       //设置传输总字节数(高8位):n+1
  51.     DMA_UR1R_RXAH = (u8)((u16)&DmaBuffer >> 8);
  52.     DMA_UR1R_RXAL = (u8)((u16)&DmaBuffer);
  53.     DMA_UR1R_CR = 0xa1;         //bit7 1:使能 UART1_DMA, bit5 1:开始 UART1_DMA 自动接收, bit0 1:清除 FIFO
  54. }
复制代码


点评

不能同时用 用P_SW1切换 [attachimg]120876[/attachimg]  详情 回复 发表于 2025-11-12 18:53
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:647
  • 最近打卡:2025-12-18 07:29:35
已绑定手机

93

主题

6940

回帖

1万

积分

超级版主

积分
13026
发表于 2025-11-12 18:53:49 | 显示全部楼层
孙*** 发表于 2025-11-12 16:04
我用 “一键双雕” 下载器连接P30、P31,设置了uart1使用p30、p31,用于接收/返回电脑上串口命令,同时我 ...

不能同时用
用P_SW1切换

截图202511121853455283.jpg

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:205
  • 最近打卡:2025-12-18 09:26:23
已绑定手机

19

主题

106

回帖

809

积分

高级会员

积分
809
发表于 2025-11-12 20:15:27 | 显示全部楼层
Debu*** 发表于 2025-11-12 18:53
不能同时用
用P_SW1切换

1.如果通过P_SW1来回切换,那么在切换中uart1用的是同一个缓存吗?
2.来回切换会把数据弄丢吧,比如P30P31正在与主机交互,此时连接P16P17的蓝牙模块来了一堆数据,是不是就接不到了呢?

点评

是的  详情 回复 发表于 2025-11-13 06:51
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:268
  • 最近打卡:2025-12-18 08:51:37

814

主题

1万

回帖

2万

积分

管理员

积分
21329
发表于 2025-11-12 21:09:19 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:647
  • 最近打卡:2025-12-18 07:29:35
已绑定手机

93

主题

6940

回帖

1万

积分

超级版主

积分
13026
发表于 2025-11-13 06:51:07 | 显示全部楼层
孙*** 发表于 2025-11-12 20:15
1.如果通过P_SW1来回切换,那么在切换中uart1用的是同一个缓存吗?
2.来回切换会把数据弄丢吧,比如P30P31 ...

是的
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-12-19 03:19 , Processed in 0.116839 second(s), 87 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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