stm32: dac: doxygenize the registers and values

Not 100% complete, but far closer, mostly just tagging the existing
information properly to get it included.
This commit is contained in:
Karl Palsson 2021-01-24 22:08:20 +00:00
parent 03cfd6b1ac
commit 4fe5103851
3 changed files with 116 additions and 71 deletions

View File

@ -39,45 +39,46 @@ specific memorymap.h header before including this header file.*/
#ifndef LIBOPENCM3_DAC_COMMON_ALL_H
#define LIBOPENCM3_DAC_COMMON_ALL_H
/* --- DAC registers ------------------------------------------------------- */
/**@defgroup dac_registers DAC Registers
@{*/
/* DAC control register (DAC_CR) */
/** DAC control register (DAC_CR) */
#define DAC_CR(dac) MMIO32((dac) + 0x00)
/* DAC software trigger register (DAC_SWTRIGR) */
/** DAC software trigger register (DAC_SWTRIGR) */
#define DAC_SWTRIGR(dac) MMIO32((dac) + 0x04)
/* DAC channel1 12-bit right-aligned data holding register (DAC_DHR12R1) */
/** DAC channel1 12-bit right-aligned data holding register (DAC_DHR12R1) */
#define DAC_DHR12R1(dac) MMIO32((dac) + 0x08)
/* DAC channel1 12-bit left aligned data holding register (DAC_DHR12L1) */
/** DAC channel1 12-bit left aligned data holding register (DAC_DHR12L1) */
#define DAC_DHR12L1(dac) MMIO32((dac) + 0x0C)
/* DAC channel1 8-bit right aligned data holding register (DAC_DHR8R1) */
/** DAC channel1 8-bit right aligned data holding register (DAC_DHR8R1) */
#define DAC_DHR8R1(dac) MMIO32((dac) + 0x10)
/* DAC channel2 12-bit right aligned data holding register (DAC_DHR12R2) */
/** DAC channel2 12-bit right aligned data holding register (DAC_DHR12R2) */
#define DAC_DHR12R2(dac) MMIO32((dac) + 0x14)
/* DAC channel2 12-bit left aligned data holding register (DAC_DHR12L2) */
/** DAC channel2 12-bit left aligned data holding register (DAC_DHR12L2) */
#define DAC_DHR12L2(dac) MMIO32((dac) + 0x18)
/* DAC channel2 8-bit right-aligned data holding register (DAC_DHR8R2) */
/** DAC channel2 8-bit right-aligned data holding register (DAC_DHR8R2) */
#define DAC_DHR8R2(dac) MMIO32((dac) + 0x1C)
/* Dual DAC 12-bit right-aligned data holding register (DAC_DHR12RD) */
/** Dual DAC 12-bit right-aligned data holding register (DAC_DHR12RD) */
#define DAC_DHR12RD(dac) MMIO32((dac) + 0x20)
/* DUAL DAC 12-bit left aligned data holding register (DAC_DHR12LD) */
/** DUAL DAC 12-bit left aligned data holding register (DAC_DHR12LD) */
#define DAC_DHR12LD(dac) MMIO32((dac) + 0x24)
/* DUAL DAC 8-bit right aligned data holding register (DAC_DHR8RD) */
/** DUAL DAC 8-bit right aligned data holding register (DAC_DHR8RD) */
#define DAC_DHR8RD(dac) MMIO32((dac) + 0x28)
/* DAC channel1 data output register (DAC_DOR1) */
/** DAC channel1 data output register (DAC_DOR1) */
#define DAC_DOR1(dac) MMIO32((dac) + 0x2C)
/* DAC channel2 data output register (DAC_DOR2) */
/** DAC channel2 data output register (DAC_DOR2) */
#define DAC_DOR2(dac) MMIO32((dac) + 0x30)
/** DAC status register.
@ -85,52 +86,63 @@ specific memorymap.h header before including this header file.*/
*/
#define DAC_SR(dac) MMIO32((dac) + 0x34)
/* --- DAC_CR values ------------------------------------------------------- */
/**@}*/
/* DMAUDRIE2: DAC channel2 DMA underrun interrupt enable */
/* doesn't exist in most members of the STM32F1 family */
/** @defgroup dac_cr_values DAC_CR values
* @{
*/
/** DMAUDRIE2: DAC channel2 DMA underrun interrupt enable
* @note doesn't exist in most members of the STM32F1 family
*/
#define DAC_CR_DMAUDRIE2 (1 << 29)
/* DMAEN2: DAC channel2 DMA enable */
/** DMAEN2: DAC channel2 DMA enable */
#define DAC_CR_DMAEN2 (1 << 28)
/* MAMP2[3:0]: DAC channel2 mask/amplitude selector */
/** MAMP2[3:0]: DAC channel2 mask/amplitude selector */
#define DAC_CR_MAMP2_SHIFT 24
/* WAVE2[1:0]: DAC channel2 noise/triangle wave generation enable */
/** WAVE2[1:0]: DAC channel2 noise/triangle wave generation enable */
#define DAC_CR_WAVE2_SHIFT 22
#define DAC_CR_WAVE2_MASK 0x3
/* EN2: DAC channel2 enable */
/** EN2: DAC channel2 enable */
#define DAC_CR_EN2 (1 << 16)
/* DMAUDRIE1: DAC channel1 DMA underrun interrupt enable */
/* doesn't exist in most members of the STM32F1 family */
/** DMAUDRIE1: DAC channel1 DMA underrun interrupt enable
* @note doesn't exist in most members of the STM32F1 family
*/
#define DAC_CR_DMAUDRIE1 (1 << 13)
/* DMAEN1: DAC channel1 DMA enable */
/** DMAEN1: DAC channel1 DMA enable */
#define DAC_CR_DMAEN1 (1 << 12)
/* MAMP1[3:0]: DAC channel1 mask/amplitude selector */
/** MAMP1[3:0]: DAC channel1 mask/amplitude selector */
#define DAC_CR_MAMP1_SHIFT 8
/* WAVEn[1:0]: DAC channel1 noise/triangle wave generation enable */
/** WAVEn[1:0]: DAC channel1 noise/triangle wave generation enable */
#define DAC_CR_WAVE1_SHIFT 6
#define DAC_CR_WAVE1_MASK 0x3
/* EN1: DAC channel1 enable */
/** EN1: DAC channel1 enable */
#define DAC_CR_EN1 (1 << 0)
/**@}*/
/* --- DAC_SWTRIGR values -------------------------------------------------- */
/* SWTRIG2: DAC channel2 software trigger */
/**@defgroup dac_swtrigr_values DAC_SWTRIGR Values
* @{
*/
/** SWTRIG2: DAC channel2 software trigger */
#define DAC_SWTRIGR_SWTRIG2 (1 << 1)
/* SWTRIG1: DAC channel1 software trigger */
/** SWTRIG1: DAC channel1 software trigger */
#define DAC_SWTRIGR_SWTRIG1 (1 << 0)
/**@}*/
/**@defgroup dac_dhrxxx_values DAC_DHRxxx Values
* @{
*/
/* --- DAC_DHR12R1 values -------------------------------------------------- */
#define DAC_DHR12R1_DACC1DHR_SHIFT 0
#define DAC_DHR12R1_DACC1DHR_MASK 0xFFF
@ -180,8 +192,12 @@ specific memorymap.h header before including this header file.*/
#define DAC_DHR8RD_DACC2DHR_MSK 0xFF
#define DAC_DHR8RD_DACC1DHR_SHIFT 0
#define DAC_DHR8RD_DACC1DHR_MSK 0xFF
/**@}*/
/**@defgroup dac_dorx_values DAC_DORx Values
* @{
*/
/* --- DAC_DOR1 values ----------------------------------------------------- */
#define DAC_DOR1_DACC1DOR_SHIFT 0
#define DAC_DOR1_DACC1DOR_MSK 0xFFF
@ -191,20 +207,27 @@ specific memorymap.h header before including this header file.*/
#define DAC_DOR2_DACC2DOR_SHIFT 0
#define DAC_DOR2_DACC2DOR_MSK 0xFFF
/* --- DAC_SR values ------------------------------------------------------- */
/**@}*/
/**@defgroup dac_sr_values DAC_SR Values
* @{
*/
/** DAC channel 1 DMA underrun flag */
#define DAC_SR_DMAUDR1 (1 << 13)
/** DAC channel 2 DMA underrun flag */
#define DAC_SR_DMAUDR2 (1 << 29)
/**@}*/
/* --- Function prototypes ------------------------------------------------- */
/** DAC channel identifier */
/** @defgroup dac_channel_id DAC Channel Identifier
* @{
*/
#define DAC_CHANNEL1 (1 << 0)
#define DAC_CHANNEL2 (1 << 1)
#define DAC_CHANNEL_BOTH (DAC_CHANNEL1 | DAC_CHANNEL2)
/**@}*/
/** DAC data size (8/12 bits), alignment (right/left) */
enum dac_align {
@ -213,7 +236,7 @@ enum dac_align {
DAC_ALIGN_LEFT12,
};
/* DAC waveform generation options. */
/** DAC waveform generation options. */
enum dac_wave {
DAC_WAVE_DISABLE = 0,
DAC_WAVE_NOISE = 1,

View File

@ -38,9 +38,11 @@ specific memorymap.h header before including this header file.*/
#include <libopencm3/stm32/common/dac_common_all.h>
/* --- DAC_CR values ------------------------------------------------------- */
/**@addtogroup dac_cr_values
* @{
*/
/* TSEL2[2:0]: DAC channel2 trigger selection */
/** TSEL2[2:0]: DAC channel2 trigger selection */
#define DAC_CR_TSEL2_SHIFT 19
/** @defgroup dac_trig2_sel DAC Channel 2 Trigger Source Selection
@ingroup dac_defines
@ -118,6 +120,7 @@ specific memorymap.h header before including this header file.*/
/* BOFF1: DAC channel1 output buffer disable */
#define DAC_CR_BOFF1 (1 << 1)
/**@}*/
/* --- Function prototypes ------------------------------------------------- */

View File

@ -38,38 +38,42 @@ specific memorymap.h header before including this header file.*/
#include <libopencm3/stm32/common/dac_common_all.h>
/* --- DAC registers ------------------------------------------------------- */
/**@addtogroup dac_registers
@{*/
/* DAC calibration control register (DAC_CCR) */
/** DAC calibration control register (DAC_CCR) */
#define DAC_CCR(dac) MMIO32((dac) + 0x38)
/* DAC mode control register (DAC_MCR) */
/** DAC mode control register (DAC_MCR) */
#define DAC_MCR(dac) MMIO32((dac) + 0x3C)
/* DAC channel1 sample and hold sample time register (DAC_SHSR1) */
/** DAC channel1 sample and hold sample time register (DAC_SHSR1) */
#define DAC_SHSR1(dac) MMIO32((dac) + 0x40)
/* DAC channel2 sample and hold sample time register (DAC_SHSR2) */
/** DAC channel2 sample and hold sample time register (DAC_SHSR2) */
#define DAC_SHSR2(dac) MMIO32((dac) + 0x44)
/* DAC sample and hold time register (DAC_SHHR) */
/** DAC sample and hold time register (DAC_SHHR) */
#define DAC_SHHR(dac) MMIO32((dac) + 0x48)
/* DAC sample and hold refresh time register (DAC_SHRR) */
/** DAC sample and hold refresh time register (DAC_SHRR) */
#define DAC_SHRR(dac) MMIO32((dac) + 0x4C)
/* DAC channel1 sawtooth register (DAC_STR1) */
/** DAC channel1 sawtooth register (DAC_STR1) */
#define DAC_STR1(dac) MMIO32((dac) + 0x58)
/* DAC channel2 sawtooth register (DAC_STR2) */
/** DAC channel2 sawtooth register (DAC_STR2) */
#define DAC_STR2(dac) MMIO32((dac) + 0x5C)
/* DAC sawtooth mode register (DAC_STMODR) */
/** DAC sawtooth mode register (DAC_STMODR) */
#define DAC_STMODR(dac) MMIO32((dac) + 0x60)
/**@}*/
/* --- DAC_CR values ------------------------------------------------------- */
/**@addtogroup dac_cr_values
* @{
*/
/* CEN2: DAC channel2 calibration enable */
/** CEN2: DAC channel2 calibration enable */
#define DAC_CR_CEN2 (1 << 30)
/* TSEL2[3:0]: DAC channel2 trigger selection */
@ -162,19 +166,24 @@ specific memorymap.h header before including this header file.*/
#define DAC_CR_TSEL1_HR3 (0xF << DAC_CR_TSEL1_SHIFT)
/**@}*/
/* TEN1: DAC channel1 trigger enable */
/** TEN1: DAC channel1 trigger enable */
#define DAC_CR_TEN1 (1 << 1)
/**@}*/
/* --- DAC_SWTRIGR values -------------------------------------------------- */
/* SWTRIG2: DAC channel2 software trigger B */
/** @addtogroup dac_swtrigr_values
* @{
*/
/** SWTRIG2: DAC channel2 software trigger B */
#define DAC_SWTRIGR_SWTRIGB2 (1 << 17)
/* SWTRIG1: DAC channel1 software trigger B */
/** SWTRIG1: DAC channel1 software trigger B */
#define DAC_SWTRIGR_SWTRIGB1 (1 << 16)
/**@}*/
/** @addtogroup dac_dorx_values
* @{
*/
/* --- DAC_DOR1 values ----------------------------------------------------- */
#define DAC_DOR1_DACC1DORB_SHIFT 16
#define DAC_DOR1_DACC1DORB_MASK 0xFFF
@ -183,41 +192,46 @@ specific memorymap.h header before including this header file.*/
/* --- DAC_DOR2 values ----------------------------------------------------- */
#define DAC_DOR2_DACC2DORB_SHIFT 16
#define DAC_DOR2_DACC2DORB_MASK 0xFFF
/**@}*/
/* --- DAC_SR values ----------------------------------------------------- */
/* DAC channel2 busy writing sample time flag */
/** @addtogroup dac_sr_values
* @{
*/
/** DAC channel2 busy writing sample time flag */
#define DAC_SR_BWST2 (1 << 31)
/* DAC channel2 calibration offset status */
/** DAC channel2 calibration offset status */
#define DAC_SR_CAL_FLAG2 (1 << 30)
/** DAC channel2 DMA underrun flag */
#define DAC_SR_DMAUDR2 (1 << 29)
/* DAC channel2 output register status bit */
/** DAC channel2 output register status bit */
#define DAC_SR_DORSTAT2 (1 << 28)
/* DAC channel2 ready status bit */
/** DAC channel2 ready status bit */
#define DAC_SR_DAC2RDY (1 << 27)
/* DAC channel1 busy writing sample time flag */
/** DAC channel1 busy writing sample time flag */
#define DAC_SR_BWST1 (1 << 15)
/* DAC channel1 calibration offset status */
/** DAC channel1 calibration offset status */
#define DAC_SR_CAL_FLAG1 (1 << 14)
/** DAC channel1 DMA underrun flag */
#define DAC_SR_DMAUDR1 (1 << 13)
/* DAC channel1 output register status bit */
/** DAC channel1 output register status bit */
#define DAC_SR_DORSTAT1 (1 << 12)
/* DAC channel1 ready status bit */
/** DAC channel1 ready status bit */
#define DAC_SR_DAC1RDY (1 << 11)
/**@}*/
/* --- DAC_CCR values ----------------------------------------------------- */
/**@defgroup dac_ccr_values DAC_CCR values
* @{
*/
/* DAC channel2 offset trimming value */
#define DAC_CCR_OTRIM2_SHIFT 16
#define DAC_CCR_OTRIM2_MASK 0x1F
@ -225,16 +239,20 @@ specific memorymap.h header before including this header file.*/
/* DAC channel1 offset trimming value */
#define DAC_CCR_OTRIM1_SHIFT 0
#define DAC_CCR_OTRIM1_MASK 0x1F
/**@}*/
/* --- DAC_MCR values ----------------------------------------------------- */
/* Enable signed format for DAC channel2 */
/**@defgroup dac_mcr_values DAC_MCR values
* @{
*/
/** Enable signed format for DAC channel2 */
#define DAC_MCR_SINFORMAT2 (1 << 25)
/* DAC channel2 DMA double data mode */
/** DAC channel2 DMA double data mode */
#define DAC_MCR_DMADOUBLE2 (1 << 24)
/* MODE2[2:0]: DAC channel2 mode */
/** MODE2[2:0]: DAC channel2 mode */
#define DAC_MCR_MODE2_SHIFT 16
/** @defgroup dac_mode2_sel DAC Channel 2 Mode Selection
@ingroup dac_defines
@ -277,10 +295,10 @@ specific memorymap.h header before including this header file.*/
#define DAC_MCR_HFSEL_AHB160 (0x2 << DAC_MCR_HFSEL_SHIFT)
/**@}*/
/* Enable signed format for DAC channel1 */
/** Enable signed format for DAC channel1 */
#define DAC_MCR_SINFORMAT1 (1 << 9)
/* DAC channel1 DMA double data mode */
/** DAC channel1 DMA double data mode */
#define DAC_MCR_DMADOUBLE1 (1 << 8)
/* MODE1[2:0]: DAC channel1 mode */
@ -310,6 +328,7 @@ specific memorymap.h header before including this header file.*/
#define DAC_MCR_MODE1_PERIPHERAL (0x1 << DAC_MCR_MODE1_SHIFT)
#define DAC_MCR_MODE1_UNBUFFERED (0x2 << DAC_MCR_MODE1_SHIFT)
#define DAC_MCR_MODE1_SAMPLEHOLD (0x4 << DAC_MCR_MODE1_SHIFT)
/**@}*/
/* --- DAC_SHSR1 values ----------------------------------------------------- */