1Electronics
Previously an AT4809 with a VNH7040 combo has been tested in Option 1 configuration with the IG32-05 motors. Option 1 entails providing PWM on the VNH7040 PWM pin and using INA/SEL0 and INB for direction control and brake.
Illustration 1: Test AT4809 + VNH7040
Design is to be scaled up to four independent motors to prove the
feasibility of “OrangeBot” design.2VNH7040 Option 2 Configuration
Option 2 configuration consists in wiring the microcontroller PWM signal to INB in theory giving the remaining signals a more defined meaning like direction and enable.This configuration has been tested to no avail. OPTION1 configuration is the way to go.
3AT4809 Pin Allocation
The first task is to allocate the pin function for the AT4809 microcontroller.This has been an highly iterative process, involving preliminary PCB layout and allocation of resources of the microcontroller.
After much thinking, this is the version 4 of the allocation table for the pins.
Illustration 2: Pin Allocation Table V4
3.1VNH7040 PWM
The most obvious problem is the generation of four 20KHz PWM signals.There are two options:
- Use the only timer type A TCA0 as six channel 8bit PWM
generator
- Use all four timers type B TCB0 to TCB3 as 8bit PWM generator
3.2VNH7040 SENSE
Four ADC pins have been dedicated to the four driver sense pin.A pull down resistor will be required.
TODO: Test sense functionality.
3.3Encoder
Initially the hope was to use the four CCL LUTs combined with four timers type B to decode in hardware four quadrature encoders.This is not possible because timers type B cannot be made to count external events.
As fall back, all encoder pins have been wired to the same port and an interrupt will be used to update all encoder counters on any edge event on any of the pins. There will be a limit on the frequency of the encoder channels that can be decoded.
3.4Servo
Current idea is to use a dual 5V3A buck generator and have four servo channels on the board. The timer type A can be used to generate the servo PPM modulated signals, so it has tentatively been assigned there. This can change.3.5I/O
Remaining pins are generic software controlled I/Os and have been grouped in fast switching and slow switching. slow switching signals are wired to the pin banks that share the supply of the ADC as to limit noise injected somewhat.4Prototype Board
To scale up the design to four motors, wirings have been moved to a prototyping board for reliability.
Illustration 3: Prototype Board Architecture
The architecture calls for a central board to host the AT4809
evaluation board with its onboard programmer disabled and an external
connector for the UPDI programmer, Four evaluation boards for VNH7040
motor controller and connectors for four motors, four quadrature
encoders and 5V power.5V is provided by a separate evaluation board for the TPS55386 dual buck regulator which powers the AT4809, the encoders and the Raspberry Pi.
4.1Layout
All components fit a standard prototype board. Basic safety features have been included.
Illustration 4: Prototype Board Layout
Features:
- XT60 power connector from battery/power supply
- Power connector to dual buck regulator TPS55386 5V3A
- 5V power switch to microcontroller and encoders
- 10A fuses and power switches to the motor drivers
- AT4809 Curiosity Nano evaluation board
- UPDI programmer connector
- Power connectors to four DC motors. Connector to four
quadrature encoders.
- Four VNH7040 motor drivers
- Dedicated power wires VNH7040 motors and supply
4.2Power Test
Power up the board one piece at a time and debug all wiring issues. Test the UPDI programming of the AT4809 and the signals to the VNH7040 bridges.
Illustration 5: Power Tests
A number of LEDs have been used to check power status of the
various voltage rails.4.3Individual Motor Test
Program the microcontroller to test each motor channel individually with a ramp in both directions.
Illustration 6: Individual Motor Channel Test
As part of the MVP strategy, sense and encoder channels are not
wired yet, as each hardware and software feature will be added and
tested only when all previous modules sufficient for operation
demonstrate to be operational.5Platform Test
Tested the operation of the board, next step is to connect it to the prototype platform and test a vertical slice of the platform power train system in open loop.5.1Rewire Motors
Original motor wirings are flimsy. Wires have been desoldered and replaced with longer and more suitable wires. The platform has been hooked to the prototype electronics.
Illustration 7: Rewire Motors
Motors have been numbered like pins in an IC with zero starting on
the rear, to allow a consistent numbering scheme to scale up and down
with the number of motors- 0 = Rear Right
- 1 = Front Right
- 2 = Front Left
- 3 = Rear Left
5.2Firmware
The firmware generate a clockwise and a counter clockwise ramp on one motor at a time.
Illustration 8: Firmware Architecture
Firmware for the test can be found in this >>>Github Repository<<<Again, the RTC is used to generate the main tick that will be used to schedule all tasks.
A LED blinks at a fixed rate of 2Hz.
A slope generator FSM provides a ramp that is either up or down, in two directions either clockwise or counter clockwise to one of four motors.
The power stage with the VNH7040s can be powered down by a switch to allow debug of the control signals safely.
5.3Platform Test
The platform has been enclosed in the mock-up cover and a test has been run to try each motor at full command in both directions individually.
Illustration 9: Full Test
The drivers are left free wheeling when at zero PWM in Option 1
connection. Not a problem, as a closed loop PID will ensure target
speed is enforced.
6Conclusions
This test successfully demonstrated the feasibility of the overall architecture and power train design of the OrangeBot robot due to compete in the PiWars 2020.Next steps for hardware development are:
- Connect the Raspberry Pi to the power train electronics
- Test bidirectional communication between RPI and prototype
electronics
- Test remote control capabilities from the FPV framework
already in use inside “Seeker Of Ways B” and “Maze Runner”
- Rewire the quadrature encoders on board the IG32-05 to the
electronics. Test them
- Test the current sense capabilities of the VNH7040 drivers
- Develop a quad high precision dual loop (current/speed) PID
controller
- Design a PCB to integrate all the above functionalities
No comments:
Post a Comment