找回密码
 立即注册
查看: 109|回复: 4

可以通过LCM_DMA将XDATA256字节数据送到P2.P6口上么?

[复制链接]

3

主题

14

回帖

141

积分

注册会员

积分
141
发表于 2026-8-30 18:36:21 | 显示全部楼层 |阅读模式
可以通过LCM_DMA将XDATA256字节数据送到P2.P6口上么?这样最高输出速率能有多少?在DMA运行阶段CPU不访问xdata就不会抢占总线么?那45M主频下数据输出到P2P6上的速度能有16bit*15M么?
回复

使用道具 举报 送花

83

主题

8317

回帖

1万

积分

超级版主

积分
17932
发表于 2026-8-30 18:52:50 | 显示全部楼层
参考我这个贴看看。

高速DAC实现@Ai8051U,DMA支持8/16位并口接R-2R电阻,输出正弦波、任意波形
https://www.stcaimcu.com/thread-10685-1-1.html
(出处: 国芯人工智能技术交流网站)
回复

使用道具 举报 送花

3

主题

14

回帖

141

积分

注册会员

积分
141
 楼主| 发表于 2026-8-30 19:28:14 | 显示全部楼层
梁*** 发表于 2026-8-30 18:52
参考我这个贴看看。

高速DAC实现@Ai8051U,DMA支持8/16位并口接R-2R电阻,输出正弦波、任意波形

所以在数据准备期间IO是会输出低电平是吧?那我这个想法是不可行了。

点评

P2要设置为高阻,否则DAM完成后P2输出电平会干扰数据,即LCM-DMA完成后,P2会恢复IO的输出数据,如果P2不是高阻,则会将P2口做普通IO输出。 如果你的输出是间歇的,则停止DMA输出时,你的IO输出最后的数据即可,即  详情 回复 发表于 2026-8-30 20:38
回复

使用道具 举报 送花

83

主题

8317

回帖

1万

积分

超级版主

积分
17932
发表于 2026-8-30 20:38:10 | 显示全部楼层
wx851*** 发表于 2026-8-30 19:28
所以在数据准备期间IO是会输出低电平是吧?那我这个想法是不可行了。


      P2要设置为高阻,否则DAM完成后P2会恢复普通IO功能,其输出的数据会干扰输出波形。DMA在更新输出时,也会有一个很短的时间会输出P2口数据,造成输出波形有很小的毛刺,滤波电路能滤除。
      我那个例子是连续输出,不断触发DMA。

      如果输出是间歇的,则停止DMA输出时,P2输出最后的数据即可,2种方法:
          1、在装载数据、启动DMA后,将装载的最后一个数据送P2,P2设置为推挽输出,当DMA完成后,恢复IO输出,就是输出你最后的数据。
          2、在DMA中断里从P2输出最后的数据,并将P2设置为推挽输出。

回复

使用道具 举报 送花

3

主题

14

回帖

141

积分

注册会员

积分
141
 楼主| 发表于 2026-8-30 21:03:35 | 显示全部楼层
梁*** 发表于 2026-8-30 20:38
wx85105157 发表于 2026-8-30 19:28
所以在数据准备期间IO是会输出低电平是吧?那我这个想法是不可行了。
  ...

那你刚刚帖子的参考资料,输出8位数据需要3个时钟,有4个时钟低电平是在取数据。

那如果我是想用两个8位的端口,需要的时钟周期一样么?P2P6能同时输出么?
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-11-7 11:25 , Processed in 0.071325 second(s), 67 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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