[STM32F1] 并行DAC的数据更新速率问题

[复制链接]
1986|24
 楼主| huwr 发表于 2023-2-17 18:29 | 显示全部楼层 |阅读模式
GPIO, gp, pi, ST, IO, DAC
STM32驱动并行式DAC,数据更新速率能否做到10M?
用STM32驱动AD904E(一款14位并行式DAC,即送数到IO口即可得到模拟量),
时序方法是
时钟线低电平->内存取数->送数到IO口->时钟线高电平
我用库函数编写驱动,数据更新率做到1.3MBaud左右
昨晚用汇编编写,可能不是一条指令一个时钟周期,才能做到3.2MBaud左右
附上代码,求大神优化建议(如能否使用DMA、半字能否提高速度、Thumb指令能否提高速度等),非常感谢!


GPIOA_ODR  EQU 0X4001080C  ;GPIOA输出,偏移地址0Ch
GPIOB_ODR  EQU 0X40010C0C  ;GPIOB输出,偏移地址0Ch
HIGH    EQU 0XFFFFFFFF  ;时钟线高电平
LOW     EQU 0X00000000  ;时钟线低电平
  AREA TEST,CODE,READONLY
  EXPORT run
run  LDR R6,=GPIOA_ODR
  LDR R7,=GPIOB_ODR
  LDR R8,=HIGH
  LDR R9,=LOW
  LDR R10,=datatable
  ADD R11,R10,#8;4*2=8
  MOV R5,R10
loop STR R9,[R7]
  LDR R12,[R10],#4
  STR R12,[R6]
  STR R8,[R7]
  CMP R10,R11
  MOVEQ R10,R5
  B loop
  NOP
datatable DCD 0x00000000,0xFFFFFFFF
  NOP
  NOP
  END
songqian17 发表于 2023-2-17 18:30 | 显示全部楼层
借用FSMC(如果有的话)应该好些..
zwll 发表于 2023-2-17 18:33 | 显示全部楼层
如果DAC速度没问题的话直接用FPGA,单片机IO不快。
chuxh 发表于 2023-2-17 18:35 | 显示全部楼层

应该是可以达到的,把指令放到RAM中执行,这样就省去了取flash的等等时间,主频多少?GPIO总线时钟有没有分频?
juventus9554 发表于 2023-2-17 18:36 | 显示全部楼层
还是用单片机》SPI>cpld解决吧,一个CPLD8元就解决,EMP240
xxrs 发表于 2023-2-17 18:39 | 显示全部楼层

最好改用FSMC总线去操作;
程序处理,够呛吧;
你改成汇编应该最快了
stly 发表于 2023-2-17 18:40 | 显示全部楼层
10M应该问题不大,注意优化代码
xxrs 发表于 2023-2-17 18:42 | 显示全部楼层
DAC能到的话,应该可以了
huangchui 发表于 2023-2-17 18:44 | 显示全部楼层
这么快的更新速度  输出的话能支撑吗
liuzaiy 发表于 2023-2-17 18:45 | 显示全部楼层

硬件不足以达到这么快的变更速度吧
huangchui 发表于 2023-2-17 18:48 | 显示全部楼层
这个速度会不会太快了点
jiajs 发表于 2023-2-17 18:49 | 显示全部楼层
非常悲催的我看不懂汇编语言
songqian17 发表于 2023-2-17 18:51 | 显示全部楼层
速度非常快了  会不会数据不稳定啊
tian111 发表于 2023-2-17 18:52 | 显示全部楼层
被采样的数据是什么样的数据啊
huangchui 发表于 2023-2-17 18:53 | 显示全部楼层

为什么要要求这么快的速度呢
liuzaiy 发表于 2023-2-17 18:55 | 显示全部楼层
并行的这个速度也可以了
llljh 发表于 2023-2-17 18:57 | 显示全部楼层
这个速度会不会太快了点
dingy 发表于 2023-2-17 20:04 | 显示全部楼层

非常悲催的我看不懂汇编语言
liuzaiy 发表于 2023-2-17 20:05 | 显示全部楼层
速度非常快了  会不会数据不稳定啊
yszong 发表于 2023-2-17 20:07 | 显示全部楼层
被采样的数据是什么样的数据啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

780

主题

8627

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部