diff options
| author | Giovanni Di Sirio <gdisirio@gmail.com> | 2018-11-15 17:04:05 +0000 | 
|---|---|---|
| committer | Giovanni Di Sirio <gdisirio@gmail.com> | 2018-11-15 17:04:05 +0000 | 
| commit | db6f9df412a254fc12cee430830d8e79e7f36409 (patch) | |
| tree | b36b058ef636c3d02f8d5cf77c08b83193f9529a /os | |
| parent | c0da3c4f42dd944a30199744679442cf2ef7b633 (diff) | |
| download | ChibiOS-db6f9df412a254fc12cee430830d8e79e7f36409.tar.gz ChibiOS-db6f9df412a254fc12cee430830d8e79e7f36409.tar.bz2 ChibiOS-db6f9df412a254fc12cee430830d8e79e7f36409.zip  | |
DAC driver now working with L4+.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12431 110e8d01-0319-4d1e-a829-52ad28d1bb01
Diffstat (limited to 'os')
| -rw-r--r-- | os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.c | 21 | ||||
| -rw-r--r-- | os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.h | 6 | 
2 files changed, 14 insertions, 13 deletions
diff --git a/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.c b/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.c index d71882b26..0b2f5d2af 100644 --- a/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.c +++ b/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.c @@ -89,6 +89,7 @@ static const dacparams_t dma1_ch1_params = {    .regmask      = 0xFFFF0000U,
  #if STM32_DMA_SUPPORTS_DMAMUX
    .dma          = STM32_DMA_STREAM(STM32_DAC_DAC1_CH1_DMA_CHANNEL),
 +  .peripheral   = STM32_DMAMUX1_DAC1_CH1,
  #else
    .dma          = STM32_DMA_STREAM(STM32_DAC_DAC1_CH1_DMA_STREAM),
  #endif
 @@ -109,6 +110,7 @@ static const dacparams_t dma1_ch2_params = {    .regmask      = 0x0000FFFFU,
  #if STM32_DMA_SUPPORTS_DMAMUX
    .dma          = STM32_DMA_STREAM(STM32_DAC_DAC1_CH2_DMA_CHANNEL),
 +  .peripheral   = STM32_DMAMUX1_DAC1_CH2,
  #else
    .dma          = STM32_DMA_STREAM(STM32_DAC_DAC1_CH2_DMA_STREAM),
  #endif
 @@ -129,6 +131,7 @@ static const dacparams_t dma2_ch1_params = {    .regmask      = 0xFFFF0000U,
  #if STM32_DMA_SUPPORTS_DMAMUX
    .dma          = STM32_DMA_STREAM(STM32_DAC_DAC2_CH1_DMA_CHANNEL),
 +  .peripheral   = STM32_DMAMUX1_DAC2_CH1,
  #else
    .dma          = STM32_DMA_STREAM(STM32_DAC_DAC2_CH1_DMA_STREAM),
  #endif
 @@ -149,6 +152,7 @@ static const dacparams_t dma1_ch2_params = {    .regmask      = 0x0000FFFFU,
  #if STM32_DMA_SUPPORTS_DMAMUX
    .dma          = STM32_DMA_STREAM(STM32_DAC_DAC2_CH2_DMA_CHANNEL),
 +  .peripheral   = STM32_DMAMUX1_DAC2_CH2,
  #else
    .dma          = STM32_DMA_STREAM(STM32_DAC_DAC2_CH2_DMA_STREAM),
  #endif
 @@ -243,18 +247,12 @@ void dac_lld_start(DACDriver *dacp) {  #if STM32_DAC_USE_DAC1_CH1
      if (&DACD1 == dacp) {
        rccEnableDAC1(true);
 -#if STM32_DMA_SUPPORTS_DMAMUX
 -      dmaSetRequestSource(dacp->params->dma, STM32_DMAMUX1_DAC1_CH1);
 -#endif
      }
  #endif
  #if STM32_DAC_USE_DAC1_CH2
      if (&DACD2 == dacp) {
        rccEnableDAC1(true);
 -#if STM32_DMA_SUPPORTS_DMAMUX
 -      dmaSetRequestSource(dacp->params->dma, STM32_DMAMUX1_DAC1_CH2);
 -#endif
        channel = 1;
      }
  #endif
 @@ -262,18 +260,12 @@ void dac_lld_start(DACDriver *dacp) {  #if STM32_DAC_USE_DAC2_CH1
      if (&DACD3 == dacp) {
        rccEnableDAC2(true);
 -#if STM32_DMA_SUPPORTS_DMAMUX
 -      dmaSetRequestSource(dacp->params->dma, STM32_DMAMUX1_DAC2_CH1);
 -#endif
      }
  #endif
  #if STM32_DAC_USE_DAC2_CH2
      if (&DACD4 == dacp) {
        rccEnableDAC2(true);
 -#if STM32_DMA_SUPPORTS_DMAMUX
 -      dmaSetRequestSource(dacp->params->dma, STM32_DMAMUX1_DAC2_CH2);
 -#endif
        channel = 1;
      }
  #endif
 @@ -445,8 +437,11 @@ void dac_lld_start_conversion(DACDriver *dacp) {                               (stm32_dmaisr_t)dac_lld_serve_tx_interrupt,
                               (void *)dacp);
    osalDbgAssert(!b, "stream already allocated");
 +#if STM32_DMA_SUPPORTS_DMAMUX
 +  dmaSetRequestSource(dacp->params->dma, dacp->params->peripheral);
 +#endif
 -  /* DMA settings depend on the chosed DAC mode.*/
 +  /* DMA settings depend on the chosen DAC mode.*/
    switch (dacp->config->datamode) {
    /* Sets the DAC data register */
    case DAC_DHRM_12BIT_RIGHT:
 diff --git a/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.h b/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.h index e5500a8f3..a3d29956a 100644 --- a/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.h +++ b/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.h @@ -318,6 +318,12 @@ typedef struct {     * @brief   DMA channel IRQ priority.
     */
    uint32_t                  dmairqprio;
 +#if (STM32_DMA_SUPPORTS_DMAMUX == TRUE) || defined(__DOXYGEN__)
 +  /**
 +   * @brief   DMAMUX peripheral selector.
 +   */
 +  uint32_t                  peripheral;
 +#endif
  } dacparams_t;
  /**
  | 
