Easy Linux PIC'n
This article explains the details of programming your favourite PIC under Linux in the E&E Labs. Wether it be for Ontwerp or your Skripsie, the stability and performance of Linux makes this an attractive alternative to doing it in Windows98. All testing was performed using the MPLAB ICD Module and a PIC16F877A in the 4th floor E&E Lab. I assume the reader is familiar with basic Linux usage (file system navigation, command excecution, etc). For those of you in the dark read this short Linux Primer
Setting up the Hardware
In the 4th floor lab the benches at the front are already configured for use - look for the little black boxes next to the PCs. The set up involves a RS-232 cable from the serial port of the computer to the MPLAB ICD Module inside the black box and a RJ-11 terminated cable to connect to your Project. Consult the Microchip In-Circuit Serial Programming Guide for details on the ICSP programming interface for the PIC, or ask your favourite lecturer ;-)
So in a nutshell you plug the RJ-11 cable into the socket on your project and make sure your project has power. Simple!
Setting up the Software
Below I will outline the steps needed to compile your C-code into Intel Hex format and upload the Hex file to your PIC.
Wine Is Not an Emulator, which makes it perfect for running any windows program under Linux. Luckily for us, Wine is already installed in the 4th floor lab.
This section explains compiling your C-code source file under Linux. If you're writing code for the PIC in assembler, you shouldn't be here! We use the same compiler thats on the Windows partition (CCSC) except we are now launching it through Wine. Grab a copy of CCSC here and unpack it with the command
tar jxvf picc.tar.bz2
If you look inside the picc folder you will see a file called Ccsc.exe - this is our compiler. From the command line excecute
Don't WorryTM about the messages it spits out - Wine gets confused sometimes. You'll see a new window pop up prompting you for a filename, just as if you had ran the file under Windows! Neat... Anyway because CCSC doesn't provide us with a file browser interface, we need to send it the source code filename via the command line. To aid in this we'll make use of some basic aliases, explained in the next section.
ICD is the software that performs the task of transferring HEX data between your PC and your PIC. A copy is available here. Unpack it using the command
tar jxvf icds.tar.bz2
Inside the icds folder there is a file named Icd.exe - this is the programming software. Just as above, excecute it from the command line with
Once again, Don't WorryTM about all the End-of-the-World messages it spits out. Wait a while and ICD will open up - at this stage you will recieve some errors if your hardware setup is incorrect. Use the ICD software exactly as if you were in Windows!
Setting up the aliases
To make life easier we'll set up two aliases. One for ccsc and one for icd. Open up your ~/.bashrc with your favourite editor and add the following two lines in the alias section
alias ccsc='/usr/bin/wine /home/students/YOURUSERNAMEHERE/picc/Ccsc.exe' alias icd='/usr/bin/wine /home/students/YOURUSERNAMEHERE/icds/Icd.exe'
Exit your editor, type
and you're sorted. Now you go to your work directory containing all your C-code source files and type
And thats a wrap...
Instead of using wine, native Linux compilers such as GPUtils and programmers like ICDProg are available although I haven't been able to get icdprog to work correctly... feel free to add to this article if you get them working.