Difference between revisions of "RC08MicroController"

From RoboJackets Wiki
Jump to navigation Jump to search
 
 
(18 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Just as in 2007. an ARM based microcontroller is used in 2008. The microcontrollers taks though will be reduced from last year. Its main function is to run code to decode incomming messages from the wireless system and perform the appropriate actions. The microcontroller also does feed-back controller on the motors and on the robot itself. The actual code for the microcontroller falls under firmware.
+
The heart of the on-robot electrical system is the micro-controller. It is the central point from which commands are received from the wireless system, interpreted, and sent to the peripherals. Just as in 2007, an ARM based micro-controller is used in 2008, but unlike in 2007 the micro-controller will not be the sole device for all of the computational task. This year some tasks such as reading encoders are handled by a Field Programmable Gate Array (FPGA). The micro-controller will still have the task of decoding packets, interpreting them, and executing commands. Since the wireless system will be a two-way protocol the micro-controller will also monitor and report the status information for the robot such as battery health, kicker charge, ball presence, and errors.
 +
 
 +
===Previous Results===
 +
In 2007 the NXP (Phillips) LPC2138 was chosen due its high computing power for its price. An 8 or 16-bit micro-controller could have been used but since the LPC2138 was about the same price as these chips it was felt that the extra dollar or two in price was well worth double or triple the power. Also, other concerns, such as current draw, were not considered enough to warrant use of a less powerful chip. In terms of overall performance, though no measurements were made, it was generally agreed that the firmware used on the LPC had plenty of headroom in terms of processing power and code space. The only concern came when encoders were considered for the design and it was found that there were not enough I/O pins vectored to interrupts. Also, there was little I/O left when the design was complete as every available pin was used.
 +
 
 +
===Selecting a Micro-controller===
 +
Even though the LPC2138 proved to have good performance for a relatively chip price other, similar controllers will be evaluated for 2008. This year there is an even stronger justification for using a 32-bit processor. For one, there will be 4 PID loops for feedback control on the motors. Based on the calculations done [[RC08Brushless here]] the sampling rate of this controller will need to be XX. Since a clock speed of about XX is needed to meet that spec its far better to continue to use a 32-bit processor instead of finding a suitable 8 or 16-bit controller. Other factors such as the overhead of the wireless protocol also play a part in using 32-bit processors over 8 or 16-bit.
 +
 
 +
One of there areas were it seemed the LPC lacked was number of I/O. Though the I/O crunch wasn't a problem last year and likely won't be this year it is still comforting to have a good variety of I/O in case specifications change.
  
 
==Tasks==
 
==Tasks==
*[ ] Generate an I/O spec
+
*[x] Generate an I/O spec
*[ ] Find a part  
+
**[x] This means we have to wait until all the other systems are fully spec'd and ready for design
*[ ] Begin development with a dev kit
+
*[X] Find a part  
*[ ] Spec and find the support hardware. (Oscillator, LEDs, switches, etc.)
+
**[X] Evaluate based on number and type of I/O, availability of dev tools in linux, support in general community, package size, current and voltage characteristics, and cost.
*[ ] Schematic design
+
*[X] Purchase and begin development with a dev kit
 +
*[X] Spec and find the support hardware. (Oscillator, LEDs, switches, etc.)
 +
*[X] Schematic design
 
*[ ] Fabricate demo
 
*[ ] Fabricate demo
*[ ] Implement wireless protocol in firmware
+
*[X] Implement wireless protocol in firmware
*[ ] Build base station using dev kit
+
*[X] Build base station using dev kit
*[ ] Build remote control.
+
*[X] Build remote control.
 
*[ ] Implement closed-loop motor control in firmware
 
*[ ] Implement closed-loop motor control in firmware
  
 
==Specifications==
 
==Specifications==
 
====Micro-Controller====
 
====Micro-Controller====
 +
* '''Chose an LPC2103'''
 
* Serial Programable/Or Mini-JTAG
 
* Serial Programable/Or Mini-JTAG
 
* 3.3V power
 
* 3.3V power
 
* At least 3 timers
 
* At least 3 timers
* [[RC08IOlist | I/O list]]
+
* External Bus
 
* [[RC08Microcontroller | Matrix of Potential Microcontrollers]]
 
* [[RC08Microcontroller | Matrix of Potential Microcontrollers]]
  
 
==Schematics==
 
==Schematics==
Schematics
+
<gallery>
 +
Image:schematic-micro-RC08.jpg
 +
</gallery>
 +
 
 
==Parts==
 
==Parts==
====Micro-Controller====
 
 
=====Quick Specs=====
 
=====Quick Specs=====
=====Data Sheet=====
+
*LPC2103
==Articles==
+
*3.3V and 1.8V
 
+
*Power?
 
+
*32 GPIO
 +
*LQFP48
 +
*32k Flash
 +
*8 10-Bit AD
 +
*4 Timers
 +
=====User Guide=====
 +
[[Image:LPC2103-User-Guide.pdf]]
 
==Links==
 
==Links==
 
<br>
 
<br>
 
*[[RoboCupElectrical|Electrical System]]
 
*[[RoboCupElectrical|Electrical System]]
 +
 +
[[Category: RC Electrical]]
 +
 +
[[Category:2007-2008]]

Latest revision as of 20:01, 24 May 2020

The heart of the on-robot electrical system is the micro-controller. It is the central point from which commands are received from the wireless system, interpreted, and sent to the peripherals. Just as in 2007, an ARM based micro-controller is used in 2008, but unlike in 2007 the micro-controller will not be the sole device for all of the computational task. This year some tasks such as reading encoders are handled by a Field Programmable Gate Array (FPGA). The micro-controller will still have the task of decoding packets, interpreting them, and executing commands. Since the wireless system will be a two-way protocol the micro-controller will also monitor and report the status information for the robot such as battery health, kicker charge, ball presence, and errors.

Previous Results

In 2007 the NXP (Phillips) LPC2138 was chosen due its high computing power for its price. An 8 or 16-bit micro-controller could have been used but since the LPC2138 was about the same price as these chips it was felt that the extra dollar or two in price was well worth double or triple the power. Also, other concerns, such as current draw, were not considered enough to warrant use of a less powerful chip. In terms of overall performance, though no measurements were made, it was generally agreed that the firmware used on the LPC had plenty of headroom in terms of processing power and code space. The only concern came when encoders were considered for the design and it was found that there were not enough I/O pins vectored to interrupts. Also, there was little I/O left when the design was complete as every available pin was used.

Selecting a Micro-controller

Even though the LPC2138 proved to have good performance for a relatively chip price other, similar controllers will be evaluated for 2008. This year there is an even stronger justification for using a 32-bit processor. For one, there will be 4 PID loops for feedback control on the motors. Based on the calculations done RC08Brushless here the sampling rate of this controller will need to be XX. Since a clock speed of about XX is needed to meet that spec its far better to continue to use a 32-bit processor instead of finding a suitable 8 or 16-bit controller. Other factors such as the overhead of the wireless protocol also play a part in using 32-bit processors over 8 or 16-bit.

One of there areas were it seemed the LPC lacked was number of I/O. Though the I/O crunch wasn't a problem last year and likely won't be this year it is still comforting to have a good variety of I/O in case specifications change.

Tasks

  • [x] Generate an I/O spec
    • [x] This means we have to wait until all the other systems are fully spec'd and ready for design
  • [X] Find a part
    • [X] Evaluate based on number and type of I/O, availability of dev tools in linux, support in general community, package size, current and voltage characteristics, and cost.
  • [X] Purchase and begin development with a dev kit
  • [X] Spec and find the support hardware. (Oscillator, LEDs, switches, etc.)
  • [X] Schematic design
  • [ ] Fabricate demo
  • [X] Implement wireless protocol in firmware
  • [X] Build base station using dev kit
  • [X] Build remote control.
  • [ ] Implement closed-loop motor control in firmware

Specifications

Micro-Controller

Schematics

Parts

Quick Specs
  • LPC2103
  • 3.3V and 1.8V
  • Power?
  • 32 GPIO
  • LQFP48
  • 32k Flash
  • 8 10-Bit AD
  • 4 Timers
User Guide

File:LPC2103-User-Guide.pdf

Links