Designing with ARM Cortex-M4 (and a Real Dev Board) Class 4: Build Your Own ARM-based Product 7/10/2014 Warren Miller
This Week’s Agenda 7/7/14 An Intro to the ARM Cortex-M4 7/8/14 An ARM Cortex-M4 Design Example 7/9/14 Understanding the ST32F3 Tool Flow 7/10/14 Build Your Own ARM-based Product! 7/11/14 Tying Up the Loose ARM Ends
Course Description Are you ready to learn how easy it is to use ARM Cortex-M4 MCUs in your designs? This course will introduce you to the ARM Cortex-M4 architecture and describe the key features of an MCU, the ST Microelectronics STM32F3 that uses the Cortex-M4 for the CPU. A readily available Discovery Board, the STM32F3DISCOVERY, will be used to learn how to begin designing right away!
Todays Goals and Objectives Understand the many design examples available for the STM32F3 Discovery Kit Be able to select a design as a starting point for your own design Be able to modify a simple design and run it thru the STM32F3 tool flow see it run on the board
Tools! STM32CubeF3 IAR EWARM STM32F3 Discovery Designs http://www.st.com/web/en/catalog/tools/PF260613 IAR EWARM http://www.iar.com STM32F3 Discovery Designs http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF254044
Design Examples Discovery Board Demo Design Described previously STM32F3 Peripheral Example Designs ADC, CRC, DAC DMA Flash RAM DMA RAM DAC External Interrupt Flash Program FPU GPIO, IWDT, WWDG, OPAMP PGA Power Consumption, Standby, Stop RTC, Timers, USB Other Example Designs IAR, ST Micro, etc
Example Peripheral Design (ADC) This example describes how to use the ADC1 to convert continuously voltage applied to a given analog input channel. Detailed steps of ADC configuration are provided starting from GPIO configuration to the analog channel configuration without forgetting the ADC calibration procedure. In this example the ADC1 Channel7(PC1) is used as directly connected to the power supply. The converted voltage is stored in the ADC1ConvertedVoltage variable.
Example Peripheral Design 2 (ADC) This example describes how to use the ADC1 to convert continuously voltage applied to a given analog input channel. Detailed steps of ADC configuration are provided starting from GPIO configuration to the analog channel configuration without forgetting the ADC calibration procedure. In this example the ADC1 Channel7(PC1) is used as directly connected to the power supply. The converted voltage is stored in the ADC1ConvertedVoltage variable.
Example Design 3 (ADC)
Example Design 4 (ADC)
Example Peripheral Design (EXTI) This example shows how to configure external interrupt lines. In this example, 1 EXTI line (EXTI0) when using the STM32F3-Discovery is configured to generate an interrupt on each rising edge. In the interrupt routine leds connected to a specific GPIO pin is toggled. In this example - EXTI0 is mapped to PA0. - when rising edge is detected on EXTI0 by pressing User button, LED3, LED6, LED7 and LED10 toggle.
Example Peripheral Design 2 (EXTI) This example shows how to configure external interrupt lines. In this example, 1 EXTI line (EXTI0) when using the STM32F3-Discovery is configured to generate an interrupt on each rising edge. In the interrupt routine leds connected to a specific GPIO pin is toggled. In this example - EXTI0 is mapped to PA0. - when rising edge is detected on EXTI0 by pressing User button, LED3, LED6, LED7 and LED10 toggle.
Peripheral Design (Standby)
Peripheral Design 2 (Standby)
Peripheral Design 2 (Standby)
Peripheral Design 3 (Standby)
For Next Time Select an Example Design Add your code Compile, download and run on the Discovery Board Or just run in the debugger!
Additional Resources STM32F3 Discovery Web Page http://www.st.com/web/en/catalog/tools/FM116/SC959/SS1532/PF254044 STM32F3 Discovery Examples http://www.st.com/web/en/catalog/tools/PF258154 Order your kit from Digi-Key to follow along in the class- Optional, not a class requirement http://www.digikey.com/product-detail/en/STM32F3DISCOVERY/497-13192-ND/3522185
This Week’s Agenda 7/7/14 An Intro to the ARM Cortex-M4 7/8/14 An ARM Cortex-M4 Design Example 7/9/14 Understanding the ARM Tool Flow 7/10/14 Build Your Own ARM-based Product! 7/11/14 Tying Up the Loose ARM Ends