NXP S08P-LITE-V3开发板试用 7、DAC5571输出模拟电压测试
其他
3805 人阅读
|
0 人回复
|
2018-12-09
TA的每日心情 | 开心 2025-9-22 14:25 |
|---|
签到天数: 1085 天 连续签到: 1 天 [LV.10]以坛为家III
版主
- 积分
- 1173
|
测试DAC5571输出模拟电压,通过变量计数,不断调整输出电压,具体步骤如下:
一、硬件电路
DAC芯片,通过I2C协议,将数字信号转换成模拟信号。
二、DAC5571手册部分
2.1、内部框图:
2.2、I2C协议
三、软件部分
3.1、MC90S08PT60 I2C结构图:
3.2、有关的寄存器
3.3、DAC5571初始化
- void DAC5571_Init(void)
- {
- I2C_F = 0x1D; // 100K baud rate: bus 16M / SCL divider 160
- I2C_C1 = I2C_C1_IICEN_MASK | I2C_C1_MST_MASK | I2C_C1_TX_MASK;
- }
复制代码 3.4、DAC5571WriteData 写数据 - void DAC5571WriteData(unsigned char u8Data)
- {
- /* send data to slave */
- IIC_StartTransmission(DAC5571_I2C_ADDRESS, MWSR);
- i2c_Wait();
- /* Send I2C address */
- I2C_D = u8Data>>4;
- i2c_Wait();
- /* Send data */
- I2C_D = u8Data<<4;
- i2c_Wait();
- i2c_Stop();
- delay();
- }
复制代码 3.5、主程序
- void main(void)
- {
- uint8_t i = 0;
- MTIM1_Init();
- Buzzer_Init();
- Buzzer_Test();
- while (1)
- {
- i++;
- if(i>=255)
- {
- i=0;
- Buzzer_Beep();
- }
- DAC5571WriteData(i);
- DelayMS(10);
- printf("i=%d\n",i);
- }
- }
复制代码
四、执行结果
由于DAC5571使用单电源供电,所有输出的模拟电压只能是正电压,供电的电压是5V,最高输出5V电压,输入0x00~0xff的数据转成0~5V的电压
使用上面的程序DAC_AOUT输出电压波形如下:
串口输出数据不断的计数
|
|
|
|
|
|
|
|
|