ICETEK-LF2407-A板上,使用的是 DAC7625数模芯片,它可以实现同时转换四路模拟信号数出,并有 12 位精度,转换时间 10μs。其控制方式较为简单:首先将需要转换的数值通过数据总线传送到 DAC7625 上相应寄存器,再发送转换信号,经过一个时间延迟,转换后的模拟量就从 DAC7625输出引脚输出。
2,DAC7625与 TMS320LF2407A的连接
由于 TMS320LF2407A DSP 没有数模转换输出设备,采用外扩数模转换芯片的方法。 在 ICETEK-LF2407-A板上选用的是 DAC7625。 DAC7625的转换寄存器被映射到了
DSP的 I/O空间,地址是 0-3,控制转换由 I/O端口 4的写信号控制,这部分在硬件上由译码电路 (GAL 芯片) 完成。 在 DAC7625的输出端,为了增加输出功率,经过一级运放再输出到板上插座上。
硬件原理图
输出波形
P2
C A D
T D A
R D T
L R A
LF2407
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
DAC 7625
模拟信号输出
数字信号输入
E M I F
哈尔滨工业大学——DSP 原理与应用实验指导书
III-24
四,实验程序
#include "2407c.h"
#include "math.h"
void interrupt gptime1 (void);
void gp_init(void);
ioport unsigned int port0000;
ioport unsigned int port0001;
ioport unsigned int port0002;
ioport unsigned int port0003;
ioport unsigned int port0004;
unsigned int data[4][20];
unsigned int cnt,uWork;
main()
{
int i;
cnt = 0;
for (i = 0; i < 20; i ++)
{
data[0][i] = 4096 / 20 * i;
if (i < 10)
{
data[1][i] = 4096 / 10 * i;
data[2][i] = 4095;
}
else
{
data[1][i] = data[1][19 - i];
data[2][i] = 0;
}
data[3][i] = 4096 - data[0][i];
}
asm(" setc INTM"); /* 关中断,进行关键设置时不允许发生中断,以免干扰 */
*WDCR=0x6f;
*WDKEY=0x5555;
*WDKEY=0xaaaa; /* 关闭看门狗中断 */
哈尔滨工业大学——DSP 原理与应用实验指导书
III-25
*SCSR1=0x81fe; /* 设置DSP运行频率40m */
(*MCRB)=0;
uWork=(*MCRC);/*将PWM12/IOPE6设置成通用I/O口,以控制实验箱上指示灯 */
uWork&=0x0ffbf;
(*MCRC)=uWork;
gp_init(); /* 设置定时器 */
*IMR=0x2; /* 使能定时器中断(INT2) */
*IFR=0xffff; /* 清除中断标志 */
asm(" clrc INTM"); /* 开中断 */
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-29489-83.html
非也
台湾是美帝种在中国大地上的一块烂肉
美食就是美食