回答

收藏

NXP S08P-LITE-V3开发板试用 7、DAC5571输出模拟电压测试

其他 其他 3805 人阅读 | 0 人回复 | 2018-12-09



    测试DAC5571输出模拟电压,通过变量计数,不断调整输出电压,具体步骤如下:


   一、硬件电路
        DAC芯片,通过I2C协议,将数字信号转换成模拟信号。
        

    二、DAC5571手册部分
        
        2.1、内部框图:
        

        2.2、I2C协议
        

   
    三、软件部分


    3.1、MC90S08PT60 I2C结构图:
        

    3.2、有关的寄存器
        

        
    3.3、DAC5571初始化
   
  1. void DAC5571_Init(void)
  2. {
  3.     I2C_F  = 0x1D;   // 100K baud rate: bus 16M / SCL divider 160   
  4.            I2C_C1 = I2C_C1_IICEN_MASK | I2C_C1_MST_MASK | I2C_C1_TX_MASK;   
  5. }
复制代码
   3.4、DAC5571WriteData  写数据   
  1. void DAC5571WriteData(unsigned char u8Data)
  2. {
  3.     /* send data to slave */
  4.     IIC_StartTransmission(DAC5571_I2C_ADDRESS, MWSR);
  5.     i2c_Wait();

  6.     /* Send I2C address */
  7.     I2C_D = u8Data>>4;
  8.     i2c_Wait();

  9.     /* Send data */
  10.     I2C_D = u8Data<<4;
  11.     i2c_Wait();

  12.     i2c_Stop();

  13.     delay();
  14. }
复制代码
   3.5、主程序
  1. void main(void)
  2. {
  3.     uint8_t i = 0;


  4.     MTIM1_Init();
  5.     Buzzer_Init();
  6.     Buzzer_Test();
  7.     while (1)
  8.     {
  9.             i++;
  10.             if(i>=255)
  11.             {
  12.                     i=0;
  13.                     Buzzer_Beep();
  14.             }
  15.             DAC5571WriteData(i);
  16.             DelayMS(10);
  17.             printf("i=%d\n",i);
  18.     }
  19. }
复制代码


    四、执行结果


    由于DAC5571使用单电源供电,所有输出的模拟电压只能是正电压,供电的电压是5V,最高输出5V电压,输入0x00~0xff的数据转成0~5V的电压
    使用上面的程序DAC_AOUT输出电压波形如下:
   

    串口输出数据不断的计数
   

   


















分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条