The controller for the quadcopter is the brains of the operation. The first part of the design is to choose a microcontroller. Since I am most familiar with the Microchip IDE and I already own the microchip Tools.
I chose two candidates from Microchip:
Device | Flash Memory | RAM | Timers | Output Compare | ADC | UART | I2C |
dsPIC33FJ256GP710A | 256KB | 30KB | 9 | 8 | 12 bit | 2 | 2 |
PIC32MX795F512L | 512KB Program + 12KB Bootloader | 128KB | 5 | 5 | 10 bit | 6 | 4 |
Comparing the two:
- Flash Memory: The PIC32 wins here 512KB vs 256KB, I may or maynot need the extra memory but since I am more of a hardware guy than a software guy it wont hurt to have extra memory.
- RAM: The PIC32 here wins again 128KB vs 30KB, this could be important because I could use the RAM to log data on the PIC32 on the DsPIC I would probably have to use external serial memory such as FRAM which is expensive and the transfer rate would be much slower than the on-board RAM.
- Timers: This is bascally a tie although the DsPIC has more Timers I probably only need 2: 1 for the PID loop and 1 for the PWM.
- Output Compare: This is bascally a tie although the DsPIC has more Output Compare Channels, I only need 4: 1 for each motor.
- ADC: The DsPIC wins here hands down a 12bit ADC gives you 4 times the resolution
- UART: This is bascally a tie although the PIC32 has more UART Channels, I only need 1
- I2C: This is bascally a tie although the PIC32 has more I2C Channels, I only need 1 or 2
Continued on next post.
Andrew