X Files

PICO1

I have just received from a friend a link to a piece of the history of the first “singe chip calculator”:  http://www.spingal.plus.com/micro/

The web  page is titled “Microprocessor History” and tells the story of what was research and development work done by a little know company, called  PICOElectronics Ltd, in Scotland in the late 1960′s.

Now, while I am not particularly interested in the debate wether they managed to beat INTEL to the punch, I found some of the details extremely curious for how this work seems to be eventually traveling across the world to NY first where General Instruments had its headquarters (PICO Electronics used GI to manufacture their chips) and later to a new (in those days) factory in Arizona! Among the many products developed in those years were the very first video games (Pong) components.

What a coincidence, that factory eventually was sold by GI to a group of private investors funded by venture capital  (Sequoia)  who created: Microchip Technology Inc.

Their first microcontroller product was then called the PIC!

 

 

 

Generating Map files with MPLAB X

I started using MPLAB X since the very first betas were made available so I have eventually acquired a little confidence with the tool. Occasionally though I can still find myself hunting around for a feature/configuration parameter that is not where it used to be (in MPLAB 8). Eventually it just takes a little random probing around in the configuration dialog boxes and the many sub-panes… it’s all there!

Continue reading

SDHC and SDXC

SDXC

A couple of readers have warned me recently that SDHC and SDXC cards are becoming the norm and that spells troubles for the unaware.

In fact, both in the PIC24 (both editions) and the PIC32 book, I spent a couple of chapters to discuss the interface to SD/MMC Cards and developing a small library to allow access to files when the cards are formatted using a FAT16 file system.

While the key principles remain the same, things change quite a bit when you start consider (7 years later) what the market offers. Basically, SD/MMC cards are slowly disappearing as the memory size upper limit (2GB) of the original standard has been reached and quickly passed. To overcome that limitation, since 2009, several vendors have started adopting the SDHC specifications first (increasing that limit to 32GB) and the SDXC specification later (increasing the limit to 2TB).

At the same time the file system has changed as most users nowadays prefer FAT32 formatting and eventually the SDXC cards have been standardizing on the “exFAT” (patented) file system.

The SDMMC.c and FileIO.c examples do NOT support any such features!

Clearly it goes beyond the scope of the books I wrote, and it would require a much more complex body of code to keep up with these advances. Although I might soon add support for the FAT32 file system (or I might simply replace it in the examples), I think the most appropriate thing to do is to direct my readers to the Microchip MDD File System library.  This is a standard component of the larger Microchip Application Library and is a free, current, professionally maintained and documented piece of software that I greatly recommend for all actual embedded control applications!

Donate to Wikipedia

I am not ashamed to admit that I love and use a lot Wikipedia. It is fast, convenient and gets most of the technical stuff I typically look up right to the level I can understand and use it. But perhaps most importantly, it is one of the few places on the internet without advertising!

This is something I truly appreciate and I am willing to pay, so every year I do give a small contribution (just USD 10) to keep it like that!

Jimmy Wales wrote:

<<< Google might have close to a million servers. Yahoo has something like 13,000 staff. We have 679 servers and 95 staff.

Wikipedia is the #5 site on the web and serves 470 million different people every month – with billions of page views.

Commerce is fine. Advertising is not evil. But it doesn’t belong here. Not in Wikipedia. Wikipedia is something special. It is like a library or a public park. It is like a temple for the mind. It is a place we can all go to think, to learn, to share our knowledge with others. >>>

Donate!

More Multimedia Boards

It’s about time for an update on the latest and greatest demo boards for the PIC24 and PIC32.

MikroElektronika has been busy in the last year cranking out new demo boards almost every quarter. While I was happily playing with their very first MultiMedia Board the PIC32MX4 based MMB,

MikroE MMB

they introduced a PIC32MX7 version (adding Ethernet connectivity)

PIC32MX7 MMB

and shortly after that a “microMMB” version with the MX4 processor:

PIC32MX4 uMMB

so small that it barely gives you room for four screws around the display to fix it to a panel.

These boards are great to experiment with the Microchip Application Library (MAL) and in particular with  all things graphics, touch, audio and USB. But they are also ready for being mounted in your embedded control application and to became it’s user interface if not the brain.

I wrote a lot of code for them and I intend to share it and document it gradually in the coming weeks to show you how to get the basic functionality (user interfaces) but also to show you things that many believe would only be possible with much more expensive and complex systems.

You can get a glimpse of it on the new page of the Exploring PIC32  web site dedicated to the Multimedia boards and the Multimedia demo projects.  I am so fond of them, that I have decided to   help MikroElektronika re-sell them and to provide documentation and support on this blog and on my two companion web sites.

Merry Christmas and Happy Free RTOS

It is Christmas, again, not sure how this happened …

Of all my ambitious plans for  2009 only a few got done, but looking back I am pretty sure somebody must have stolen a couple of months from this years’ calendar. I will be more careful next year, won’t let it happen again.

I have been reading more about RTOSes recently, and specifically FreeRTOS:

freertos-book.GIF

My new year resolution: Learn to use (Free)RTOS to give better structure to my projects and practice the art of programming as the real pros!

Happy Holidays !!!


Searching for a Pin in a Haystack

There is one problem I have with the current style used in the PIC24 and PIC32 datasheets, it has to do with the way the pin out of the device is presented. Since so many functions are multiplexed on each pin, I find myself constantly checking for potential conflicts when choosing carefully my GP I/Os. The pin-out table is designed to list alphabetically all the individual options and determine the pin number, but then how do you cross check for other functions with the same number?

As I did before for the PIC24, I have created a convenient Excel spreadsheet and filled it with the PIC32MX3xx pinout table info: PIC32MX3xx pinout

Now you can sort the pins by name, by pin number (in different packages) or by group/peripheral.

As an added bonus it was easy to include the information about the pin usage by the Explore16 board and the various PICTail boards available (including the AV16/32 of course).

I hope you’ll find it useful…

P.S. Should you find any error or omission, please make sure to report it to me…

Inexplicably Working Errata

A few days ago, I received an email from a reader who reported a new errata on page 123 (in the “Learning to fly the PIC24″ book) in the write() function, an example of redirecting the “stdout” output stream.

The function receives a pointer to a buffer containing characters that need to be forwarded to the output device of choice and a counter. A loop is performed to print sequentially the required number of characters, but (here is the bug) I apparently omitted to increment the buffer pointer.  To the reader’s greatest surprise the code example seems to work anyway! How is this possible?

Continue reading