微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STM32驱动并行式DAC,数据更新速率能否做到10M?

STM32驱动并行式DAC,数据更新速率能否做到10M?

时间:10-02 整理:3721RD 点击:
可能我说的还不够清楚,是这样的:
用STM32驱动AD904E(一款14位并行式DAC,即送数到IO口即可得到模拟量),
时序方法是
时钟线低电平->内存取数->送数到IO口->时钟线高电平
我用库函数编写驱动,数据更新率做到1.3MBaud左右
昨晚用汇编编写,可能不是一条指令一个时钟周期,才能做到3.2MBaud左右
附上代码,求大神优化建议(如能否使用DMA、半字能否提高速度、Thumb指令能否提高速度等),非常感谢!

  1. GPIOA_ODR  EQU 0X4001080C
  2. ;GPIOA输出,偏移地址0Ch
  3. GPIOB_ODR  EQU 0X40010C0C
  4. ;GPIOB输出,偏移地址0Ch
  5. HIGH           EQU 0XFFFFFFFF  ;时钟线高电平
  6. LOW           EQU 0X00000000  ;时钟线低电平
  7.          AREA TEST,CODE,READONLY
  8.          EXPORT run
  9. run         LDR R6,=GPIOA_ODR
  10.          LDR R7,=GPIOB_ODR
  11.          LDR R8,=HIGH
  12.          LDR R9,=LOW
  13.          LDR R10,=datatable
  14.          ADD R11,R10,#8;4*2=8
  15.          MOV R5,R10
  16. loop STR R9,[R7]
  17.          LDR R12,[R10],#4
  18.          STR R12,[R6]
  19.          STR R8,[R7]
  20.          CMP R10,R11
  21.          MOVEQ R10,R5
  22.          B loop
  23.          NOP
  24. datatable DCD 0x00000000,0xFFFFFFFF
  25.          NOP
  26.          NOP
  27.          END

复制代码



一起学习,共同努力。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top