Kart/DC motor controller
(Created page with "{{TOC right}} DC motor board == DC motor == The DC motor is a xxxx. Category:Kart") |
(→Restart) |
||
(5 intermediate revisions by one user not shown) | |||
Line 5: | Line 5: | ||
== DC motor == | == DC motor == | ||
− | The DC motor is a | + | The DC motor is a [http://www.conrad.ch/ce/fr/Search.html?search=%22modelcraft%20rb%20350018%202a723r%22 Modelcraft RB350018-2A723R"]. |
+ | |||
+ | It is powered with 12 V and draws a maximal current of 0.7 A. | ||
+ | |||
+ | == FPGA design == | ||
+ | |||
+ | The DC motor controller has to generate the a <code>pwm</code> and a <code>forwards</code> signal to control the [[Kart|kart's]] speed. | ||
+ | The kart's <code>speed</code> is set in the [[Kart/serial_link#SmartPhone_to_Kart|DC motor speed register]]. | ||
+ | |||
+ | To begin with, the [[Kart#FPGA_Design|design environment]] has to be downloaded. | ||
+ | It comprises the <code>dcMotorController</code> block which contains the provided I2C bus interface | ||
+ | and an empty <code>dcMotorPwm</code> block which is to be designed. | ||
+ | |||
+ | === Functionality === | ||
+ | |||
+ | The block receives a <code>speed</code> signed number and has to drive the DC motor with a <code>pwm</code> and a <code>forwards</code> signal. | ||
+ | These signals are sent to the daughterboard in order to drive an [http://en.wikipedia.org/wiki/H_bridge H-bridge]. | ||
+ | The daughterboard logic drives the bridge's power transistors from the two signals. | ||
+ | The mean amplitude of the DC motor's voltage is controlled by [http://en.wikipedia.org/wiki/Pulse-width_modulation Pulse Width Modulation] (PWM). | ||
+ | |||
+ | The <code>forwards</code> signal is derived from the sign of the <code>speed</code> control. | ||
+ | The <code>pwm</code> signal is derived from the absolute value of <code>speed</code>. | ||
+ | |||
+ | The [http://en.wikipedia.org/wiki/Pulse-width_modulation PWM] signal is implemented with the help of a free-running counter and a comparator. | ||
+ | However: | ||
+ | * the power transistors cannot switch at too high frequencies | ||
+ | * there is a need for a dead time where all power transistors are open between the PWM transitions | ||
+ | Because of this, the PWM period is limited to a minimal value. | ||
+ | This is achieved with the help of an <code>en</code> signal generated by a counter dividing the clock frequency. | ||
+ | The counter only increments when this <code>en</code> signal is '1'. | ||
+ | |||
+ | {{TaskBox|content= | ||
+ | Draw the schematics of the <code>dcMotorPwm</code> block. | ||
+ | }} | ||
+ | |||
+ | The minimal value of the PWM signal is studied in another part of the [[Kart|kart project]]. | ||
+ | The period of the <code>en</code> pulse train is set in the [[Kart/serial_link#SmartPhone_to_Kart|DC motor PWM period register]]. | ||
+ | |||
+ | === Hardware orientation === | ||
+ | |||
+ | The mechanical design can either lead the Kart to drive forwards or backwards when a positive voltage is applied to the DC motor. | ||
+ | |||
+ | In order to cope with this, a setup signal, <code>normalDirection</code>, is provided to the block. | ||
+ | <code>normalDirection</code> being '1' means that a positive voltage applied to the DC motor lets the kart drive forwards. | ||
+ | |||
+ | {{TaskBox|content= | ||
+ | Update the schematics of the <code>dcMotorPwm</code> block in order to cope for the different mechanical design possibilities. | ||
+ | }} | ||
+ | |||
+ | The setup bit is configured in the [[Kart/serial_link#Hardware_control_register|hardware control register]]. | ||
+ | |||
+ | === Bluetooth connection === | ||
+ | |||
+ | When the Bluetooth connection is lost, the DC motor should not turn. | ||
+ | |||
+ | In order to cope with this, a control signal, <code>btConnected</code>, is provided to the block. | ||
+ | When <code>btConnecred</code> is '0', the DC motor must stop. | ||
+ | |||
+ | {{TaskBox|content= | ||
+ | Update the schematics of the <code>dcMotorPwm</code> block in order to stop the motor on connection loss. | ||
+ | }} | ||
+ | |||
+ | The BT connection bit is configured in the [[Kart/serial_link#Hardware_control_register|hardware control register]]. | ||
[[Category:Kart]] | [[Category:Kart]] |
Revision as of 11:23, 28 August 2018
|
DC motor
The DC motor is a Modelcraft RB350018-2A723R".
It is powered with 12 V and draws a maximal current of 0.7 A.
FPGA design
The DC motor controller has to generate the a pwm
and a forwards
signal to control the kart's speed.
The kart's speed
is set in the DC motor speed register.
To begin with, the design environment has to be downloaded.
It comprises the dcMotorController
block which contains the provided I2C bus interface
and an empty dcMotorPwm
block which is to be designed.
Functionality
The block receives a speed
signed number and has to drive the DC motor with a pwm
and a forwards
signal.
These signals are sent to the daughterboard in order to drive an H-bridge.
The daughterboard logic drives the bridge's power transistors from the two signals.
The mean amplitude of the DC motor's voltage is controlled by Pulse Width Modulation (PWM).
The forwards
signal is derived from the sign of the speed
control.
The pwm
signal is derived from the absolute value of speed
.
The PWM signal is implemented with the help of a free-running counter and a comparator. However:
- the power transistors cannot switch at too high frequencies
- there is a need for a dead time where all power transistors are open between the PWM transitions
Because of this, the PWM period is limited to a minimal value.
This is achieved with the help of an en
signal generated by a counter dividing the clock frequency.
The counter only increments when this en
signal is '1'.
The minimal value of the PWM signal is studied in another part of the kart project.
The period of the en
pulse train is set in the DC motor PWM period register.
Hardware orientation
The mechanical design can either lead the Kart to drive forwards or backwards when a positive voltage is applied to the DC motor.
In order to cope with this, a setup signal, normalDirection
, is provided to the block.
normalDirection
being '1' means that a positive voltage applied to the DC motor lets the kart drive forwards.
The setup bit is configured in the hardware control register.
Bluetooth connection
When the Bluetooth connection is lost, the DC motor should not turn.
In order to cope with this, a control signal, btConnected
, is provided to the block.
When btConnecred
is '0', the DC motor must stop.
The BT connection bit is configured in the hardware control register.