Prototype TFC Tower Board with Kinetis and Motor Drivers

Document created by johnmc on Sep 14, 2012Last modified by ebiz_ws_prod on Dec 13, 2017
Version 3Show Document
  • View in full screen mode




Tower card Form Factor

Connections to allow use with a TRK-MPC5604B Board

Camera Interfaces

1. 5-pin header to connect directly to Freescale Line Scan Camera

2. Header for 2nd linescan camera (optional)

3. RCA Camera Interface. Includes an LMH1981 Sync Extraction chip and connectors to MCU to allow for low resolution (32x32) decoding of signals

Servo Outputs

  1. 3-pin Header to connector directly to steering Servo
  2. 1 Extra Servo header.


  1. Accepts direct Battery Power – Onboard Switching regulator 5-18v
  2. Tower Card will source power to other tower modules.
  3. All circuitry except for motor controller can be optionally powered over USB Connector
  4. Battery Input and motor Outputs will be a Tyco (TE Connectivity)
  5. TE Connectivity Screw Terminal
  6. Motor Driver

2x MC33887APVW : Dual, Independent 5A Motor Driving Circuit

  1. Supports forward, reverse and braking.

  2. Current Feedback to MCU ADC to allow for closed loop torque control


  1. Integrated Kinetis MK20DN512ZVLL10MCU with OSJTAG
  2. Can be used stand-alone or be used as a peripheral in the tower system.

Additional I/O

  1. Extra signals from K40 routed to tower edge card connector. Signals for H-bridge, camera and servo can be routed to Tower Edge connector to be driven by another MCU card. Each can be disconnected via jumper. - We will need to crosscheck the signals to all other CPU modules. Would it be easier to just have a version that doesn't have the K40 populated and OSJTAG populated? Also, we may not need jumpers. Simply configure the Kinets I/O to inputs.
  2. Some basic I/O for debugging. 4-poistion DIP Switch + 4 LEDs.
  3. Inputs for Tach Signal/Speed Sensor


Design Files


Rev Alpha


Schematics (Sent to MyRO on 4.4.2012) - Includes 3d view

Assembly Prints (For Reference)

PCB Fabrication Notes

Bill of Materials

Rev A Errata:

  • Pins 4 & 5 for the camera (Gnd and +3.3v) got swapped on the PCB. You will need to swap the wires in the cable. You can pop the contacts out of the connector housing with tweezers.
  • POT0 has a jumper wire to pin 26 (ADC1_SE18 . This was done to put all signals *except* the NTSC video onto ADC1 to simplify software. Future versions will have this change in the artwork
  • Some components interfere with the tower connector. It can be mated to about 95%. Will work fine. Future versions will fix this issue


Rev Beta


Schematics, Assembly Prints, BOM, etc. - Includes 3d view


Rev B Errata:

  • None known!


Google Code repository for the Example Code:


This code works with Rev B of the board (and Rev A). All major interfaces & peripherals have been tested. At some point we will make a video going through the code. By default the Linescan camera code is enabled. The code in Main.c is pretty easy to follow. There is also code for the NTSC camera but must enabled in the TFC_Config.h file via a pre-processor directive.


There is also code used for teh OSTAG interface, Labview demo applications and drivers for the USB





Just verified the OSJTAG. Test Project to blink the battery LED's was downloaded into the K20




Testing the Servo circuits…..



Testing the pots, servos, H-bridges and K20 USB port



Linescan Camera Bringup with Labview



NTSC Camera Bringup with Labview



1.) This is a basic demo of an NTSC camera being brought in using the a Combo of the ADC, port interrupts and DMA transfers.

2.) I *ahem* overclock the ADC to 24MHz to get some extra resolution for a 64x64 pixel image (the first 6 columns are junk as they contain color burst data*)

3.) I decimate the images to a few frames per second to send over the WIFI (the booster pack card I made) to a Labview program. The Kinetis can bring the data in a the same frame rate of the camera, I just need to send much slower as there is some overhead in my communications scheme (ASCII text) and the WIFI is driven via a UART.

4.) In reality, I can get a 64 x 480 pixel image in memory as I pull in all the lines. I just decimate the rows to get a 64x64 result on the labview display.

5.) DMA does most of the work freeing up the CPU to do algorithms in the foreground.

Original Attachment has been moved to: TWR-TFC-RevB-(1).zip