The subject of this project is a double purpose device built on the STM32 MCU :
1. a simple waveform generator to produce a square and a sawtooth waveforms,
2. meter which sends measured waveform parameters to the host PC over USB.
The task is writing a firmware for the MCU based on STM32F4Cube HAL library and STM32CubeMX configurator.
Target STM32F407VE MCU.
USB OTG FS port, Waveform DAC output pin, waveform ADC input pin to input waveform for measuring and 4 ADC input pins for parameters settings from pots.
0 - 3.3V Amplitude both square and sawtooth waveforms positive in relation to GND .
1 Waveform switch to switch between square and sawtooth generation,
4 multi-turn input pots 10K to adjust each parameter,
Global parameters to continuously update in a regular conversion group reading :
Pot 1: Generator DAC Amplitude (0-3.3v)
Pot 2: Generator DAC Frequency ( 1Hz - 5000Hz )
Pot 3: Generator DAC Duty cycle (between 0-100% of cycle period)
Pot 4: Measurement Threshold (between 0-100% of amplitude within range 0-3.3V )
Project should be configured using STM32F4Cube.
Upon power up default Global parameters values are:
Duty Cycle 50%
Measuring Threshold 50% or 1.65V level
Output waveform DAC line uses optional pre-programmed buffer.
Meter functionality :
Measures amplitude, frequency, duty cycle at the threshold level of amplitude set by ADC conversion of the threshold pot.
Use printf() over USB to output 3 groups of data: Generator data, Meter' results at threshold level and on-chip temperature ( ADC1_IN16 ) and Vbat ( ADC1_IN18 ), all in ASCII format as in this example:
"Amplitude 3.0v Frequency 100Hz Duty Cycle 50% \n"
"Measurement data at Threshold 50% 1.65V \n"
"Amplitude 1.65v Frequency 10Hz Duty Cycle 60% \n "
"On chip temperature 30.22C Vbat 3.21V\n"
Notes on coding :
Use MCU optional output buffer for DAC output waveform.
For pot input conversions use continuous regular group ADC conversion with DMA transfer to all 4 global vars + on-chip temperature sensor + Vbat .
For threshold measuring use ADC watchdog high threshold setup equal to Threshold global var. This interrupt will trigger measurement of all required parameters in ISR routine.
Hello, I am interested in your project. I have more than five years expirience in STM32. I am using CubeMX and Keil/Eclipse. Best regards, Vyacheslav.
12 freelancers κάνουν προσφορές κατά μέσο όρο $2818 για αυτή τη δουλειά
I have more than 5 years experience in embedded and stm32 with cubemx hal library . I have completed many projects on it . so I can do your job within a time limit with your satisfaction.
I'm an embedded developer with 5 years of experience, worked in more than 10 microcontrollers, worked in technologies such as Bluetooth, Zigbee and IOT etc... I have trained people on embedded systems.