We often come across a problem where an understanding of Intel Hex file format will help in solving a programming issue or technical point. Intel Hex format is a standard layout for files produced by assemblers or C compilers when they compile your source code. It is used by device programmers to program the target microcontroller with your code.
Microchip PIC microcontrollers come in a wide variety of types from very old PIC16C family through to the latest PIC16F and PIC18F devices, with several other less common types as well. Apart from some very old chips, they are all In Circuit Serial Programmable, which means that they can be programmed in circuit using a PIC ICSP programmer.
Kanda have been supplying PIC, serial EEPROM, ST7, COP8 and AVR portable programmers for many years and are always extending the range. They vary from simple units in a keyfob case to larger hand held units with storage for one or more programs up to a portable programmer with LCD and keypad that will store 32 programs.
Windows 8.1 is here and more and more people will be forced to use it as they purchase new computers. I do not like it myself as I find it slow and clunky and even more of the system is hidden from you but it is here to stay. A pity, because Microsoft got it pretty damn right with Windows 7.
It amazes us how many people launch microcontroller based products without giving any thought to how they will update the product in the future. This may need to be done because there was a bug but more likely because of customers asking for new features or competitors producing better versions.
To carry out In System Programming (ISP) of devices, such as AVR, ST7 and PIC microcontrollers or serial EEPROMs, you need an ISP connector on your PCB that matches the format on the programmer you intend to use, but this isn’t always that simple.
All microcontroller based applications include the microcontroller code called firmware but it is surprising how many people forget that they may need to update it when their products are scattered at customer locations. This may be because (heaven forbid) that they discover a bug in the system that needs to be corrected or, more commonly, that the product needs new features in response to customer feedback or competitor’s actions. So how do we simplify firmware updates?
Most of us have PIC programmers for development, such as Microchip IDC2 or a PIC ICSP programmer such as PRESTO, which are very good at what they do. But they are not ideal for either production or field updates, because they require too much knowledge to use or need a laptop to be used in a challenging environment.
So what are the alternatives?
Continue reading “Portable PIC Programmers” »
PIC microcontrollers, like most modern microcontrollers, can be programmed in system (or in circuit – ICSP) rather than in a socket programmer. This has advantages in development and in production, for example, to use different firmware for different versions or to speed up production. The major benefit though is field upgrades. We can give you lots of horror stories about people who didn’t think of firmware upgrades and had to recall products to fix a bug, not a cheap option. So how do you add In System Programming to your designs?
Continue reading “PIC In-system Programming” »
The major factors are the electronic design of the ICSP circuit and the ICSP connector format. Let’s look at the connector format first. Most Microchip development boards (and ICD2/3 debuggers) use RJ11 connector by default, but this is a poor choice for field or production use.
Microchip have scored a winner over Atmel AVR by including all the information required to program a PIC microcontroller in one Hex file. This includes code, EEPROM data, User bytes (User ID) and most importantly, configuration words.
This makes it much easier to transfer the project from development to production or between engineers, as all the information needed is in one file. Atmel, now they have been taken over by Microchip have belatedly added an ELF production file format that can do the same thing. See this post for details – Producing AVR and ATxmega ELF production files So, what is this PIC file format?