Thursday, February 16, 2006

CAN: Universal bus?

Well, I'm still learning gEDA. Finally got it loaded on a PC that I actually use. I got in my head a slightly modified version of my RC CAN interface. Instead of using a CAN enabled RC controller, how about a CAN enabled smart digital motor? I could then control the PID and rate control, increase accuracy, and have more information and control. So, this board should be designed to interface with the mechanics of the standard RC servo and replace it. So, I'm considering the following capabilities (no particular order):
  • H bridge based motor control
  • Temperature measurement
  • Input voltage measurement
  • Module amperage measurement
  • Programmable potentiometer for maximum position measurement
The above would allow for shutdown of the unit before motor burnout, power efficiency calculations and power usage control. Each board would be designed and built and made to support as large a range of servos as possible, hopefully allowing wide ranging retrofit. Target manufacturer is currently Hitec, although if a low cost, good quality servo is found it will be considered.

Offboard support circuitry:
  • High current buck/boost controller: provides servos and modules with approximately 5V of regulated voltage, several amps of power (I hope). Keeps the electronics and servos electrically isolated from the main motor voltage spikes.

Now, onboard circuitry, preliminary part selections:
  • PIC18F2580 (Microchip, QFN): integrated CAN, smallest board space for a CAN chip
  • MCP1252-33x50 (Microchip, MSOP): Power regulator, will provide 5V 120mA for 2 to 5.5V input, may be replaced if a good alternative for 2.5V to 10V is found and also will phase out the buck/boost converter from some designs. Isolates electronics from servo voltage spikes.
  • MCP2551 (Microchip, SOIC): CAN voltage converter (Requires 5V)
  • MCP6S21 (Microchip, MSOP): PGA w/ SPI controls for measurement of the amperage via high side shunt, may need an external SPI delta sigma ADC
  • MCP42100 (Microchip, TSSOP): Dual Digital Potentiometer w/ SPI controls. Used to scale line voltage to monitor raw 5V/high voltage line level, tune the high and low voltages of the position capture circuit to maximize accuracy.
  • MCP9800 (Microchip, SOT): I2C temperature sensor, due to lower rate, may be software driven
Note: space constraints will limit what can be implemented. The minimum design will include the PIC, voltage regulator, and CAN chip.

Now, another objective is using the Kodak 9630 camera chip and building a camera around it. It needs a 10MHz clock and 3.3V of power (sounds perfect for the MCP1252 above!). I'd configure it with the outputs buffered to work with whatever the logic is of the host processor. What's so special?

  • 8 bit B&W
  • 126x98 pixels (approximately 12K of RAM required)
  • Single shot and video modes
  • 10MHz SPI (~90FPS) or 10MHz 8 bit parallel (~580FPS), plus H sync and V sync pins
  • 16 pin interface expected (8 data, 2 I2C, ground, voltage, Vsync, Hsync, clock out, reset). Reset is also tied to the Power Good input of the camera.
  • Possible variant: Replace the clock module with a crystal and PIC18, allow for slight variance in clock, some onboard processing, power control of an auto-focus/zoom lens onboard.

No comments: