目录

一、双DAC通道转换

二、不使用波形发生器的独立触发

三、使用相同LFSR的独立触发

四、使用不同LFSR的独立触发

五、产生相同三角波的独立触发

六、产生不同三角波的独立触发

七、同时软件启动

八、不使用波形发生器的同时触发

九、使用相同LFSR的同时触发

十、使用不同LFSR的同时触发

十一、使用相同三角波发生器的同时触发

十二、使用不同三角波发生器的同时触发


一、双DAC通道转换

        在需要2个DAC同时工作的情况下,为了更有效地利用总线带宽, DAC集成了3个供双DAC模式使用的寄存器: DHR8RD、 DHR12RD和DHR12LD,只需要访问一个寄存器即可完成同时驱动2个DAC通道的操作

        对于双DAC通道转换和这些专用寄存器,共有11种转换模式可用。这些转换模式在只使用一个DAC通道的情况下,仍然可通过独立的DHRx寄存器操作。

二、不使用波形发生器的独立触发

按照下列顺序设置DAC工作在此转换模式:

  • 分别设置2个DAC通道的触发使能位TEN1和TEN2为’1’;
  • 通过设置TSEL1[2:0]和 TSEL2[2:0]位为不同值,分别配置2个DAC通道的不同触发源;
  • 将双DAC通道转换数据装入所需的DHR寄存器(DHR12RD、 DHR12LD 或DHR8RD)。

        当发生DAC通道1触发事件时, (延迟3个APB1时钟周期后)寄存器DHR1的值传入寄存器DAC_DOR1。

        当发生DAC通道2触发事件时, (延迟3个APB1时钟周期后)寄存器DHR2的值传入寄存器DAC_DOR2。

三、使用相同LFSR的独立触发

按照下列顺序设置DAC工作在此转换模式:

  • 分别设置2个DAC通道的触发使能位TEN1和TEN2为’1’;
  • 通过设置TSEL1[2:0]和 TSEL2[2:0]位为不同值,分别配置2个DAC通道的不同触发源;
  • 设置2个DAC通道的WAVEx[1:0]位为”01”,并设置MAMPx[3:0]为相同的LFSR屏蔽值
  • 将双DAC通道转换数据装入所需的DHR寄存器(DHR12RD、 DHR12LD 或DHR8RD)。

        当发生DAC通道1触发事件时,具有相同屏蔽的LFSR1计数器值与DHR1寄存器数值相加, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR1,然后更新LFSR1计数器。

        当发生DAC通道2触发事件时,具有相同屏蔽的LFSR2计数器值与DHR2寄存器数值相加, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR2,然后更新LFSR2计数器。

四、使用不同LFSR的独立触发

按照下列顺序设置DAC工作在此转换模式:

  • 分别设置2个DAC通道的触发使能位TEN1和TEN2为’1’;
  • 通过设置TSEL1[2:0]和 TSEL2[2:0]位为不同值,分别配置2个DAC通道的不同触发源;
  • 设置2个DAC通道的WAVEx[1:0]位为”01”,并设置MAMPx[3:0]为不同的LFSR屏蔽值
  • 将双DAC通道转换数据装入所需的DHR寄存器(DHR12RD、 DHR12LD 或DHR8RD)。

        当发生DAC通道1触发事件时,按照MAMP1[3:0]所设屏蔽的LFSR1计数器值与DHR1寄存器数值相加, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR1,然后更新LFSR1计数器。

        当发生DAC通道2触发事件时,按照MAMP1[3:0]所设屏蔽的LFSR2计数器值与DHR2寄存器数值相加, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR2,然后更新LFSR2计数器。

五、产生相同三角波的独立触发

按照下列顺序设置DAC工作在此转换模式:

  • 分别设置2个DAC通道的触发使能位TEN1和TEN2为’1’;
  • 通过设置TSEL1[2:0]和 TSEL2[2:0]位为不同值,分别配置2个DAC通道的不同触发源;
  • 设置2个DAC通道的WAVEx[1:0]位为”1x”,并设MAMPx[3:0]为相同的三角波幅值
  • 将双DAC通道转换数据装入所需的DHR寄存器(DHR12RD、 DHR12LD 或DHR8RD)。

        当发生DAC通道1触发事件时,相同的三角波幅值加上DHR1寄存器的值, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR1,然后更新DAC通道1三角波计数器。

        当发生DAC通道2触发事件时,相同的三角波幅值加上DHR2寄存器的值, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR2,然后更新DAC通道2三角波计数器。

六、产生不同三角波的独立触发

按照下列顺序设置DAC工作在此转换模式:

  • 分别设置2个DAC通道的触发使能位TEN1和TEN2为’1’;
  • 通过设置TSEL1[2:0]和 TSEL2[2:0]位为不同值,分别配置2个DAC通道的不同触发源;
  • 设置2个DAC通道的WAVEx[1:0]位为”1x”,并设MAMPx[3:0]为不同的三角波幅值
  • 将双DAC通道转换数据装入所需的DHR寄存器(DHR12RD、 DHR12LD 或DHR8RD)。

        当发生DAC通道1触发事件时,MAMP1[3:0]所设的三角波幅值加上DHR1寄存器的值, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR1,然后更新DAC通道1三角波计数器。

        当发生DAC通道2触发事件时,MAMP2[3:0]所设的三角波幅值加上DHR2寄存器的值, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR2,然后更新DAC通道2三角波计数器。

七、同时软件启动

按照下列过程设置DAC工作在此转换模式:

  • 将双DAC通道转换数据装入所需的DHR寄存器(DHR12RD、 DHR12LD 或DHR8RD)。

        在此配置下,一个APB1时钟周期后, DHR1和DHR2寄存器的数值即被分别传入DAC_DOR1和DAC_DOR2寄存器

八、不使用波形发生器的同时触发

按照下列顺序设置DAC工作在此转换模式:

  • 分别设置2个DAC通道的触发使能位TEN1和TEN2为’1’;
  • 通过设置TSEL1[2:0]和 TSEL2[2:0]位为相同值,分别配置2个DAC通道使用相同触发源;
  • 将双DAC通道转换数据装入所需的DHR寄存器(DHR12RD、 DHR12LD 或DHR8RD)。

        当发生触发事件时,(延迟3个APB1时钟周期后)DHR1和DHR2寄存器的数值分别传入DAC_DOR1和DAC_DOR2寄存器。

九、使用相同LFSR的同时触发

按照下列顺序设置DAC工作在此转换模式:

  • 分别设置2个DAC通道的触发使能位TEN1和TEN2为’1’;
  • 通过设置TSEL1[2:0]和 TSEL2[2:0]位为相同值,分别配置2个DAC通道使用相同触发源;
  • 设置2个DAC通道的WAVEx[1:0]位为”01”,并设MAMPx[3:0]为相同的LFSR屏蔽值;
  • 将双DAC通道转换数据装入所需的DHR寄存器(DHR12RD、 DHR12LD 或DHR8RD);

        当发生触发事件时, MAMP1[3:0]所设屏蔽的LFSR1计数器值与DHR1寄存器的数值相加, (延迟3个APB1时钟周期后)结果传入DAC_DOR1寄存器,然后更新LFSR1计数器。

        同样, MAMP1[3:0]所设屏蔽的LFSR2计数器值与DHR2寄存器的数值相加, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR2,然后更新LFSR2计数器。

十、使用不同LFSR的同时触发

按照下列顺序设置DAC工作在此转换模式:

  • 分别设置2个DAC通道的触发使能位TEN1和TEN2为’1’;
  • 通过设置TSEL1[2:0]和 TSEL2[2:0]位为相同值,分别配置2个DAC通道使用相同触发源;
  • 设置2个DAC通道的WAVEx[1:0]位为’01’,并设MAMPx[3:0]为不同的LFSR屏蔽值;
  • 将双DAC通道转换数据装入所需的DHR寄存器(DHR12RD、 DHR12LD 或DHR8RD)。

        当发生触发事件时,具有相同屏蔽的LFSR1计数器值与DHR1寄存器数值相加, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR1,然后更新LFSR1计数器。

        同时,具有相同屏蔽的LFSR2计数器值与DHR2寄存器数值相加, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR2,然后更新LFSR2计数器。

十一、使用相同三角波发生器的同时触发

按照下列顺序设置DAC工作在此转换模式:

  • 分别设置2个DAC通道的触发使能位TEN1和TEN2为’1’;
  • 通过设置TSEL1[2:0]和 TSEL2[2:0]位为相同值,分别配置2个DAC通道使用相同触发源;
  • 设置2个DAC通道的WAVEx[1:0]位为’1x’,并设MAMPx[3:0]为相同的三角波幅值;
  • 将双DAC通道转换数据装入所需的DHR寄存器(DHR12RD、 DHR12LD 或DHR8RD)。

        当发生触发事件时,相同的三角波幅值与DHR1寄存器数值相加, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR1,然后更新LFSR1计数器。

        同时,相同的三角波幅值与DHR2寄存器数值相加, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR2,然后更新LFSR2计数器。

十二、使用不同三角波发生器的同时触发

按照下列顺序设置DAC工作在此转换模式:

  • 分别设置2个DAC通道的触发使能位TEN1和TEN2为’1’:
  • 通过设置TSEL1[2:0]和 TSEL2[2:0]位为相同值,分别配置2个DAC通道使用相同触发源。
  • 设置2个DAC通道的WAVEx[1:0]位为’1x’,并设MAMPx[3:0]为不同的三角波幅值。
  • 将双DAC通道转换数据装入所需的DHR寄存器(DHR12RD、 DHR12LD 或DHR8RD)。

        当发生触发事件时, MAMP1[3:0]所设的三角波幅值与DHR1寄存器数值相加, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR1,然后更新LFSR1计数器。

        同时, MAMP2[3:0]所设的三角波幅值与DHR2寄存器数值相加, (延迟3个APB1时钟周期后)结果传入寄存器DAC_DOR2,然后更新LFSR2计数器。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐