Software tasks

A project log for Brushless Actuator (Arduino-Compatible)

Ardunio-Compatible M0/Zero/SAMD21 with FET Driver, MOSFETs, Absolute Magnetic Encoder, USB and RS485 comms. ~$US50

Paul GouldPaul Gould 04/30/2019 at 16:440 Comments

Low Level SAMD21 / Arduino functions with no libraries*

  1. Main OS timer - 100us (10KHz) IRQ                                                 (done)
  2. 3-Phase Motor Controller PWM with deadband                            (done)
    • (6-centre aligned pwms)                                                           (done)
  3. ADC- 6 channels sequential, semi-free-running DMA with IRQ     (done)
    • 3x Current Sensor
    • MOSFET Temperature Sensor
    • Battery Voltage
    • 1 Auxillary Analog Inputs
  4. Dual (same time) SPI (blocking and IRQ)                                             (done
  5. RS485 UART with IRQ (TX & RX)                                                        (done)
    1. with direction CTRL                                                                       (done)
    2. with time-out and packet start detect                                           (done)
  6. UART with DMA                                                                                  (attempted fail)
  7. CPU's Internal EEPROM Emulation (Flash storage)                            (attempted & fail)
  8. External I2C EEPROM support (maybe Libraries)                             (not started, have eeprom)
  9. I2C OLED support (with Libraries)                                                     (done)
  10. SerialUSB with above                                                                         (done)
  11. Serial1 with above                                                                              (done)
  12. Making all the Low level features work together                         (done, done and done)

High Level Functions

  1. Field Orientated Control (FOC) & Motor Commutation                    (done)
  2. PID Joint Control                                                                                 (done, but just P)
  3. RS485 Packet Structure                                                                    (1/2 done)
  4. MOSFET Driver configuration                                                           (To be ported from PSOC4)
  5. Motor Position and other configuration                                            (simple position control)