dac104s085芯片驱动讲解
程序员文章站
2022-06-04 15:02:45
...
dac104s085芯片驱动讲解
dac104s085芯片时10位的4路dac数据输出芯片
一般应用于将数字信号转换为模拟信号,通常用于波形输出
驱动分析
1:拿到芯片手册一般做的时浏览芯片手册,把重要信息标志:一般就是涉及到与主控芯片时有几种通信方式
各种通信方式的频率,位数,校验,通信时序,通信波形等
我们从手册上得知,此芯片适合spi,Qspi通信方式,频率可以最大达到40Mhz左右,最低要求25Mhz,基准电压要求2.7到3.6V之间,是具有地址控制位的10位DAC芯片(最低两位不用)
2:spi通信时序:
从图中可以看出芯片驱动的方式是spi,然后对应的是在第一个时钟采集,下降沿有效,对应位cpol=0;cpha =1
3:看芯片的16位数据中各自代表什么
从图中可以看到,芯片16位中最高4位为地址位和通道选择位
A1 A0 代表dac通道:
0 0 DACA
0 1 DACB
1 0 DACC
1 1 DACD
P1 P0 代表是否输出
0 0 向特定的通道写值但不输出
0 1 向特定的通道写值并输出
1 0 向所有的通道写值并输出
1 1 关闭所有的通道输出
4:在stm32中的使用
void spicontrol(void)
{
spi_parameter_struct spi_init_struct;
spi_init_struct.frame_size = SPI_FRAMESIZE_16BIT;
spi_init_struct.prescale = SPI_PSC_4; //主控芯片120M。所以这里是30M
spi_init_struct.clock_polarity_phase = SPI_CK_PL_LOW_PH_1EDGE;
spi_init_struct.endian = SPI_ENDIAN_MSB;
spi_init_struct.trans_mode = SPI_TRANSMODE_FULLDUPLEX;
spi_init_struct.device_mode = SPI_MASTER;
spi_init_struct.nss = SPI_NSS_SOFT;
spi_init(spi_periph, &spi_init_struct);
spi_crc_off(spi_periph);
spi_enable(spi_periph);
}
5:总结,根据上述知识便可控制dac输出了
例子:
dac104s085_write_data(data,length);//向dac通道输出数值
上一篇: Java数据结构和算法-冒泡排序算法
推荐阅读
-
n卡驱动设置提高性能(讲解nvidia显卡游戏最佳设置)
-
n卡驱动设置提高性能(讲解nvidia显卡游戏最佳设置)
-
插上闪存不识别 安装VIA芯片组USB驱动补丁
-
VK2C21 NSOP16 SOP20 SOP24/28 是一款存储器映射和多功能 LCD液晶控制驱动芯片,取代兼容HT16C21
-
RTX 3060更换芯片:打压挖矿、破解驱动失效
-
显示驱动芯片缺货、涨价 京东方回应:对我们影响不大
-
AMD芯片组驱动低调修复关键安全漏洞:影响所有锐龙 细节保密
-
2020见!Intel Xe独显芯片已完工:正全力调试软件驱动
-
华为OLED驱动芯片完成试产:最快年底量产交付
-
OLED驱动芯片SSD1306解读