DAC driver now working with L4+.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12431 110e8d01-0319-4d1e-a829-52ad28d1bb01
This commit is contained in:
parent
c0da3c4f42
commit
db6f9df412
|
@ -89,6 +89,7 @@ static const dacparams_t dma1_ch1_params = {
|
||||||
.regmask = 0xFFFF0000U,
|
.regmask = 0xFFFF0000U,
|
||||||
#if STM32_DMA_SUPPORTS_DMAMUX
|
#if STM32_DMA_SUPPORTS_DMAMUX
|
||||||
.dma = STM32_DMA_STREAM(STM32_DAC_DAC1_CH1_DMA_CHANNEL),
|
.dma = STM32_DMA_STREAM(STM32_DAC_DAC1_CH1_DMA_CHANNEL),
|
||||||
|
.peripheral = STM32_DMAMUX1_DAC1_CH1,
|
||||||
#else
|
#else
|
||||||
.dma = STM32_DMA_STREAM(STM32_DAC_DAC1_CH1_DMA_STREAM),
|
.dma = STM32_DMA_STREAM(STM32_DAC_DAC1_CH1_DMA_STREAM),
|
||||||
#endif
|
#endif
|
||||||
|
@ -109,6 +110,7 @@ static const dacparams_t dma1_ch2_params = {
|
||||||
.regmask = 0x0000FFFFU,
|
.regmask = 0x0000FFFFU,
|
||||||
#if STM32_DMA_SUPPORTS_DMAMUX
|
#if STM32_DMA_SUPPORTS_DMAMUX
|
||||||
.dma = STM32_DMA_STREAM(STM32_DAC_DAC1_CH2_DMA_CHANNEL),
|
.dma = STM32_DMA_STREAM(STM32_DAC_DAC1_CH2_DMA_CHANNEL),
|
||||||
|
.peripheral = STM32_DMAMUX1_DAC1_CH2,
|
||||||
#else
|
#else
|
||||||
.dma = STM32_DMA_STREAM(STM32_DAC_DAC1_CH2_DMA_STREAM),
|
.dma = STM32_DMA_STREAM(STM32_DAC_DAC1_CH2_DMA_STREAM),
|
||||||
#endif
|
#endif
|
||||||
|
@ -129,6 +131,7 @@ static const dacparams_t dma2_ch1_params = {
|
||||||
.regmask = 0xFFFF0000U,
|
.regmask = 0xFFFF0000U,
|
||||||
#if STM32_DMA_SUPPORTS_DMAMUX
|
#if STM32_DMA_SUPPORTS_DMAMUX
|
||||||
.dma = STM32_DMA_STREAM(STM32_DAC_DAC2_CH1_DMA_CHANNEL),
|
.dma = STM32_DMA_STREAM(STM32_DAC_DAC2_CH1_DMA_CHANNEL),
|
||||||
|
.peripheral = STM32_DMAMUX1_DAC2_CH1,
|
||||||
#else
|
#else
|
||||||
.dma = STM32_DMA_STREAM(STM32_DAC_DAC2_CH1_DMA_STREAM),
|
.dma = STM32_DMA_STREAM(STM32_DAC_DAC2_CH1_DMA_STREAM),
|
||||||
#endif
|
#endif
|
||||||
|
@ -149,6 +152,7 @@ static const dacparams_t dma1_ch2_params = {
|
||||||
.regmask = 0x0000FFFFU,
|
.regmask = 0x0000FFFFU,
|
||||||
#if STM32_DMA_SUPPORTS_DMAMUX
|
#if STM32_DMA_SUPPORTS_DMAMUX
|
||||||
.dma = STM32_DMA_STREAM(STM32_DAC_DAC2_CH2_DMA_CHANNEL),
|
.dma = STM32_DMA_STREAM(STM32_DAC_DAC2_CH2_DMA_CHANNEL),
|
||||||
|
.peripheral = STM32_DMAMUX1_DAC2_CH2,
|
||||||
#else
|
#else
|
||||||
.dma = STM32_DMA_STREAM(STM32_DAC_DAC2_CH2_DMA_STREAM),
|
.dma = STM32_DMA_STREAM(STM32_DAC_DAC2_CH2_DMA_STREAM),
|
||||||
#endif
|
#endif
|
||||||
|
@ -243,18 +247,12 @@ void dac_lld_start(DACDriver *dacp) {
|
||||||
#if STM32_DAC_USE_DAC1_CH1
|
#if STM32_DAC_USE_DAC1_CH1
|
||||||
if (&DACD1 == dacp) {
|
if (&DACD1 == dacp) {
|
||||||
rccEnableDAC1(true);
|
rccEnableDAC1(true);
|
||||||
#if STM32_DMA_SUPPORTS_DMAMUX
|
|
||||||
dmaSetRequestSource(dacp->params->dma, STM32_DMAMUX1_DAC1_CH1);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if STM32_DAC_USE_DAC1_CH2
|
#if STM32_DAC_USE_DAC1_CH2
|
||||||
if (&DACD2 == dacp) {
|
if (&DACD2 == dacp) {
|
||||||
rccEnableDAC1(true);
|
rccEnableDAC1(true);
|
||||||
#if STM32_DMA_SUPPORTS_DMAMUX
|
|
||||||
dmaSetRequestSource(dacp->params->dma, STM32_DMAMUX1_DAC1_CH2);
|
|
||||||
#endif
|
|
||||||
channel = 1;
|
channel = 1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -262,18 +260,12 @@ void dac_lld_start(DACDriver *dacp) {
|
||||||
#if STM32_DAC_USE_DAC2_CH1
|
#if STM32_DAC_USE_DAC2_CH1
|
||||||
if (&DACD3 == dacp) {
|
if (&DACD3 == dacp) {
|
||||||
rccEnableDAC2(true);
|
rccEnableDAC2(true);
|
||||||
#if STM32_DMA_SUPPORTS_DMAMUX
|
|
||||||
dmaSetRequestSource(dacp->params->dma, STM32_DMAMUX1_DAC2_CH1);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if STM32_DAC_USE_DAC2_CH2
|
#if STM32_DAC_USE_DAC2_CH2
|
||||||
if (&DACD4 == dacp) {
|
if (&DACD4 == dacp) {
|
||||||
rccEnableDAC2(true);
|
rccEnableDAC2(true);
|
||||||
#if STM32_DMA_SUPPORTS_DMAMUX
|
|
||||||
dmaSetRequestSource(dacp->params->dma, STM32_DMAMUX1_DAC2_CH2);
|
|
||||||
#endif
|
|
||||||
channel = 1;
|
channel = 1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -445,8 +437,11 @@ void dac_lld_start_conversion(DACDriver *dacp) {
|
||||||
(stm32_dmaisr_t)dac_lld_serve_tx_interrupt,
|
(stm32_dmaisr_t)dac_lld_serve_tx_interrupt,
|
||||||
(void *)dacp);
|
(void *)dacp);
|
||||||
osalDbgAssert(!b, "stream already allocated");
|
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) {
|
switch (dacp->config->datamode) {
|
||||||
/* Sets the DAC data register */
|
/* Sets the DAC data register */
|
||||||
case DAC_DHRM_12BIT_RIGHT:
|
case DAC_DHRM_12BIT_RIGHT:
|
||||||
|
|
|
@ -318,6 +318,12 @@ typedef struct {
|
||||||
* @brief DMA channel IRQ priority.
|
* @brief DMA channel IRQ priority.
|
||||||
*/
|
*/
|
||||||
uint32_t dmairqprio;
|
uint32_t dmairqprio;
|
||||||
|
#if (STM32_DMA_SUPPORTS_DMAMUX == TRUE) || defined(__DOXYGEN__)
|
||||||
|
/**
|
||||||
|
* @brief DMAMUX peripheral selector.
|
||||||
|
*/
|
||||||
|
uint32_t peripheral;
|
||||||
|
#endif
|
||||||
} dacparams_t;
|
} dacparams_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
|
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
|
||||||
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
|
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
|
||||||
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
|
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
|
||||||
<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><contentList><content id="xPSR-(format)" val="4"/></contentList>"/>
|
<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><contentList><content id="CR-dac-params-dacp-dac_lld_start_conversion-(format)" val="4"/><content id="xPSR-(format)" val="4"/></contentList>"/>
|
||||||
<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <globalVariableList/> "/>
|
<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <globalVariableList/> "/>
|
||||||
<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList> <memoryBlockExpressionItem> <expression text="0x40021004"/> </memoryBlockExpressionItem> </memoryBlockExpressionList> "/>
|
<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList> <memoryBlockExpressionItem> <expression text="0x40021004"/> </memoryBlockExpressionItem> </memoryBlockExpressionList> "/>
|
||||||
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="${selected_resource_loc}"/>
|
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="${selected_resource_loc}"/>
|
||||||
|
|
Loading…
Reference in New Issue