文章摘要

硬件平台: TMS320F28377D
编译器版本: CCS V7.2


寄存器说明:

DACREV:修正寄存器(DAC Revision Register)

bit[15:8] 保留
bit[7:0]  修正值(只读)

这个寄存器基本可以忽略掉了

DACCTL:控制寄存器(DAC Control Register)

bit[15:8] 保留
bit[7:4]  SYNCSEL[3:0] 选择PWM同步更新通道(当PWMn同步更新DAC值)
bit[3]    保留

bit[2]    LOADMODE, 选择何时将影子寄存器的值更新至当前寄存器
0 - 下一个系统时钟加载; 1 - PWM同步更新(与SYNCSEL[3:0] 配合)

bit[1]    保留

bit[0]    基准选择
0 - VDAC/VSSA(模似电源); 1 - VREFHI/VREFLO(参考引脚)

DACVALA 当前值寄存器(DAC Value Register - Active)
该寄存器的值决定当前DAC输出


void hal_dac_init(void)
{
    EALLOW;
    DacaRegs.DACCTL.bit.DACREFSEL = REFERENCE;  // 基准设置
    DacaRegs.DACOUTEN.bit.DACOUTEN = 1;         // 使能DAC输出
    DacaRegs.DACVALS.all = 0;                   // 影子寄存器值
    DELAY_US(10);     // 等待DAC模块上电(重要)
    EDIS;
}

后记:

这里主要想吐槽一下某公司,本来当时有两家开发板供选择,经过多方面比较,最终选择了南京某公司的开发板,收货后发现资料并不全,例程是TI官方提供的东西,连例程的文档都没写全,也没有一个功能测试的DEMO。当然了,基于这个芯片比较新,也不跟他们计较了;

后来发现寄过来的串口线居然是坏的,丫的发货前根本都没测试过,跟他们客服说了后,还算行答应补发一根过来;

结果他们还没发货,测试中又发现跑基本的DAC例程居然无输出,本来DAC算是比较简单的一个东西了,折腾了很久还是无果,于是问客户技术的电话,居然死都不跟说,尼玛,技术支持的电话居然也那么机密,直接说不提供技术支持好了,然后一直在旺旺上联系,好吧互联网+时代嘛,我也认了,沟通的结果我觉得是板子有问题,就协商换货,客服也同意了,我就顺便把串口线也一块寄过去了。

他们收到板子的时候,已经是周五了,晚上的时候收到客服的旺旺的信息,说是板子测试没问题,串口线有问题,给我换了串口线,板子又寄回来了,我让他们烧一个可以输入的代码进去,他们说已经寄出了,而且下班了,因为刚揽收嘛,应该是可以把快递要回来的,他们就装死,周六周日果然不上班,也不回信息;

周一早上我就又发信息给他们,他们一直强调说啥都改板子没有任何问题,让我收到板子再说,果然不一会快递就把东西送过来了,我又把例程烧进去,居然有输出了~~~~,这个理由谁也接受不了,你要是说维修或者换货我都可以接受,但尼玛说你啥都没改,同样的代码烧进去就又好,这尼玛不科学啊!

于是客服又改口说,给我换了货,终于给了我一个技术支持的电话,说是他处理的,于是我就打过去问问题,这货特么的又不承认了,一直强调没问题,他啥都没动,尼玛,你家的开发板是打骰子工作的么,一三五工作,二四六休息,还是需要先请你先开个光????什么玩艺嘛~~~~

然后再测试串口线,依然是坏的,再打电话沟通,玛蛋,一直说劳资的方法不对,劳资玩串口的时候,你特么还在穿开档裤呢?各种方法证明给他看,最后告诉我,貌似发错了,把我退回去那个线又寄回来了,心里顿时一万只羊驼呼啸而过......