Freescale covers a lot of territory horizontally – industrial, consumer, networking, medical … the list is long. Our technological breadth and depth is immense as a result. We’re famous for it. So what? You are always right to ask, “What’s in it for me?”
Well, our technical scope serves you well. You have an orthogonal challenge to the one that we face – while we have to cover a wide area, you have to deal with one area in great detail. This is where solutions make all the difference. Our breadth is not skin deep. We’ve got the skill to put a package together that you may find appealing. Far more than appealing! If we’ve got it right we are going to help you solve a problem way better than the next bloke – which is the whole idea.
My premise here is simple: because we have our fingers in a variety of pies, we can cook up a delectable little treat for you that you might find really tasty. So let’s start at the bottom and head on up the menu. This time the topic is MEMS sensors aimed at the automotive market, packaged into the Tower System for Automotive Sensors, which supports the full range of Freescale Xtrinsic automotive sensors. Check out the video:
Boy do we love acronyms around here. As a short aside, one of my favorite is PCMCIA: People Can Memorize Computer Industry Acronyms. You thought it meant something else perhaps?
But really let’s talk about MEMS: – micro-electromechanical systems. These very tiny mechanical systems built using semiconductor fabrication technology form the basis for many Freescale sensors. Freescale introduced its first MEMS-based inertial sensors for airbags in 1996, so we’ve been at this for a while.
The sensor package under discussion here, shown in Figure 1, contains inertial sensors. The sensors are available individually as well. These are packaged as a Tower Plugin – a TWRPI. We call these “twerpies” around here. I love acronyms. They will plug into any Tower module that has the TWRPI socket.
Seriously, you might use these sensors for an airbag system, stability control, a braking system, tilt angle measurement for any purpose, and so on. In this case they plug into a mother board built around an S08 processor, designed as a Tower System module, shown in Figure 2. That board has four (count ‘em) TWRPI sockets for these sensors, and support for both DSI and PSI5 communication
protocols.
Figure 1: The “TWRPI” sensors and communication parts
Figure 2: The Freescale Tower System Sensor Module
I wrote about the innovative, award winning Tower System here. I called it Legos for engineers; it really is a brilliant system of plug and play modules. Pick your processor, pick your peripherals, plug them together, and voilà! You have a reference design. These automotive sensors fit into this playground along with everything else, and the “everything else” is an amazing (and growing) list.
As I said, this particular mother board has an 8-bit S08 processor on board, with 6 kB of RAM and 96 kB of flash memory. You don’t need to plug it into a Tower System, you can use the module all by itself as a self-contained unit. Note the presence of debug headers on the board (of course) supporting OSBDM.
Now we start to head up the software stack – we started at MEMS, out of which we build sensors, put those onto TWRPI cards, put those into a package (if you want), plug those onto a mother board, which you can put into the entire Tower System. So far, it’s all hardware. Really neat hardware (I love the Tower System), but “just” hardware. Given my software focus, I personally see all the magic and promise in those peripherals, and the software that makes use of them.
The S08 family is supported by the CodeWarrior Development Studio for Microcontrollers, from the complimentary Special Edition all the way up to the full Featured Professional Edition. Built on the Eclipse IDE, you have what you’d expect: build environment, code editors, debugger; the works. There is a vibrant community of third party tools as well. The CodeWarrior tools come with Processor Expert Software, the component management system for building reusable software components like peripheral drivers. This is better than a driver library, as you can build exactly what you need quickly and easily, optimized for your specific project. Depending on the nature of the software you’re writing, it may or may not be useful for you in this particular domain. You probably won’t use it much working with the sensors, but it could be useful for an end application working with system peripherals. I wrote about Processor Expert most recently here.
Honestly, this is the same song I’ve played in this forum more than once. It’s a really good tune, but what else is new?
While some of us may write perfect software every time, most of us need really good debug tools at least occasionally. One of the intriguing software development needs of a sensor-based system is real-time debugging. You can’t stop the system to study what’s happening; you have to analyze it while it’s in operation. This is where FreeMASTER comes into play. It is a debug monitor. Working over the BDM connection on an S08, it non-intrusively monitors specified variables (without a target-side driver) and displays values real-time on an oscilloscope-like display, as shown in figure 3.
Figure 3: The FreeMASTER data recorder display
That’s pretty cool. FreeMASTER is highly extensible. The data display area is (under the covers) HTML-driven, so highly extensible. As an example of this, and of the level to which we like to enable customers, accompanying the sensor package you can find a file called TWR_SENSOR_AUTO_FREEMASTER. Look in the Current Updates and Releases section on the linked page and download the file. It is a zip file that contains a FreeMASTER project file and a folder full of “stuff.” That “stuff” is worth having, trust me. As well, it shows you what FreeMASTER can do for you.
Through the FreeMASTER display it has, for each sensor and daughter card, product information, block diagrams, register maps, simple example apps, and links to additional information like data sheets. Figure 4 shows the block diagram for the MMA6900.
Figure 4: The block diagram for the MMA6900 accelerometer on display in FreeMASTER
Maybe best of all, the FreeMASTER scope, and in some cases some neat gauges, are already wired up for you, as shown in figure 5. All you need to do is install FreeMASTER and get it hooked into the hardware. The rest is already set up. This is almost too good to be true.
Figure 5: Gauges for the MMA6900 in FreeMASTER
As you can see, FreeMASTER is highly extensible if you want to take the time to live up to the second half of its name and master it. In this case you don’t have to, we’ve done it for you. But with a little experience you can connect variables to user-implemented instrumentation widgets (gauges, dials, meters) and see what’s happening in a customizable interface. True to the first half of its name, it is complimentary. Like the CodeWarrior tool set and many of the tools from Freescale, it supports multiple targets; not just S08. Note that some target connections and some features require a target-side driver to push data up the pipe. You can get FreeMASTER here. Not your typical debugger.
At the top of the enablement stack you’ll find a community of developers at Tower Geeks, and a plethora of resources at the Freescale forums.
FreeMASTER comes to you courtesy of our long experience in motor control; our skill in building MEMS comes from our long history as one of the world’s premiere semiconductor manufacturers; the S08 is a reflection of our long 8-bit heritage (just look at the Freescale forums, the 8-bit product board has almost twice the messages as any other board). Software communities? We’ve been building those for a decade.
Focus that breadth of experience onto a particular domain, and you get something like the Tower System for Automotive Sensors – a vertical solution for a particular market that gets you a lot further up that steep slope toward a final product than just buying some chips.