The FRDM-TFC is a convenient "shield" that can drive up to two DC motors (5A per channel), two servos and I/O for the Freescale cup line scan camera and Hall effect sensors. This board mates with the KL25Z Freedom board for primary usage with a Freescale Cup car.
Rev A is attached to this document.
Rev B is attached to this document
Codewarrior "Bare Metal" Example Code:
All Codewarrior based code examples for the FRDM-TFC are hosted on in a Subversion repository on Google Code:
frdm-tfc - Example code for the FRDM-TFC Shield - Google Project Hosting
You can check out the code with your favorite SVN client. Static releases are available in the attachments section of this page. The current release is "R1.0"
mbed.org Example Code:
https://mbed.org/components/Freescale-Cup-with-FRDM-KL25Z/
Varies by region. But yes, starting in 2014 we will be offering a freedom based version. What you see above is the work we are doing today to get it ready.
**The rules will likely stay the same that you can use any Freescale 32-bit MCU.
Still reading the specs but I assume the KL25Z is getting power from the power up of the TFC shield? Saw the ground warnings about not powering up both (TFC with battery while KL25Z from USB) so likely we have to program first (no batt)-- then unplug USB to test with battery (or other 7.2V, 0.1A source). There is no direct way to test the car 'online' so to speak.
Daniel:
Where did you see this warning? I have had the battery and USB hooked up at the same time.
Comment in the assembly manual PUB doc near the end: "Never power the microcontroller from different power sources! Switch off the MCU board before you connect your it to your PC." Also here: https://community.freescale.com/docs/DOC-1020 where it mentions:
NOTE: Never power the microprocessor board and interface boards from different power supplies! In such case the grounds on both boards are
not connected and you can damage the board. The grey flat ribbon cable that interconnects the boards is for signals only, there is no common
GND connection!"
This could be specific to the Qorriva implementation-- just wanted to be sure before frying anything.
Dan:
This is not an issue KL25Z based TFC board. The return for the battery and the return for the USB are tied together so the reference potential is held to the same value.
That being said.... Here is the only issue you may have. NEVER measure the voltage across the motors during operation with a scope ground connected to either side. This could cause a path issue. With an H-Bridge, The outputs are references to 1/2 VCC. This could cause an issue unless you scope is floating or running on battery. You can look at each side of the motor (H-BRIDGE) with respect the GND on the PCB and be OK or take a different measurement.
-Eli
Eli,
Thanks—Was not looking to measure the actual motor voltage but the PWM inputs to the Hbridge very soon to confirm the issue that David found (where openSDA appears to cause contention)—as I saw some funny stuff when operating the demo code.
Dan
Dear Andres,
Do you have installed the NI VISA drivers from National Instrument Website?
Here is the link:
NI-VISA 5.4 - National Instruments
Dear Andres,
1.- First install the LabVIEW.
2- Then install the NI Device drivers: NI Device Drivers 2013.02 - National Instruments
3.- Finally install the NI VISA drivers: NI-VISA 5.4 - National Instruments
-Juan
Hi,
How can I find out how to use the inputs of the H-Bridge control? I get from the schematic that there are 8 inputs (A-IN1, A-IN2, A-IFB, ENABLE, FAULT, B-IN1, B-IN2, B-IFB) and the schematic shows their corresponding pins, but I don't know what signals to give them. The example code doesn't seem to be using all of them, and I'm planning to write code using Processor Expert components. Can I find the specs somewhere?
Valentin:
1.) Have you looked at the Datasheet for the part? It has a good picture of the internals! Even processor expert won't tell you how the chip works. It is important to study datasheet *before* you write any code
2.) Study the source code for the example code to see how it works. Basically, you need to drive complementary signals into each bridge.
Hello Eli,
Thank you for replying.
The schematic (available to download above) says the part number is a MC33887. Not sure where you found that part number.
Sorry, I didn't compare the part number from the schematic with the part number from the datasheet I found. I got that datasheet by clicking the mbed.org Example Code link on this page (Freescale Cup with FRDM-KL25Z | mbed), clicked under Datasheet (The Freescale Cup Knowledge Center), then on Freescale Cup DC Motor Specifications and then on H-Bridge Specifications http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC33931&webpageId=M98446&nodeId=01435...
I realize now that it was a mistake.
Anyway, it still shows me less pins (IN1, IN2, D1, D2, EN) and I don't know how they corespond to the ones from the schematic (A-IN1, A-IN2, A-IFB, ENABLE, FAULT, B-IN1, B-IN2, B-IFB) or the ones in your code. Your insight would be most helpful.
Did you get schematics? If you did, you will see the page that has the 2 H-Bridges and the signal mapping. There are 2 sets of signals for each H-Bridge
Thank you Eli!
I managed to get the code working. Turns out I only need to set ENABLE to High and send complementary PWM signals to A-IN1, A-IN2 to controll the speed and direction of motor A, and send complementary PWM signals to B-IN1, B-IN2 to controll the speed and direction of motor B. I would have been stuck without your help.
Hi John
I sent a private message and a e-mail also (in your Freescale address) but I didn't receive any response. Did you receive them?
TFC-KIT: The Freescale Cup Intelligent Car Development System
You can by the board here
Hi,
Is there any example code for the speed sensor?
Hi, see https://community.freescale.com/docs/DOC-95170 for the implementation of the speed sensor. To my knowledge there is no sample code readily available from Freescale but I would post the question in the open forum or your respective region to see if a team member from another group can share one with you.
Hey John
Could you send/sell me:
1 x FRDM-TFC shield rev1.0 (or newest version)
1 x TFC-CAMERA-ASY line scan camera
In the website the delivery time is in August and I can't wait this time. Flavio Stiffan told me he doesn't have these hardware with him....
I would just place the order. John mentioned that the online system often reports very long delivery times even though eveything is in stock.
What country are you in?
hi,
I have 1 question....
I can't know how I apply 'build package' to code warrior.
plz someone answer my question.
Best Regards
Hi, have you looked at the videos under thread Freescale Cup Shield for the Freedom KL25Z?
Hi,
I'm using Processor expert to generate some configuration code.
The problem I have is that I can't get to work the PTD6 or PTD5 pins used by the linescan sensor.
But with the same configuartion I can use other pins to do the ADC.
I don't think this is a hardware problem because sample code works fine.
And my code works too but only on other ADC pins.
Best regards
I am quite backed up with work right now. Some source code would be helpful.
My guess is that the environment is getting trashed by Processor Expert. My best advice is to inspect the device registers with the debugger and see what isn't configured right. Also, since you have working drivers, just skip PE and get to writing your application.
We have been provided 7.2V 2000mAh Ni-Cd battery with the freescale kit and 12V charger.So, what can be the maximum voltage of the Ni-Cd battery when fully charged? once when i charged, it reaches upto 8.5V, so I fear of damaging the battery.
So, Should I charge it with given charger and Charge battery upto 9V??
Take a look at the specs for the battery. 7.2 is nominal voltage BUT you do not want it overcharging. (i.e. Fire!)
You mention a 12v charger. Can you take a picture?
Hi,
my team is starting at the innovation cup and we want to use this TFC-Shield combined with the FRDM K64F board. Is there any example like this, how to use the TFC-Shield in a K64F project?
Best regards
Hi David,
Yes, it has been tested. I recommend you get in touch with massimoviolante and RichardBalogh, they have worked on that.
Hi,
TFC-Shield and K64F is a logical combination, but unfortunately not an easy one. As the boards don't have the compatible pinouts, you'll need to rewire the connections
and can't use the boards immediately. Here you can find the comparison table (also Arduino Uno included, as the producer declared the boards compatible with Arduino shields):
http://robotika.sk/tfc/PinoutComparison.xls
As you can see, the appropriate signals don't match.
I have wired it up and it isn't too bad. Some notes:
1.) The selection of I/O on the FRDM board was based upon TPM (Timer Pulse Width Modulators) availability to optimize the usage of the hardware. It was not mapped to Arduino as the psuedo standard pinout was not optimal for using the the FRDM board. Arduino compatibility really only means power and some I/O line up and that it meets a mechanical footprint.
2.) TPM0 (labeled as FTM0 in the spreadsheet) is the Timebase for the PWM to the DC motors. You need complimentary drive so you need 2 channels of TPM on the same time base (@5-10Khz switching)
3.) TPM1 channels 0 and 1 are for the servo time base. It is *much* slower period than the motor drive so it needs it's own time base.
4.) The speed sensors are on there own time base (TPM2).
5.) The K64 CPU has FTM units, not TPM like the KL25Z. FTM peripherals are more complex are you will need to port functionality! This means you will need to read the reference manual and write some code.
So, before you start, make sure you absolutely understand what signals are needed to drive the motors (@10KHz complimentary PWM) and servo (0.5mS to 2mSec pulse @ 20mS period). You need map these signals onto the flex timer units on the K64. Some of the signals line up and others do not. I only needed a couple of air wires to make the connections. The bigger job is updating the code to the FTM and not TPM.
It is a good academic exercise but you must first fundamentally understand the IO on the FRDM-TFC. Once you understand the IO and peripherals you should be able to wire it up to *any* microcontroller.