Example description
DAC_DualModeDMA_SineWave
Example Description
This example describes how to use DAC dual channel mode with DMA to generate sine
waves on both DAC channels outpouts.
Both DAC channels conversions are configured to be triggered by TIM2 TRGO triggers
and without noise/triangle wave generation. 12bit right data alignement is selected
since we choose to acces DAC_DHR12RD register. DMA2 channel4 is configured to
transfer continuously, word by word, a 32-word buffer to the dual DAC register
DAC_DHR12RD.
The transfered 32buffer is made to have a sine wave generation on each DAC channel
output. Both DAC channels are then enabled. Only DAC channel2 DMA capability is enabled.
Once TIM2 is enabled, each TIM2 TRGO update event generate a DMA request which
transfer data to the dual DAC register and DAC conversion is started. The sine
waves can be visualized by connecting both PA.04 and PA.05 pins to an oscilloscope.
Directory contents
- DAC/DualModeDMA_SineWave/stm32f10x_conf.h Library Configuration file
- DAC/DualModeDMA_SineWave/stm32f10x_it.c Interrupt handlers
- DAC/DualModeDMA_SineWave/stm32f10x_it.h Header for stm32f10x_it.c
- DAC/DualModeDMA_SineWave/main.c Main program
Hardware and Software environment
- This example runs on STM32F10x Connectivity line and High-Density Devices.
- This example has been tested with STMicroelectronics STM3210C-EVAL (STM32F10x
Connectivity line) and STM3210E-EVAL (STM32F10x High-Density) evaluation
boards and can be easily tailored to any other supported device and
development board.
- STM3210C-EVAL Set-up
- Only PA.04 can be monitored on an oscilloscope, PA.05 is used by other
module (Motor control connector) that prevents to have DAC channel output
on it. However, if you don't use Motor control connector, you can remove
the 0ohm resistor R84 and thus PA.05 can be used for DAC output.
- STM3210E-EVAL Set-up
- Connect PA.04 and PA.05 pins to an oscilloscope
How to use it ?
In order to make the program work, you must do the following:
- Create a project and setup all project configuration
- Add the required Library files:
- stm32f10x_gpio.c
- stm32f10x_dac.c
- stm32f10x_dma.c
- stm32f10x_rcc.c
- stm32f10x_tim.c
- system_stm32f10x.c (under Libraries\CMSIS\Core\CM3)
- Edit stm32f10x.h file to select the device you are working on.
Tip: You can tailor the provided project template to run this example, for
more details please refer to "stm32f10x_stdperiph_lib_um.chm" user
manual; select "Peripheral Examples" then follow the instructions
provided in "How to proceed" section.
- Link all compiled files and load your image into target memory
- Run the example
note
- Low-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 16 and 32 Kbytes.
- Medium-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 32 and 128 Kbytes.
- High-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 256 and 512 Kbytes.
- Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.
--------------------------------------------------------------------------------
DAC_OneChannel_NoiseWave
Example Description
This example describes how to use one DAC channel to generate a signal with noise
waves on DAC Channel1 output.
DAC channel1 conversion are configured to be triggered by software with noise wave
generation.12bit left data alignement is selected since we choose to acces DAC_DHR12L1
register. Bits 0 to 8 are masked for the Linear feedback shift register.
DAC channel1 is then enabled. DAC Channel1 DHR12L1 register is configured to have
an output voltage of VREF/2.
Software triggers are generated continuously in an infinite loop, and on each
trigger the DAC channel1 start the conversion and calculate the noise value to
apply on the DAC channel1 output.
The output signal with noise waves can be visualized by connecting PA.04 pin to
an oscilloscope.
Directory contents
- DAC/OneChannel_NoiseWave/stm32f10x_conf.h Library Configuration file
- DAC/OneChannel_NoiseWave/stm32f10x_it.c Interrupt handlers
- DAC/OneChannel_NoiseWave/stm32f10x_it.h Header for stm32f10x_it.c
- DAC/OneChannel_NoiseWave/main.c Main program
Hardware and Software environment
- This example runs on STM32F10x Connectivity line and High-Density Devices.
- This example has been tested with STMicroelectronics STM3210C-EVAL (STM32F10x
Connectivity line) and STM3210E-EVAL (STM32F10x High-Density) evaluation
boards and can be easily tailored to any other supported device and
development board.
- STM3210C-EVAL Set-up
- Connect PA.04 pin to an oscilloscope
- STM3210E-EVAL Set-up
- Connect PA.04 pin to an oscilloscope
How to use it ?
In order to make the program work, you must do the following:
- Create a project and setup all project configuration
- Add the required Library files:
- stm32f10x_gpio.c
- stm32f10x_dac.c
- stm32f10x_rcc.c
- system_stm32f10x.c (under Libraries\CMSIS\Core\CM3)
- Edit stm32f10x.h file to select the device you are working on.
Tip: You can tailor the provided project template to run this example, for
more details please refer to "stm32f10x_stdperiph_lib_um.chm" user
manual; select "Peripheral Examples" then follow the instructions
provided in "How to proceed" section.
- Link all compiled files and load your image into target memory
- Run the example
note
- Low-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 16 and 32 Kbytes.
- Medium-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 32 and 128 Kbytes.
- High-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 256 and 512 Kbytes.
- Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.
--------------------------------------------------------------------------------
DAC_OneChannelDMA_Escalator
Example Description
This example describes how to use one DAC channel mode with DMA to generate an
escalator signal on DAC channel1 outpout.
DAC channel1 conversion is configured to be triggered by TIM6 TRGO triggers and
without noise/triangle wave generation. 8bit right data alignement is selected
since we choose to acces DAC_DHR8R1 register.
DMA2 channel3 is configured to transfer continuously, byte by byte, a 6-byte
buffer to the DAC1 register DAC_DHR8R1.
The transfered 6bytes buffer is made to have an escalator signal on DAC channel1
output. DAC channel1 is then enabled. Once TIM6 is enabled, each TIM6 TRGO update
event generate a DMA request which transfer data to the DAC1 register and DAC
conversion is started. The escalator signal can be visualized by connecting PA.04
pin to an oscilloscope.
Directory contents
- DAC/OneChannelDMA_Escalator/stm32f10x_conf.h Library Configuration file
- DAC/OneChannelDMA_Escalator/stm32f10x_it.c Interrupt handlers
- DAC/OneChannelDMA_Escalator/stm32f10x_it.h Header for stm32f10x_it.c
- DAC/OneChannelDMA_Escalator/main.c Main program
Hardware and Software environment
- This example runs on STM32F10x Connectivity line and High-Density Devices.
- This example has been tested with STMicroelectronics STM3210C-EVAL (STM32F10x
Connectivity line) and STM3210E-EVAL (STM32F10x High-Density) evaluation
boards and can be easily tailored to any other supported device and
development board.
- STM3210C-EVAL Set-up
- Connect PA.04 pin to an oscilloscope
- STM3210E-EVAL Set-up
- Connect PA.04 pin to an oscilloscope
How to use it ?
In order to make the program work, you must do the following:
- Create a project and setup all project configuration
- Add the required Library files:
- stm32f10x_dac.c
- stm32f10x_dma.c
- stm32f10x_gpio.c
- stm32f10x_rcc.c
- stm32f10x_tim.c
- system_stm32f10x.c (under Libraries\CMSIS\Core\CM3)
- Edit stm32f10x.h file to select the device you are working on.
Tip: You can tailor the provided project template to run this example, for
more details please refer to "stm32f10x_stdperiph_lib_um.chm" user
manual; select "Peripheral Examples" then follow the instructions
provided in "How to proceed" section.
- Link all compiled files and load your image into target memory
- Run the example
note
- Low-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 16 and 32 Kbytes.
- Medium-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 32 and 128 Kbytes.
- High-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 256 and 512 Kbytes.
- Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.
--------------------------------------------------------------------------------
DAC_TwoChannels_TriangleWave
Example Description
This example describes how to use two DAC channels to generate two different
signals with triangle waves on each DAC Channel output.
DAC channels conversion are configured to be triggered by TIM2 TRGO with triangle
wave generation. 12bit right data alignement is selected since we choose to acces
both DAC_DHR12R1 and DAC_DHR12R2 registers.
A triangle amplitude of 2047 is selected for DAC channel1 and 1023 for DAC channel2.
Both DAC channels are then enabled. DAC Channel1 DHR12R1 and DAC channel2 DHR12R2
registers are set to have a base output voltage of VREF/16 on each output.
Once TIM2 is enabled, each TIM2 TRGO update event trigger both DAC channels start
of conversion. The triangle counter is incremented, added to the base value and
applied to the corresponding DAC channel output. The same calculation is repeated
on each trigger.
The triangle waves can be visualized by connecting both PA.04 and PA.05 pins to
an oscilloscope.
Directory contents
- DAC/TwoChannels_TriangleWave/stm32f10x_conf.h Library Configuration file
- DAC/TwoChannels_TriangleWave/stm32f10x_it.c Interrupt handlers
- DAC/TwoChannels_TriangleWave/stm32f10x_it.h Header for stm32f10x_it.c
- DAC/TwoChannels_TriangleWave/main.c Main program
Hardware and Software environment
- This example runs on STM32F10x Connectivity line and High-Density Devices.
- This example has been tested with STMicroelectronics STM3210C-EVAL (STM32F10x
Connectivity line) and STM3210E-EVAL (STM32F10x High-Density) evaluation
boards and can be easily tailored to any other supported device and
development board.
- STM3210C-EVAL Set-up
- Only PA.04 can be monitored on an oscilloscope, PA.05 is used by other
module (Motor control connector) that prevents to have DAC channel output
on it. However, if you don't use Motor control connector, you can remove
the 0ohm resistor R84 and thus PA.05 can be used for DAC output.
- STM3210E-EVAL Set-up
- Connect PA.04 and PA.05 pins to an oscilloscope
How to use it ?
In order to make the program work, you must do the following:
- Create a project and setup all project configuration
- Add the required Library files:
- stm32f10x_dac.c
- stm32f10x_gpio.c
- stm32f10x_rcc.c
- stm32f10x_tim.c
- system_stm32f10x.c (under Libraries\CMSIS\Core\CM3)
- Edit stm32f10x.h file to select the device you are working on.
Tip: You can tailor the provided project template to run this example, for
more details please refer to "stm32f10x_stdperiph_lib_um.chm" user
manual; select "Peripheral Examples" then follow the instructions
provided in "How to proceed" section.
- Link all compiled files and load your image into target memory
- Run the example
note
- Low-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 16 and 32 Kbytes.
- Medium-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 32 and 128 Kbytes.
- High-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 256 and 512 Kbytes.
- Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.