Archive for the Tools Category

PIC32 Starter Kits Software v2.0

Software v2.0 for PIC32 Starter Kits has been released, and can be downloaded at (link)

This software replaces all 1.x versions of Starter Kit Software, and is inclusive for all 3 PIC32 Starter Kits.

MikroE MX4 Multimedia Board

It’s out! They did it!

MikroE PIC32MX4 MMB

The new PIC32 multimedia board  from MikroElektronika has been officially announced today!     http://www.mikroe.com/en/tools/pic32mx4-multimedia-board/

MikroE is world reknown for its well designed, documented and fully featured demo boards and development tools for all Microchip microcontroller families. But if you liked their Big Boards…  you are going to love this “small” one.

For less than $150 you get a board that can truly put the PIC32MX460F512 chip to work, allowing you to exercise all its peripherals, including:

  • Drive a TFT QVGA  (320×240) display with a fast 16-bit parallel interface
  • Read Touch screen input or Joystick inputs
  • Play and record sound interfacing to WM8731 16-bit audio codec (including headphone amplified stereo outputs)
  • Access files on SD/MMC cards
  • Access files on USB memory sticks (USB Host)
  • Connect to a PC (USB device) using HID, CDC or MSD classes
  • Connect to a Mouse, Keyboard or printer (USB Host)
  • Connect with a IEEE802.15.4 (MiWi/Zigbee) wireless network
  • Access additional 1Mbyte of serial flash memory
  • Access 1Kbit of serial EEPROM
  • Exercise the Real Time Clock and Calendar with a 32kHz external crystal
  • Interface to an MCP9700 temperature sensor
  • RS232 port selectable (UART1/2)
  • Interface to a 3 axes accelerometer (ADXL345)
  • Use an ICD2/3, Real ICE or even a simple PICKit2/3 to program and debug
  • Further expand the board using standard 100mils spaced side connectors

Also you can take full advantage of the entire set of Microchip Application libraries to create complex applications fast! In fact the board is designed to be compatible with the following Microchip (free of charge) libraries:

  •  Advanced Graphics Libraries
  • USB Framework (Host/Device)
  • MDD File System (FAT16 and FAT32)
  • MiWi / Zigbee
  • 32-bit Audio library
  • Peripheral library (I2C, SPI, UART, RTCC, PWM…)

I want one!… CORRECTION.., I need one!… CORRECTION I need a bunch of them!

Olimex PIC-P32MX board

And the PIC32 demo boards saga cannot be complete until we mention the Olimex PIC-P32MX

Olimex PIC32MX

This board is interesting and unique for a couple of good reasons:

  • It offers a traditional serial port instead of the USB interface
  • It ’s the most convenient for a quick wire wrap job
  • Offers both ICD and JTAG connectors
  • It’s most probably the cheapest of them all at Euro 19.95!

A Great New Board from mikroElektronika

The guys at mikroElektronika are very well known in the embedded and educational world for their large but inexpensive and well laid out boards for all PIC products. So I had been waiting quite anxiously for their first PIC32 specific board, and here it is!

The LV32MX Development Board

LV32MX

Read the rest of this entry »

A new PIC32 Stick

PIC32 Stick

There is a new third party tool available for the PIC32 … it’s a stick!

I love sticks because they are easy to handle, expand, connect. They fit on good old breadboards and wire wrap (perforated) boards.

The guys at eFlightWorks have done a good job of fitting a PIC32MX440F256 in a 56 pin DIL package, exposing the USB port and providing all the basic necessities.

The promise is to port a simple BASIC interpreter and OS (known as StickOS) to the PIC32 so that code development, programming and debugging will be possible without need to use any external (in circuit) debugger/programmer …

I am waiting anxiously for the first release to give it a try…  I will let you know…

MicroC/OS II

I finally got my hands around “the book” on Real Time Operating Systems.

uC/OS ii

Read it all in a couple of days… I loved the clarity and completeness.

Highly, highly recommended! Definitely added to my “favorites” bookshelf !

Reporting Memory Usage

I think I can say we all love the little Memory Usage gauges introduced in MPLAB a couple of years ago.. or was it more?

Memory Usage Gauges

When working in assembly with an 8-bit microcontroller and a couple of Kbytes of FLASH memory they definitely do their job, but when using the PIC24 or PIC32 type of devices, the memory space grows into the hundreds of Kbytes and things get … well, more complicated!

You start including a stack here (USB?) and a library there (Advanced Graphics), the compiler throws in a couple library modules of its own (math libs, stdio…) and both FLASH and RAM spaces become a little more crowded. It does not take long before we start wondering who is using up more memory, and why… the little memory gauges just don’t cut it anymore.

The experts will tell you right away that the sensible thing to do is to turn on the “map” option of the linker, (Project Build Options, Linker Tab, Select Diagnostics pane, then Check Create Map file) and inspect the resulting .map file in the editor window.  But the text file generated is a pretty complex (and long) document and browsing through it in search of clues about what happened to our program and data memory can be quite hard work.

Fortunately with the latest version 1.05 of MPLAB C32 compiler there is a new  option for the linker to produce a detailed summary of your project memory usage: –report-mem. Read the rest of this entry »

Good Old printf()

Good old printf() is probably the oldest debugging tool ever used, I mean beside a light bulb (nowadays replaced by an LED) … yet it represents a pretty sophisticated one when working in a deeply embedded control project. If you take the standard definition of the printf() function (as in the ANSI C standard) it assumes that you will be able to convert and print integers and floating point numbers of any size, and use a myriad of formatting options.

Assuming you have a serial port (UART) to spare for the interface with a terminal (Hyper- if you use a PC) it is the code space requirements (even excluding the floating point support) for a full implementation that makes it a difficult choice. It could be pretty large (several K of code), comparable if not more than the entire program memory available on some 8-bit microcontrollers.

So in the past I have used a bit of everything to avoid relying on printf() for my debugging/diagnostic output.  Mostly macros including itoa() followed by puts() and a mix of other hand made optimizations for simple hex output.

In the 16-bit and 32-bit world, there is a little bit more room to breathe, and  with a smart compiler’s help, things get manageable. Read the rest of this entry »

Literally Bits

The new version of the MPLAB C32 (v1.05) compiler is out and is filled with new features and a new (as in additional) DSP library designed for compatibility with the dsPIC standard DSP lib. But for me the most exciting piece of news is that “binary” is back.

One of the simplest extensions to the ANSI C standard  offered on all previous Microchip compilers was the ability to define and use binary literals using the “0b” prefix. Example:

int x = 0b000100011;     // instead of 0×23

Now you can use the binary notation with the MPLAB C32 compiler too.

I have to admit, when you are working with 32-bit  long literals, binary could get a bit … tyring, but if you are like me, with a ton of PIC18 and PIC24 code to use and re-use, it sure comes handy…

Tremor

Xiph.Org

The Xiph.Org Foundation offers an open source alternative to the omni-present MP3 audio compression: it is called Ogg Vorbis and promises same if not better performance but it is royalty-free and license free. From their web site, like in all open source project you can download the full C source code for all the tools you need to convert and play back Ogg Vorbis files/streams on most operating systems

Like most open source projects, the code is based on the assumption that you will use the classic GNU Toolchain: gcc compiler, linker, standard GNU libraries, to compile and link your application. Now as you might know the PIC32 toolchain happens to be GNU compatible … Read the rest of this entry »