Need Help With Product Selection

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Need Help With Product Selection

2,185 Views
Tanuka
Contributor I

Hi,

 

I hope to get help with product selection here. I'll try to post my most important requirements here as a beginning. Please accept my apology in advance if I'm posting this kind of request in the wrong area.

 

My application is a medical device that employs many hundreds of infrared and visible LEDs arranged in a mixed array approx. 20 inches by 36 inches in size. The device has a control panel with various controls and LCD readouts. The brightness of the LEDs is controlled independently (for the infrared and the visible) using PWM driver chips. The LEDs are grouped into logical zones of about 32 LEDs each and each zone is controlled by one driver chip. There are in turn about 24 zones, which are independently controlled by the microprocessor and its application program.

 

I need a microprocessor already integrated into an EVB to provide control/clock signals to the PWM LED drivers. It must also service user input from the control panel and drive the LCD displays. The microprocessor will NOT be running an operating system (linux, windows, etc), but rather merely a C/C++ runtime. I need a good selection of programmable timers on the chip, as well as a good array of interrupts. For this application I don't think the 8-bit microprocessors will be sufficient. I'm looking at 16-bit and possibly 32-bit processors.

 

I also need to keep the costs of any code development system/tools down - say, under $1,000 if possible. I also want to keep the cost of an EVB down as well - I'm looking for an EVB for the first prototype device that can also be used for the production units. Space is not a big issue, so the EVB can be sizable as these things go. An EVB under $250 would be ideal.

 

I hope this helps to describe my needs suffiently to help other members here to point me in the right direction.

 

Thanks.

Labels (1)
0 Kudos
20 Replies

1,427 Views
TomE
Specialist II

> I also need to keep the costs of any code development system/tools down

 

How about $0?

 

http://www.codesourcery.com/sgpp/lite/coldfire

 

That gets you the gcc compiler/linker. Linux or Windows version.

 

Then you'll need a debugger pod. Were using CodeSourcery with the P&E "USB ColdFire Multilink".

 

Then you'll need a code editor. Something between Notepad, Eclipse, Microsoft Visual C++ Express, all the way up to the commercial ones.

 

Depending on your experience, the above might suit, or it may be far to manual (command line, Makefiles etc) and may take too much of your time to get going the way you want.

 

> An EVB under $250 would be ideal.

 

RRP US$699, but the development tools are free.

 

http://www.logicpd.com/products/development-kits/freescale-zoom%E2%84%A2-coldfire-sdk

 

This is the one we have. The CPU supports a QVGA LCD controller (but by "LCD" you may have meant seven-segment), Ethernet, USB and stuff you probably don't need and don't want to code for.

 

This thing runs at 240MHz and has 16M of FLASH and SDRAM, probably more than you need as well.

 

Check out ColdFire V1 and V2 - see what CPUs fulfil your requirements here:

 

http://www.freescale.com/webapp/sps/site/taxonomy.jsp?tid=mcHp&code=68KCFV1

 

Start at the above, click on a CPU, click on "Software and Tools", and you'll find EVBs and Development Systems.

 

I'd suggest trying the free evaluation copy of Code Warrior. It is "code size limited" to 64k for ColdFire V1, but for your application you may not need anything more than that.

 

http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CW-MICROCONTROLLERS

 

Follow the list of "supported development boards" for one that suits your requirements.

 

 

 

 

0 Kudos

1,427 Views
Tanuka
Contributor I

TomE,

 

Thanks for your detailed reply - this is very helpful indeed! I'll carefully check out all the links you provided.

 

I wanted to see if I understood one point you seem to be making in your post. If I chose the Coldfire V1 or V2 cpu, would the free gcc compiler/linker still work for those processors?

 

The manual code development/compiling/testing bothers me not - I use IDEs only occasionally, and develop a lot of C++ code that is quite complicated (I develop enterprise software for one of the Big Three telecoms - ('can you hear me now?')

 

Any way, thanks again for your help.

0 Kudos

1,427 Views
TomE
Specialist II

> If I chose the Coldfire V1 or V2 cpu, would the free gcc compiler/linker still work for those processors?

 

That's only what they're for.

 

I'd suggest downloading CodeSourcery and giving it a try. Get CodeWarrior too. You'll find out soon enough what you can get working quickly.

 

> and develop a lot of C++ code that is quite complicated


Meaning "more than 64k"?

 

The last thing you want is "complicated C++" on an embedded system. Debugging is a lot harder than on a PC. Without an OS (and without an MMU and memory protection) it will simply crash or go crazy and you won't know why. Keep it simple, code in C, avoid new/free/malloc if you can.

 

0 Kudos

1,427 Views
Tanuka
Contributor I

TomE,

 

My program for this application is likely to be bigger than 64K. Will the free gcc compiler have any limits on the size of the executable it produces?

 

I'm not new to embedded system programming, but my experience here was only on the old 8-bit motorola chips. That particular pgm was very successful, and I did follow the guidlines you suggest here - digest the code down to the simplest (and therefore usually the fastest) possible form that still gets the job done.

 

I might get by with a program smaller than 64k, since I will be endeavoring to use effective hardware designs outside of the processor (as semi-autonomous interfaces that will sit between the processor and the PWM LED driver chips) to offload much of the work onto those interfaces, rather than trying to make the processor outputs drive the LED driver inputs directly.

0 Kudos

1,427 Views
JWW
Contributor V

Tanuka,

 

TomE gave you a lot of good suggestions.  I thought I'd expand a bit more.

 

For your type of system, as described so far, I would suggest or ColdFire MCU family (with embedded flash).

If you run out of capacity with this family we do have some low cost larger ColdFire MPUs (read as no embedded flash) where you will be able to migrate any code you've written quite easily.

 

I would start with the MCF52259 as this part has a large number of peripherals and I/O.  It will allow you to rough in a lot of ideas and if you get the application to fit easily in smaller RAM/Flash ratios then you can always order a smaller ColdFire MCU and you'll be all set.  

 

This family of products is also supported by our new rapid prototyping hardware development system called 'Tower'

 

Checkout:  www.freescale.com/Tower

 

I know you suggested you do not need an operating system.. But thought you might want to at least glance out some of our partner RTOS vendors on the software and tools page.  But also we do offer a complimentary RTOS that will help you get reference device drivers as well as many communications stacks (like USB, CAN, etc) with a nice robust kernel that offers quite a few basic services and let's you build in more advanced services as well.  The forums here on Freescale's site have 

several MQX specific groups.

 

Checkout: www.freescale.com/MQX

 

Ok now for low cost Tools.

CodeSourcery has a nice low cost system that TomE highlighted. 

And we now offer Codewarrior as a Eclipse based tool.  This tool will run on Linux or Windows based systems, and supports our 8bit products and 32bit products in one tool.

 

Checkout: www.freescale.com/codewarrior

Download the latest tool: Codewarrior Eclipse (MCU 10.0) special edition to get a completely free edition or you can download the full professional edition and it comes with a fully functional 30 day license.  The advantage that Codewarrior offers above a lot of other tools is the integration of Processor Expert.  If you are not using an RTOS and decide against MQX, then Processor Expert is great because it will autogenerate your init code for the product. Great for getting all the initial PLL/clocking/muxing and pin I/O conflicts sorted out early in your project.  It has a full knowledge database on our MCUs that you can do all your resource conflict checks graphically in the tool and then add drivers right to your project.

 

Recommend Tower Cards based on your project description:

The getting started Tower Kit for the MCF52259 Family: TWR-MCF5225x-KIT  <-- I'd buy this one to get started.

Then get a prototyping card so you can easily wire in your LED banks with their PWM drivers.

Prototyping card (you can use more than one if needed): TWR-PROTO

Then I'd pickup the LCD plugin per your needs: TWR-LCD

 

There are several getting started videos (youtube) on those linked site above that will give you an overview.

And of course checkout www.towergeeks.org to get support from the "Tower Community"

There are free schematics and layout files, as well as lots of examples of products that other customers are building with Tower systems.  Also some examples of how you can use free/low cost cad tools and an overnight PCB shop to build your own Tower cards to interface to your product (you could whip up a PWM board to drive your LEDs).

 

Hope this helps.

Let us know if you don't find what you need.

 

-JWW

0 Kudos

1,427 Views
Tanuka
Contributor I

JWW,

 

Thanks for the excellent suggestions and detail. I'll check them out right away. You and TomE have been a great help to me in this crucial initial product selection and preliminary design phase of my project. I'll post any new questions I have in the next few days.

 

Thanks again.

0 Kudos

1,427 Views
Tanuka
Contributor I

JWW,

 

After looking into the Tower system, I have to say that it really appears to be an engineer's dream! I'm definitely going to use it in the development of my medical device.

 

I also see a great many advantages in using an operating system on the target processsor board. I'm looking at uCLinux, as suggested by TomE, and also other embedded Linux's. Can you offer any suggestions that might help me to avoid needless pitfalls here? Which ones are the most compatible with the Coldfire line and with CodeWarrior?

 

Another question - I need to select a flash programmer and debug pod. I assume the Tower system won't hinder my selection there, that I will be able to connect to the debug port on the processor board without difficulty? Does Freescale offer a flash programmer and a debug pod, possibly the two devices in one package?

 

Thanks JWW

 

0 Kudos

1,427 Views
TomE
Specialist II

 


Tanuka wrote:

JWW,

 

After looking into the Tower system, I have to say that it really appears to be an engineer's dream! I'm definitely going to use it in the development of my medical device.

 

I also see a great many advantages in using an operating system on the target processsor board. I'm looking at uCLinux, as suggested by TomE, and also other embedded Linux's. Can you offer any suggestions that might help me to avoid needless pitfalls here? Which ones are the most compatible with the Coldfire line and with CodeWarrior?

 

Another question - I need to select a flash programmer and debug pod. I assume the Tower system won't hinder my selection there, that I will be able to connect to the debug port on the processor board without difficulty? Does Freescale offer a flash programmer and a debug pod, possibly the two devices in one package?

 

Thanks JWW

 


 

How much is your time worth? What is it worth to you getting the product working a month earlier?

 

You need a development system where you can install it, compile a demo program, load it and go. Then you start modifying that test program to add your code. If the "test program" is a fully functional operating system, compiled instantly (without any porting) from the IDE and supported by the debugger, then there are a lot of things you won't have to port and customise before you can start working.

 

These 32-bit CPUs are very complicated when compared to 8 bitters. Things like caches can ruin your whole month if you get them wrong. On a previous project with an MPC860 it took us about 18 months before we got the MMU working properly because we didn't buy a working OS. It sort-of worked, but not properly. Things like SDRAM Controllers can be misconfigured to cause intermittent memory corruptions that can take a long time to track down.

 

For a Debug pod, see what CodeWarrior has on their supported list. Ditto the OS. You want an OS ported to CW.

 

A recent thread here notes that code written for different deevlopment platforms uses different ABIs:

 

https://community.freescale.com/message/66876#66876

 

That means a ucLinux built for gcc might not work under CW7.2 without recompiling everything and rewriting much of the assembly code.

.

So get everything together if you can.

 

Linux may be a better fit for a "big" CPU like we're using with 32M of external FLASH and 16M of RAM. If you wnt file systems and networking, then that's a good option. If you don't need "everything" and can get the OS and your code into 256/512k or internal FLASH and 32k/64k of internal RAM, then a different OS may be easier to fit.

 

Flash programming There's a difference between programming one unit on your desk and 1000/day on a production line. If your product is to be built around an EVB then you might not need a production-grade programmer.

 

 

0 Kudos

1,427 Views
Tanuka
Contributor I

TomE,

 

I definitely don't want to 'reinvent the wheel' when it comes to getting a software development system and an initial test pgm running on whatever 32-bit MCU I finally chose to use. I will take your advice to get all the components 'together in one package' in the sense that they all (hardware, software, debug pod, etc) have to be fully compatible with each other.

 

Coming from the 8-bitters (HC11s), I'm still wondering about the OS on the 32-bitters. Without an OS, won't all the initialization of the MCU all be up to me? Or does CodeWarrior and perhaps CodeSourcery have library functions to link with my test pgm so that initialization will mostly be done for me? Is development without a target OS (ie, just with a C-runtime on the MCU) even a viable option, as long as I don't need filesystems, network functionality, etc?

 

A related question - these code size limits of 64K or 128K for the Special Edition of CodeWarrior - does that include the size of any OS plus the size of my application program?

 

In a nutshell, assuming I can get by without filesystems and network functionality, can I realistically do this development without any OS on the target MCU?

 

If I can do so, will I still be able to fully employ a debug pod as I develop my application?

 

Sorry for coming into this so 'green', but before I begin selecting components and spending bucks, I want to be sure I understand my options well.

 

Thanks TomE, for identifying so many of the pitfalls now, before the fact. It is much appreciated.

 

0 Kudos

1,427 Views
TomE
Specialist II

There's a lot of initialisation. This is usually divided up into "CPU Initialisation", then "CPU Peripheral initialisation" and then "Development board initialisation".

 

SW provides an IDE and compiler and debugger. Download their evaluation package and SEE what they provide. I don't know, I've never used CW ('though I'd like to have).

 

An OS targeted to a CPU, Eval Board and Development Platform may provide initialisation or they may depend on the Devel Platform. You'll have to find this out yourself. If you get it "all in one" it should be done in there somewhere.

 

You'll still have to customise the initialisation to how you want the peripherals set up. There MAY NOT BE any initialisation for custom timer configurations, like the PWM that you need. That shouldn't take too long.

 

Freescale provide a "CFInit" or "coldfire_init" program that will generate initialisation code for the CPU if you want to do it the hard way. You can find this easily on Coldfire's site, BUT DON'T. Freescale haven't updated the version they provide for OVER TEN YEARS! Get his one:

 

http://www.microapl.com/CFInit/cfinit_main.html

 

The reason to get an operating system is the libraries, the "higher level programming" and the documentation. Some things can be done "just in an event loop", but there are a lot of advantages in having threads, file storage and the ability to use networking code if you need it and so on and so on.

 

> In a nutshell, assuming I can get by without filesystems and network

> functionality, can I realistically do this development without any OS on the target MCU?

 

in a nutshell you could write the whole thing in machine code without using an Assembler. Would you want to? I've done that on some old machines. All the reasons we went from there to Assemblers and Compilers and Libc and (maybe) STL and then Operating Systems. It is the next sensible step.


For all your questions, ask the companies you want to buy from, BUT read their adverts and free downloads first.

 

0 Kudos

1,427 Views
Tanuka
Contributor I

TomE,

 

After doing more research and some more thinking on this, I wanted to ping you once again on the matter of getting all the pieces (EVB, Debug Pod, OS, Custom Application) to be compatible with each other.

 

If I understand you correctly, you used CodeSourcery Lite (not CodeWarrior) with a Linux or uCLinux OS, on a Freescale V4 EVB, and you used CFInit and likely also a Freescale BSP that matched to your chosen EVB. And you used a Debug Pod that promised 100% compatibility with the ColdFire V4 you chose.

 

I'm sure you didn't take this stuff out of a box and get a "Hello World" app running the next day. I'll bet you had to go thru quite a bit of grief getting the correct init code for your V4 and getting your Freescale BSP and the CodeSourcery  tools to integrate correctly so that you got no crashes and all your drivers/peripherals worked on the EVB.

 

Ok, so a statement you made in one of your posts worries me some - you said 'I wish we would have used CodeWarrior' or something to that effect. Now, the project you're doing is somewhat more complicated than the one I'm going to do, but I get the impression that from the time you started working with the pieces I've listed above in this post to the time you got a working app was probably a few months. Am I close?

 

But you did get it working - and that's important. I'm willing to go thru some weeks or a few months of grief, if need be, to get mine working, as I don't have the means to pay $2,000 every year for the CodeWarrior suite license. It looks wonderful - to say the least - but it's out of my range presently.

 

Can you let me know if I'm way off base here?

 

0 Kudos

1,427 Views
TomE
Specialist II

The company has existing products based on the MCF5235 and using CodeSourcery with our own Makefiles.

 

The initial development system and code for the MCF5329 project started from that base.

 

Ditto the hardware - a modified version of the previous one.

 

We got a MCF5329EVB (not V4) EVB to prototype our video hardware on.

 

With all that hardware, development and software history we were up and running quickly.

 

I haven't had to "start from zero" in a long time, but can imagine all the things that could go wrong.

 

So I can't recommend a specific "everything in a box" that I've used. You'll have to find the boxes and compare them.

 

Put this on your list ($399), but only if you've managed to getEclipse working for you. I've tried it and I get lost every time. For me it is a "We're not in Visual Studio any more Toto" experience.

 

http://www.codesourcery.com/sgpp/standard_edition.html

 

Click on "Try Now" and you can download and try it for free.

 

1 - Try thr free "naked GCC and Makefile" CodeSourcery first. If you can't hack that,

 

2 - Click on "Try Now" for the "Standard Edition" and see if you can handle Eclipse.

 

 

0 Kudos

1,427 Views
Tanuka
Contributor I

Considering everything, it's very tempting to place myself mostly in the hands of Freescale by purchasing the Tower system and CodeWarrior Standard Edition, along with some 'outside' tools and accessories - those that are clearly 100% compatible with the V1-V4 chips and with CodeWarrior itself.

 

+ side of such an approach - I avoid a substantial portion of the extensive development and interfacing/integrating learning curve you and many others have encountered, and I get direct support from Freescale on just about all of the pieces I'm working with, including the initial selection of the best pieces to use.

 

- side of the approach - It's a bit costly at $1000 per year for the CodeWarrior license.

 

I'm talking myself into going with CodeWarrior Standard Edition here! The extra 1000 bucks per year is most probably a bargain considering the sheer number of extra hours of my time (and subsequent product development delay)  I'm liable to see otherwise.

0 Kudos

1,427 Views
Tanuka
Contributor I

Hey guys,

 

I don't know why no one mentioned this great chip selsection tool Freescale has:

 

http://http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MICROSELECTOR" rel="nofollow" ...FreeScale MicroSelector Tool

 

This tool downloads to your PC and lets you enter many paramters, while it displays the 8-bit, 16-bit and 32-bit qualifiers (winners) in your search. Then on each you can simply click and see the Freescale web page for that product, with all its detailed specs, etc.

 

This is a great tool!

 

I can't be the only dunce (newcomer) that knows about this. You guys have helped me a great deal here - but you shooda pointed me to this tool too!  Just wanted to broadcast the tool here so others can see it too.

 

Thanks guys!

 

 

 

0 Kudos

1,427 Views
Tanuka
Contributor I

Looking, but can't find the list of hardware debug pods that are compatible with CodeWarrior Standard Edition, targeting primarily the V2-V4 Coldfires.

 

Can anyone point me in the right direction? The P&E solution, if you buy their MultiLink Pod + their Software, is pricey at $749. A list of the hardware pods fully compatible with CodeWarrior, and assurance that CodeWarrior itself has all the software needed for extensive debugging with the 'approved' pods, is what I'm looking for.

 

Thanks much!

0 Kudos

1,427 Views
Tanuka
Contributor I

Ok, I found the following page which verifies that the P&E MultiLink BDM Pod (at about $249) is fully compatible with CodeWarrior with the Coldfire V2, V3, V4 chips as the targets:

 

P&E MultiLink

 

 

0 Kudos

1,427 Views
Tanuka
Contributor I

However, there is still a possible issue here with regard to the P&E MultiLink Bdm Pod - whether the P&E software performs debugging and programming functions of importance that CodeWarrior does not - if so, this might well make the P&E software worth the extra $500 to purchase.

 

Can a CodeWarrior 'expert' please address this question here? Does CodeWarrior do everything of importance that the P&E software will do on the MultiLink Pod?

0 Kudos

1,427 Views
Tanuka
Contributor I

This morning the tech guys at P&E inform me that their software that you can buy bundled with the USB MultiLink BDM Pod is only a subset of the utilities that come with CodeWarrior.

 

So, the P&E software is not needed/useful if one has CodeWarrior.

0 Kudos

1,427 Views
JWW
Contributor V

Tanuka,

 

I've been offline a bit, so sorry for the extended delay in getting back to you.

 

Couple of items to points out.  

 

We've basically replaced the old init code tool from MicroAPL with our Processor Expert Tool inside Codewarrior.  This tool will autogenerate init code for "non-rtos" systems if you choose to build your system from scratch.  You can use this tool to check all your pin mux'ings and generate low level init code and some driver code within a few minutes of work. 

 

As for debuggers.  You can start with the free one that is built into each Tower Board.  Each board has an onboard debugger/flasher/etc that connects your laptop to the board via USB.  Then once your more comfortable and have some spare money you can buy the P&E solution to get faster downloads / trimming ability etc.   Codewarrior knows how to use both debugger technologies.

 

Hope this helps

JWW

 

0 Kudos

1,426 Views
Tanuka
Contributor I

Thanks JWW - helpful indeed! Today I purchased the TWR kit for the V2 from Newark Electronics, with all the accessories you suggested. Can't wait to get started!

 

0 Kudos