Atmel BLDC Sinusoidal on ATAVRMC100 Documentation
This application drives a BLDC motor with sinusoidal waveforms
The motor features Hall sensors
It runs on an ATAVRMC100 board with an AT90PWM3B part
The main source files are :
This application can be compiled with IAR or with GCC
Be careful : the minimum timer 0 period with GCC must be set to 64uS
in mc_drv.c file
with IAR the minimum timer 0 period can be set to 48uS
this will increase the sinus waveform resolution
All parameters are given for the motor included in the kit with no load.
They must be ajusted according to the application (motor, load ...)
This application is configured in open loop. The maximum allowed speed setting
with the ss command is 0x250. [>ss 250 ]
The speed loop regulator parameters and function are dedicated for a 110V motor
running on an MC200 board. They must be adjusted for the application motor and
load.
The rotor position angle is estimated from the Hall sensor transitions.
It induces the following constraints:
1) At start up of the motor, the speed must be set at a low value (0x80)
2) The acceleration must be smooth, otherwice the motor will desynchronized
and the current will go in an overcurrent area.
- Timer 0 is used for speed measurement/main tick/svpwm
- Timer 1 is not used
- PSC0,1,2 are used to generate PWM
- ADC is used for current measurement
The serial interface signals (RxD-TxD) are available on the ext connector
They come directly from the microcontroller, so they have to be adapter with
a RS232 converter. An ATMEL STK500 board can provide the converter function
In that case : connect the IO-CON pin 7 to TxD of the STK500 RS232 spare connector
and connect the IO-CON pin 8 to RxD of the STK500 RS232 spare connector
- ATAVRMC100 (AT90PWM3B clock is 16MHz from PLL)
- STK500 (used to provide an RS232 adaptation)
- Connect ATAVRMC100 to STK500 RS232 SPARE connector
- Set the ATAVRMC100 jumpers to 'sensor' location
- Speed : 38400 bauds
- Bits : 8
- Stop : 1
- Handshake : None
- Parity : None
After reset the ATAVRMC100 board prints the welcome message and a prompt
The user commands are :
- ru : run / start the motor
- st : stop / stop the motor
- help : help / return the list of commands
- fw : forward
- bw : backward
- ss v : set speed (v is the value)
- gi : get identification / return the board id, the soft id and the soft rev
- g0 : get status 0 : return the status byte, the speed and the current
- g1 : get status 1 : return the rotation counter
Note : All values are in hexadecimal form
Generated on Tue Sep 16 18:11:19 2008 for Atmel BLDC Sinusoidal on ATAVRMC100 by
1.5.3