Atmel BLDC Sensorless on ATAVRMC100 Documentation
This application drives a BLDC motor in a sensorless method
It runs on an ATAVRMC100 board with an AT90PWM3B part
The main sources files are :
- ushell_task.c command interpreter from an ascii chain
- ascii.c ascii to binaire conversion
- uart_lib.c communication through AT90PWM3 Uart
The comparator behaviour is close to Hall sensor behaviour. So a lot of routines or names reffer to Hall sensor.
All parameters are given for the motor included in the kit with no load.
They must be ajusted according to the application (motor, load ...)
- Timer 0 is used for speed measurement
- Timer 1 is used for main tick, 30 degres delay, PID frequency
- PSC0,1,2 are used to generate PWM
- ADC is used for current measurement
- comparator interrupts to detect external comparator changes
See the CDROM Training Exercises to connect the serial interface
- ATAVRMC100 (AT90PWM3B clock is 16MHz from PLL)
- ATAVRMC100 Sensorless Adaptor
- 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 Wed Jul 12 16:55:10 2006 for Atmel BLDC Sensorless on ATAVRMC100 by
1.4.7