Hi everybody,
It seems there are some issues and I cannot post my review for the Freescale kit I've just received so I decided to create a document here and put all the things I have so far on this kit. I ran into some issues with the kit itself but I managed to fix it and I wanted to share my findings with the community.
First of all, many thanks to the Element14 team and Freescale for giving me the opportunity to test out this product. Not so long ago, I worked on an automotive project that was using one of the MPC56xx series of MCUs. I thought I should enroll for this roadtest and share my accumulated experience with these parts.
I have received my kit (from US) on Friday, March 23rd and it came in the right moment since I had some spare time in this weekend to start working with this board.
Package content
The board comes packed into a small cardboard box which has all the relevant information printed on inside. The board itself is roughly 35 x 105 mm (~3.5” x 1.375”) and it features an USB A plug on one side. I wasn’t expecting more since the board is cheap enough and adding USB cables or CDs might have pushed the price higher
Hardware
The board itself contains 2 MCUs, an analog output temperature sensor, 3 push-buttons, some LEDs, 0.1” headers and the Tower type connector.
The debugger is present on the board and uses one of the MCUs. Freescale chose to use the OSBDM/OSJTAG type of debugger, which is supposed to be open-source (I haven’t checked its details yet; maybe on later posts) and it uses a 44-pin MC9S08JM60 MCU, part of their HCS08 8-bit family.
The debugger has 2 LEDs, a green one, D1, which is labeled “USB” and a yellow one, D2, labeled as “TGT”. These LEDs will lit when the USB connection is present and the latter, when the 5602 is being powered-up.
The other MCU is the PPC5602PE and it is a 100-pin QFP type. Near it one can see a 14-pin, 0.1” header, J5, which can be used to connect the 5602 MCU to external debuggers.
I wasn’t able to find the schematic for this board even though it was mentioned a few times in the board’s documentation. Please let me know if you’re able to find it.
I was contacted by someone from Freescale and they will post the schematic as well.
Software & Documentation
I started out by going to the suggested (as per suggested links printed on the board’s box) webpage:
http://freescale.com/StarterTRAKmini
I continued by registering to the Freescale website in order to be able to download certain software and documents. You need to be registered in order to download the CodeWarrior IDE for this product.
First of all, I downloaded the board-related documents and code examples. In order to shorten your search here are the links:
http://cache.freescale.com/files/microcontrollers/doc/fact_sheet/STRTRAKUSBFS.pdf?fpsp=1
http://cache.freescale.com/files/32bit/doc/quick_start_guide/STRTKMNUSBQSG.pdf?fpsp=1
http://cache.freescale.com/files/32bit/doc/user_guide/TRKUSBMPC5602PUM.pdf?fpsp=1
Also, it would be a good idea to download the MCU-related documents (datasheet, reference manual):
http://cache.freescale.com/files/32bit/doc/data_sheet/MPC5602P.pdf?fpsp=1
http://cache.freescale.com/files/32bit/doc/ref_manual/MPC5602P_RM.pdf?fpsp=1
http://cache.freescale.com/files/32bit/doc/prod_brief/MPC5602PPB.pdf?fpsp=1
Of course, you can also download additional material, such as application notes and code examples as well.
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPC560xP&fpsp=1&tab=Documentation_Tab
Then, I downloaded the evaluation version of the CodeWarrior 2.10 Classic. The evaluation is set for 30 days, but the license can be extended.
More details about the CodeWarrior IDE options can be found here:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CW-MPC55XX_56XX&fsrch=1&sr=3
Another important item on the board's page mentions the user has to download the latest OSJTAG drivers from P&E Micro website ("Important – before plugging in the USB board, the latest OSJTAG drivers need to be downloaded and installed from the PEMicro OSBDM website."). The given link points to:
http://www.pemicro.com/osbdm/index.cfm
Again, in order to be able to download the drivers you need to register on the P&E Micro's website. Then, the drivers can be directly accesed from here:
http://www.pemicro.com/downloads/download_file.cfm?download_id=301
The board's documents are mentioning the RAppID from Freescale. Again, you need to log onto the Freescale's website in order to be able to download the installation kit.
Hands-on session
After I gathered all the required materials I started by installing the P&E drivers first. These drivers are made for a composite USB device, having 2 interfaces, one as a USB-CDC virtual COM port and the other as a Debugger port using the LibUSB as for the driver.
The next to-do on my list was to install the CodeWarrior 2.10 Classic Evaluation version. Everything went fine with its installation.
After having the IDE installed, I unpacked the zip file containing the board's demo application ("TRK-USB-MPC5602PEXSW.zip").
The kit provides 2 Windows applications (a GUI for a thermometer using the board's temp sensor and a Pong game using 2 of the push-buttons on the board; the 3rd push-button is the reset) and a CodeWarrior project to be loaded into the board. I tried to install the application but I got some errors and in the end the solution was to manually download a package from Microsoft's website ( Windows Imaging Content )
You can get it from here:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=32
After installing WIC, I started again the Windows application installation and this time everything went fine. The Freescale demo application also installs the .NET 4 Client profile on your machine if you don't have it already installed. Then, you are asked to restart your machine, which I did.
After restarting my machine I fired up the board's Windows application which asked me to choose between the thermometer demo or the Pong game. Both choices are requiring you to choose a COM port. I have no other COM ports on my machine so it was easy to choose the COM port for the application since it was the only one present in the drop-down list. The COM port is the one provided by the debugger's 1st USB interface
Getting into trouble and finding the fix
Important! The board I have received had no preloaded application it. So, I had to load the CodeWarrior project and load the firmware onto the board.
After loading and compiling the CW project into the IDE I pressed the Debug button in order to load the firmware onto the 5602.
CodeWarrior started the debugger application ("ICDPPCNEXUS" from P&E Micro) but the application was frozen. I tried to kill it from the Task Manager and after I while it disappeared.
I tried again from the CW IDE but I got the same unresponsive debugger application. When I unplugged the board, dialog box appeared and it seems it detected the OSJTAG debugger.
I plugged back again the board and I press the Refresh List to detect again the debugger, but again the application became unresponsive.
I tried to change the USB port, tried even with a USB hub but I got again the same unresponsive debugger application.
The Device Manager showed that both USB interfaces were running fine and there was no issue with the HW in my system, though the debugger still wasn't running.
The ICDPPCNEXUS version that comes with CodeWarrior 2.10 is 1.34.00.01.
Right at this point I remembered there was a limited size IDE for MPC56xx devices being offered at the P&E Micro website. I decided to try it out and I downloaded the installation kit from their webpage (http://www.pemicro.com/products/product_viewDetails.cfm?product_id=158&CFID=9108288&CFTOKEN=3b500d561a45eb85-41D136A9-0D6B-8917-5C859ABF8BB2605E).
Again, you have to log onto P&E to get your size-limited license for this IDE. After this step, I fired up the debugger that came with the P&E IDE but I got the same issues. The ICDPPCNEXUS version in this case was 1.30.00.03
On the debugger detection window an FAQ #29 was suggested. I've checked over the mentioned FAQ but I got no luck. Nothing to help me with my issue.
When the board was plugged into the USB port, 2 LEDs on the debugger side were lit all the time (the USB and TGT, green and yellow LEDs).
Seeing that all these things didn't help at all I have decided to check for a firmware update of the debugger. I found a package onto P&E's website (http://www.pemicro.com/downloads/download_file.cfm?download_id=348) and I installed it.
I started the "P&E Firmware Information Utility" or "osbdm_fwinfo.exe" which showed me I got version 31.0 of the debugger firmware.
Then, I started the "P&E Firmware Updater Utility" and the funny thing was it was saying it will update the debugger firmware to 30.21 version (a downgrade, neat huh? ).
I went on with the upgrade process and a message pops on the screen saying I need to unplug the board from the USB port and put a jumper on the debugger in order to upgrade the firmware. In the board's manual, one can find this debugger upgrade jumper is J3. I removed the board from USB, put a jumper on J3 and then, I pulled back-in the board.
Now, none of the LEDs on board were lit and Windows reports a new HW has been found since the debugger entered bootloader mode.
The driver for this mode was already installed as part of the P&E driver package, so I just let Windows choose the driver for this mode. The driver for this mode is using the LibUSB as well (as the Debug interface).
I pressed Ok on the warning message and the firmware upgrade process started. After it ended, in less than 30 seconds, I was asked again to remove the board from the USB port, remove the J3 jumper and plug it back-in.
Now, the HW detection comes back again searching for the drivers. I let it choose its recommended drivers, but now I saw it was a bit different. Instead of the CDC interface for the serial port, now a "PE Micro USB Serial Port" appears in the Device Manager. It uses Jungo drivers.
After the drivers were installed, I pressed OK on the FW updater message. I tried to press OK before the drivers were installed but it didn't want to. I presume it was waitting for the drivers to be installed in order to confirm if the new firmware was working fine.
Indeed, the firmware version of the debugger was 30.21.
Then, I jumped back to CodeWarrior project and hoped to see the debugger in working condition.
When the debugger starts, please select the “Embedded Qorivva OSBDM/OSJTAG device”.
Now, the ICDPPCNEXUS went fine and I was able to load and run the demo application firmware. I could see the LEDs near the 5602 working. The green (PD6) LED was lit while the blue(PD7) and yellow(PD5) blinked from time to time.
I started the demo application but unfortunately, the 30.21 debugger firmware has a different way of exposing the serial port (through the Jungo drivers) and I wasn't able to connect to a COM port to try-out the demos.
I grabbed one of the MAX3232 breakouts I had lying around and I connected J6-pin2 and J7-pin2 from the 5602 board to the MAX3232 board which in turn was connected to my computer's single motherboard COM port. Then, I was able to run the Freescale demo application successfully. I also had a quick look onto the firmware CW project and I saw a mention for 9200bps? (maybe a typo instead of the standard 9600bps). Anyway, I fired up Hyperterminal at 9600bps 8N1 and I was able to see the temperature (printed in plain ASCII, Celsius scale) being updated roughly every second.
The demo application is good for the user since it provides an example which uses a few of the features of this board. In order to know more about this class of MCUs (MPC56xx) there are some other items which I am going to present next.
MPC5500_5600 Examples
The zip file containing a few examples can be downloaded from the following location:
The zip file contains an installer which copies 5 examples on your chosen hard-drive location.
DMA-BlockMove
Flash-Config
INTC-HWvector-PIT-PLL-VLE
INTC-SWvector-PIT-PLL-VLE
PLL-sysclk
All the examples can be compiled so they will be located in either Flash or SRAM. The posibility to run the code from SRAM is good because for applications fitting in it will run faster than the same version built for Flash and you'll prevent flash wear and tear.
A good practice is to debug the examples and go step-by-step in the firmware. This helps the user in getting more familiar with the 5602P MCU.
There's an error in the "main.c" of the examples (INTC-HW-vector-PIT-PLL-VLE). The incorrect header is included. I modified the file "main.c" to include the proper header (replace the "#include "Pictus_Header_v1_09.h"" with "#include "MPC5602P.h"")
RAppID
After receiving the RAppID licence, I started this utility and I found out to be very useful.
It is intended to help you create your own custom initialization code. This utility resembles a lot the "Processor Expert" used for other types of MCUs (S08, Coldfire, ...).
The PowerPC e200z0 core is a bit more complex than other similar 32-bit cores (e.g. ARM Cortex M3) but the steeper learning curve is shortened by the RAppID utility.
Besides reducing the time budget needed for MCU initialization, the RAppID is a useful tool for exercising the 5602P's features.
I also found out the "RAppID\560xP\Help" folder contains a lot of useful information, like MCU documentation (including the core and peripherals) and tutorial details.
So, if you plan to get into more depth with this class of MCUs, I would recommend debugging step-by-step the "MPC5500_5600" examples, then the board's demo application and finally, when you have enough knowledge about the 5602P you can start experimenting with your own projects developed through the RAppID tool.
I will continue my review with other posts going into more details on the project I am planning to use this board for.
Cheers,
Bogdan