Skip navigation

community

Embedded Systems

6 Posts tagged with the microcontroller tag
1

By Jim Trudeau

 

Sometimes real gems are hiding in plain sight. We are bombarded by  data, and who knows what brilliant discoveries we miss in the cacophony  of noise. A friend might point out something. “Hey, have you seen…” and  call our attention to an item. We take a look and, lo and behold, that  magic something emerges – a piece of music, an idea, a book, a tool that  fills a real need. You wonder how you lived without it, and it has been  in front of you all along.

 

FreeMASTER may be such a discovery for you. It has been available in Freescale’s  roster of development tools for years. Really. With almost no fanfare or  publicity, this little gem has been startling discoverers and  generating smiles on the face of its users. So, what is it?

 

FreeMASTER is a real-time debug monitor. Ho hum? Let’s define the  problems it solves. You’re writing software for a real-time system,  like: a motor running an appliance; the engine control in a car; the  sensors in an airbag; the control surface of an airplane; or anything  that has a feedback loop. Now, try to debug that dynamic system  real-time. Yes, sometimes you need to stop the system to study its  state. More often you need to see it operate dynamically, to control it  dynamically, to see why it goes wrong as it works! You cannot do that with a normal debugger. You need FreeMASTER.

 

 

Data visualization

With FreeMASTER you establish a communication channel to the target.  You monitor variables of interest in real-time, at sampling rates you  determine. You can modify those variables real-time, that is, you can  push data down the pipe to the target to modify the behavior of the  system dynamically.

The native data visualization display within FreeMASTER is the  oscilloscope. You can display multiple variables, and have all the  control options you’d expect of a scope.

Figure one shows FreeMASTER tracking two simple variables. One is a  short value rising to maximum and falling to zero. The other generates a  sine waveform by reading data from a table. I changed the step  increment about halfway through to show you that you can push values to  the target.

 

Figure 1. FreeMASTER tracks and displays variable values real-time

Figure 1: FreeMASTER tracks and displays variable values real-time.

 

But it gets much better.

The display area is arbitrarily extensible via HTML. If you master  FreeMASTER, you can add third-party instrumentation “widgets” based on  ActiveX and embed them in the display area. You can wire them up to  variables analogous to the way the oscilloscope works, reading and/or  changing values. In this way you can create as elegant or complex a  dashboard as you like to represent the system you are testing or  demonstrating. This open-ended design makes FreeMASTER an  extraordinarily flexible and powerful tool. Figure 2 is an example  screenshot of an animated display representing engine knock behavior and  feedback control as handled by our Qorivva MCUs based on Power Architecture technology.

Figure 2. The data visualization area of the FreeMASTER tool is arbitrarily extensible

Figure 2: The data visualization area of the FreeMASTER tool is arbitrarily extensible.

 

As they say with Ginsu knives, “but wait, there’s more…”. You can  embed slide shows, presentations, data sheets, or entire packages of  information around a product or a problem. We do it. A really solid  example is the FreeMASTER project for the Tower System for Automotive Sensors that I wrote about here. That has data sheets, block diagrams, and prebuilt scopes for all the sensors, all inside a single FreeMASTER project.

 

 

Data recording

FreeMASTER also implements a data trace capability called the  Recorder. The Recorder uses an on-target buffer to store data readings  and then downloads the buffer to the data display. It captures data at a  higher and more reliable sampling rate than the oscilloscope (near  ten-microsecond resolution). Clearly this can have some impact on the  real-time performance of your application, but the data capture can be  invaluable for analysis. You identify the variables (up to eight) you  want to capture, and specify the size of the on-target buffer.

You also specify a trigger event to start the sample.

 

In the “real time” analysis that you can do with the scope, you see  things as they happen. That is actually a relatively coarse view with a  fair degree of interpolation in the data visualization. You have no  ability to zoom into the data to analyze it at a fine level of  granularity. The sampling rate is not precisely consistent. A lot can  happen during the intervals between the samples. For example, if we were  to pull that same sine wave data at a high increment “real-time,” it  would get pretty ugly. Figure 3 hardly looks like a sine wave at all  and, depending on how fast your data is changing, this display may not  be adequate for you.

Figure 3. Real-time in the oscilloscope has its limitations

Figure 3: Real-time in the oscilloscope has its limitations.


The resolution of the recorder, at microsecond level, is much finer.  In Figure 4 you can see a data trace using the same high increment. That  sine wave looks pretty smooth at millisecond resolution.

Figure 4. The data recorder captures data at fine time resolution

Figure 4: The data recorder captures data at fine time resolution

 

Even still, everything is relative. Figure 5 shows you that you can  zoom in on data. When looking at the data at microsecond resolution, you  can see the stepwise increases induced by the fact that we are pulling  data from a table of values.

Figure 5. A conceptual representation of the FreeMASTER zoom capability.

Figure 5: A conceptual representation of the FreeMASTER zoom capability.

 

All of this should demonstrate that you can use FreeMASTER to study  your data as you need, at the level of detail demanded by your  application. You can also capture the data to a text file for later  analysis in other tools if you wish. Setting up the data trace is typically a matter of configuring the  recorder in FreeMASTER to specify what variables you want to trace. If  you want to change the default buffer size, then you’ll modify a header  file. It is pretty simple stuff.

 

 

Platform support and connections

Real-time data monitoring does not come without some performance  price. It takes cycles to read or store data and push it up the pipe.  But, FreeMASTER has multiple ways of communicating, some of which are  very-low intrusion, such as OSBDM. Others require an on-target driver.  The Table below summarizes platform support and connection protocols.  The BDM connections are very near to zero-intrusion on the running  software. The data trace we were just talking about requires a target  driver.

Table 1. Where and how you can use FreeMASTER.

Table 1: Where and how you can use FreeMASTER.

 

 

Hardware-in-the-loop-simulation

Perhaps the most exciting capability of the tool is that the data  output can be retargeted. Like the design of the data visualization  engine, the data stream itself is not restricted to FreeMASTER. The data  is accessible through an ActiveX interface to any application that can  consume ActiveX services, such as MATLAB®, Excel, Internet Explorer,  PERL, VBScript, Jscript, and so on. What you can do is limited only by  your imagination.

 

Here are two high level use cases involving FreeMASTER feeding data into MATLAB or Simulink.

You might use real-time, real world data rather than theoretical data  to feed input into a complex simulation, and see how the model would  respond.

Alternatively, take a set of identical inputs and run them  simultaneously in both the processor and the model, using FreeMASTER to  stream the results out of the processor. Compare the results from the  two systems to see how the model does against reality, thus establishing  whether the model is valid, and if so, under what conditions.

FreeMASTER enables both of these scenarios for testing models of  highly complex dynamic and non-linear systems. Talk about way cool.

If you’ve read this far, I think I’ve got you hooked. However, here’s one more facet on the gem.

Integrating FreeMASTER with the CodeWarrior tools is simple.

 

Since there is typically an on-target driver involved, you often will  add source code and integrate it into your project. This gives you the  flexibility, as noted above, to do things like change buffer sizes  really easily. When you configure FreeMASTER itself for your  visualization displays, you’ll save the information in a FreeMASTER  project file. I added that FreeMASTER project file into the related  CodeWarrior project by drag and drop, done. Double click inside the  CodeWarrior tools, FreeMASTER launches. Simple and sweet, no need to go  hunting for anything.

True to our overall enablement philosophy, of course you aren’t  required to use a particular development environment. FreeMASTER is a  separate application. You can download it, and the required  communication driver software, here. You can build them in other development environments, like the IAR tools for example.

Also, true to its name, FreeMASTER is complimentary. Seriously. This much functionality at this price?

I told you it was a gem.

2
The traditional approach to picking silicon involves data sheets; matrices of features; at best, a complex spreadsheet of all the many parts with all the many options laid out. Let’s call this the “top down” approach. You have to already be somewhat familiar with the universe of parts. Then you have to see if the part fits your need. Does it have SPI? Does it support JTAG? Can it support the touch capacitive screen your team wants? Even when it all comes together, how do you know that it can do SPI and JTAG simultaneously? What if those subsystems use the same pins? It’s ugly. You know it is.
Enter Solution Advisor from Freescale. Right now it covers the Kinetis MCU parts. This online tool takes a different approach. Let’s call it “bottom up.” Instead of attacking the problem from the top down perspective by starting with what we have, the bottom up perspective tackles the problem from your point of view. The question then becomes: What do I want? What do I need to do this? That basic assumption makes a world of difference. Suddenly you are freed from knowing anything other than what you already know: your design parameters. Hallelujah! That is good human-centered design.
So fill in the blanks. You need a segment LCD? Click and go. Need SPI capability? Just say so. Click the module you need on the left, and the Solution Advisor pops up a configuration window that lets you specify capabilities (Figure 1).

By Jim Trudeau

 

I admit it. I’m a sucker for a good human interface. So we’re going to depart from our usual software focus just a little bit. My excuse is that we’ll talk about a tool that gives you a better way to pick silicon based on a better human interface into the whole process. We are all about good solutions here.

 

The traditional approach to picking silicon involves data sheets; matrices of features; at best, a complex spreadsheet of all the many parts with all the many options laid out. Let’s call this the “top down” approach. You have to already be somewhat familiar with the universe of parts. Then you have to see if the part fits your need. Does it have SPI? Does it support JTAG? Can it support the touch capacitive screen your team wants? Even when it all comes together, how do you know that it can do SPI and JTAG simultaneously? What if those subsystems use the same pins? It’s ugly. You know it is.

 

 

Enter Solution Advisor from Freescale. Right now it covers the Kinetis MCU parts. This online tool takes a different approach. Let’s call it “bottom up.” Instead of attacking the problem from the top down perspective by starting with what we have, the bottom up perspective tackles the problem from your point of view. The question then becomes: What do I want? What do I need to do this? That basic assumption makes a world of difference. Suddenly you are freed from knowing anything other than what you already know: your design parameters. Hallelujah! That is good human-centered design.

 

So fill in the blanks. You need a segment LCD? Click and go. Need SPI capability? Just say so. Click the module you need on the left, and the Solution Advisor pops up a configuration window that lets you specify capabilities (Figure 1).

 

http://freescalehome.files.wordpress.com/2011/08/image1.jpg?w=578&h=276

 

Figure 1. Pick the capabilities the product design requires.

 

 

You can specify voltage, temperature range, package, and memory. The FlexBus interface is particularly sweet, and worthy of a picture (Figure 2). Again, we’re talking an intuitive human interface here that lets you define what you need based on how you think and see, not on a dry list of numbers or register diagrams

 

http://freescalehome.files.wordpress.com/2011/08/image2.jpg?w=578&h=336

 

Figure 2. Specifying the characteristics of the bus that ties everything together.

 

 

You mix and match the design elements as you will. The list of potential controllers that fit your needs changes automatically based on your choices. If it drops to zero, you are warned immediately – yet another great human interface touch (Figure 3).

 

Figure 3. Uh oh! Now you’ve done it.

 

 

When you’re done, you can pick a 100 percent solution, or a non-preferred solution (you’re a grown up). Once you’ve picked the processor, you can check the pin muxing to see if your particular choice of modules work together (Figure 4). Talk about cool – within a minute or two you know if your design is going to have problems. (I purposefully set this up to show you a failure case.)

http://freescalehome.files.wordpress.com/2011/08/image4.jpg?w=578&h=271

Figure 4. Sorry, these components won’t play together in the same box.

 

 

Continue reading on Software Meets Silicon blog

3

Self-repairing processor

Posted by Eavesdropper Mar 21, 2011

crisp-self-repairablechip-1300474079.jpg

 

CRISP has developed a multi-core processor that will test and repair itself, sort of. There is an on-board resource manager that will test to see if a core is malfunctioning, and if so, send the tasks to a functioning core. The idea is to create a chip that will always work 100% of the time regardless of internal component failures. ‘‘Because of the rapidly growing transistor density on chips, it has become a real challenge to ensure high system dependability. The solution is not to make non-degradable chips, it's to make architectures that can degrade while they keep functioning, which we call graceful degradation. With the right dependability infrastructure many-cores can be a solution', says Hans Kerkhoff accociate professor at the University of Twente.


 

Still in the design, prototype, stage, this technology may very well be the standard future of chip design. My old critic is what is the "resource manager" gets corrupted due to a bad core? I'm sure more details will emerge over time on how they will handle such events.


 

CRISP stands for Cutting edge Reconfigurable ICs for Stream Processing. It is a collaborative effort from the University of Twente, Tampere University of Technology, Thales Netherlands, Recore Systems, Atmel, and NXP at the moment.


 

Eavesdropper

6

xim3production0.jpg

 

The XIM 3 stand for XBOX Input Machine version 3. For those  who do not know, the XIM 3 allows for a keyboard, mouse, joystick, and other USB based devices to be adapted to the console. But that is not the end of the device's features. In many games a little autoaim functionality is added to help the player aim using a controller, since the controller is not the most precisely controlled input device. The XIM 3 has onboard software called "Smart Translators" that takes a particular game's aiming and movement actions and attempts to remove any autoaim and movement aids to give a PC like keyboard and mouse feel. Let's take a look at this achievement from the inside.


SDC11274.JPGSDC11275.JPG

 

The device is stylish and does not feel cheap. The casing, a dense plastic, sits the screen at an angle allowing the player to see the information while seated as if at a desk, within the LCD's viewing angle. 3 A type USB ports are on the back for, presumably, a keyboard, mouse, and XBOX controller. The XBOX controller is needed, ultimately, for sending the control signals to the console. The XBOX addresses a controller and expect signals. The XIM piggybacks on the controller signal. A mini usb port is present for a connection to the XBOX console itself. A barrel plug for a power adapter is also present, which may be needed at a user adds a USB hub for more devices.


SDC11277.JPG

 

The XIM 3 shell is held together with 2 visible screws and two underneath foot-pads. Inside shows the screen ribbon cable connected to the mainboard on the base. The screen model number is SG100331. Ribbon cable is marked TS8001S FKJ40010 V1.0. The LCD is a QVGA panel


SDC11278.JPGSDC11280.JPG

 

The mainboard has a model name HDDC3C02 made by HDDC inc. No information could be found on the company or model number. However, the central microcontoller is a NXP - LPC1768FBD100. A cortex M3 100Mhz 32 Bit ARM processor with 65KB RAM and 512KB program memory space. On the mainboard is a Texas Instruments TUSB2046B 4-port Full-Speed USB Hub, hence XIM3's 4 ports. (The hub requires 3.3V, the assumption is that the NXP ARM is also run at the same voltage.) Also present is a MAX3421EE USB peripheral host controller with SPI interface. This controller digital logic and analog circuitry necessary to implement a full-speed USB peripheral, or in this case the T.I host controller. (Supply voltage for the MAX chip is also 3.3V) Not to surprise anyone, but a LD33 F022 (3.3V) linear voltage regulator powers the whole system. My only complaint about the system are the experience I had with the 3 main USB ports. It was easy to bend a pin out of place, impeding cable inserts. However, I bent the pins back in place, and all was well.


SDC11279.JPG

 

 

There is no additional memory, so the entire program sits in 512KB. Overall, it is an impressive design, circuit, packaging, and the code must be exquisite. This is an example of only one person accomplishing an amazing feat on his own. Inspiration to all of us and our ideas.


 

XIM 3 units are finally available at the XIM Technologies website on a regular basis. When the XIM was first released, the attention and web traffic was so great that it crashed the servers. After the website's servers were upgraded, "OBsIV" the creator of XIM, would only open the store privately for short periods, like 5 minutes. The only way to the store was knowing the direct address, and was not available from the home page. Some people were using other services, like "alertbox," to monitor when the site would open. Eventually, everyone who desperately wanted one, now has one. For the record, the one pictured above was purchased in a 5 minute window in February.


 

Want to know how the device performs in games? I will relate my experiences in an up and coming post.


 

Cabe

0

29894_web.jpg

A complete computer system in 1 cubic millimeter. Onboard is a low power microcontroller, memory, battery, wireless radio, solar cell, and a pressure sensor. This system is meant to be an implantable eye pressure monitor for glaucoma patients. I'm sure a patient would feel this think, despite the size. Think about getting a splinter. Created by three professors from the University of Michigan, Dennis Sylvester, David Blaauw, and David Wentzloff, the project was presented at the International Solid-State Circuits Conference (ISSCC) in San Francisco.

 

"Our work is unique in the sense that we're thinking about complete systems in which all the components are low-power and fit on the chip. We can collect data, store it and transmit it. The applications for systems of this size are endless," Sylvester said.

 

Blaauw said, "When you get smaller than hand-held devices, you turn to these monitoring devices." He continued, "The next big challenge is to achieve millimeter-scale systems, which have a host of new applications for monitoring our bodies, our environment and our buildings. Because they're so small, you could manufacture hundreds of thousands on one wafer. There could be 10s to 100s of them per person and it's this per capita increase that fuels the semiconductor industry's growth."

 

Wentzloff, speaking of the onboard antenna, "This is the first integrated antenna that also serves as its own reference. The radio on our chip doesn't need external tuning. Once you deploy a network of these, they'll automatically align at the same frequency."

 

The system uses an aggressive sleep mode scheme. It wakes every 15 minutes to take readings at about 5.3 nanowatts. The battery charges in 1.5 hours of sunlight, or 10 hours of indoor lighting. But if it is implanted, how can this happen? It can store up to a week's worth of data.

 

See more about the team at their personal sites.
David Wentzloff: http://www.eecs.umich.edu/~wentzlof/

David Blaauw: http://blaauw.eecs.umich.edu/people.php?u=professor

Dennis Sylvester:
http://www.eecs.umich.edu/~dennis/


Eavesdropper

0

Pelican.jpeg

Pelican, a California startup company, is trying to make a big name for themselves by being a little outside the box. They a promoting a new camera for cellphones that consists of 25 small cameras. The concept is to spread available light over the 25 lenses as opposed to the large one it they are replacing. Image quality is improved by this capturing of more light, and performs extremely well in low light conditions. The final imaged is a collage of the 25 smaller pictures.

Pelican also boasts that the 25 different pictures add an element of 3D depth to any one picture, and gesture capture is the main goal of this feature. Added as a front facing camera could allow us all to use our smartphones without ever touching it. Although they are pushing this tech for portable devices, I would like to see this on my desktop or laptop for similar gesture control. This camera system is also much smaller than what is used now, any phone could use a trim these days.More at http://pelicanimaging.com/pelican-unveils.htm


Eavesdropper