完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
该芯片可以通过SPI对其进行操作。具备12bit的能力。
经过实测,该芯片在有基准电源的情况下,输出准确度非常高。 示例代码如下: 运行中代码为: void dac_lld_update(uint8_t which_out, uint8_t which_action, uint16_t voltage_in_mv){ static struct DAC124S085_REG_tag dac_spi_last_command; uint16_t tmp16; uint32_t tmp32; tmp32 = voltage_in_mv*0xFFF; tmp16 = tmp32/4096; /* 4096 is the ref voltage. */ switch(which_out) { case DAC_DAC_A: // dac_spi_command.U.B.reg_addr = DAC_DAC_A; break; case DAC_DAC_B: dac_spi_command.U.B.reg_addr = DAC_DAC_B; break; case DAC_DAC_C: dac_spi_command.U.B.reg_addr = DAC_DAC_C; break; case DAC_DAC_D: dac_spi_command.U.B.reg_addr = DAC_DAC_D; break; default: return; } switch(which_action) { case DAC_WRITE_SPECIFIC_DO_NOT_UPDATE: dac_spi_command.U.B.action = DAC_WRITE_SPECIFIC_DO_NOT_UPDATE; break; case DAC_WRITE_SPECIFIC_AND_UPDATE: dac_spi_command.U.B.action = DAC_WRITE_SPECIFIC_AND_UPDATE; break; case DAC_WRITE_ALL_AND_UPDATE: dac_spi_command.U.B.action = DAC_WRITE_ALL_AND_UPDATE; break; case DAC_POWER_DOWN: dac_spi_command.U.B.action = DAC_POWER_DOWN; break; default: dac_spi_command.U.B.action = DAC_WRITE_SPECIFIC_AND_UPDATE; } dac_spi_command.U.B.raw_value = tmp16; if(dac_spi_command.U.R != dac_spi_last_command.U.R) { DSPI_Send(1, 0b00000001,dac_spi_command.U.R); /* semd spi command */ } dac_spi_last_command.U.R = dac_spi_command.U.R;} 注: 1、适用于参考电压为4096v的情况。 2、SPI代码本文未提供。具体参数见该dac芯片的手册和主控芯片的参考手册。 |
|
|
|
只有小组成员才能发言,加入小组>>
3919个成员聚集在这个小组
加入小组3140 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4108 浏览 1 评论
4106 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 17:14 , Processed in 0.510310 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191