Comment programmer l’horloge d’un PIC 18F

Mise en situation

squarewaveLorsque nous commençons nos premiers balbutiements avec les microcontrôleurs, un des premiers obstacles rencontrés est assurément le choix d’une source d’horloge de cadence du microcontrôleur ainsi que ses paramètres de configuration.

Pour les membres de la famille des PIC 18F, il y a quatre choix possibles pour cadencer la puce, soit à partir:

– d’un signal d’horloge externe,
– d’un circuit oscillant RC (résistance/condensateur) externe,
– d’un cristal externe,
– ou de l’horloge interne du microcontrôleur.

Dans les montages effectués par les bricoleurs maisons, le choix se situe habituellement entre l’horloge interne et le cristal externe.

L’horloge interne du PIC 18F

Le PIC 18F4553 possède une horloge interne qui peut être utilisée pour cadencer ce dernier. C’est une solution économique – pas de pièces supplémentaires à ajouter au montage – qu’on utilisera si une valeur maximale de 8 MHZ convient et qu’une imprécision d’environ +- 2% de la fréquence n’aura pas d’impact sur le système.

L’horloge interne offre les cadences suivantes :

Lire la suite


Abyssus universitas

In the world of computer programming, the “Hello world program” is often the first one we write.  During my computer science Degree, we did it in Cobol, Pascal, Modula, 370 assembler, …

In the world of microcontroller, where a display device his rarely utilize in a first project, we light up a LED.

Even after years of playing around with cpu chips or microcontrollers, I still revisit that old classic.

There is something fascinating about staring at a flashing LED.

It must come from my youth, when I would stare at the vacuum tubes in the back of my parent’s b&w tv for hours. Yep, I’m that old…

So, back to the never ending project of lightening a LED.

After unwrapping the AVRISP mkII, I reproduced a “RGB led, PWM controlled” project from David Gustafik at

The idea here was to test the new acquired AVRISP mkII, not reinvent a way of saying “abyssus universitas”.

After a few adjustments in AVR Studio and transferring the HEX file to the chip, I caught myself staring, and staring, and staring, and … (ok, you get the point) at:

I must admit, 9 channel software PWM is not the usual ‘Hello world’ program, but what the heck…


When price is not worth your while

When shipping time is not an issue, I usually order electronic parts from Asia.

But sometimes, you know, when you feel a project itch, I always order from DigiKey.


Fair prices but mainly, the service.  I don’t know how they do it but I ALWAYS receive my order, at my door, in less than 24 hours!

Thanks, Guys!

So, just got my AVRISPmkII and other stuff.

The unpacking:


Ce diaporama nécessite JavaScript.

And now, back to the project …

Hold on to that pile of gold

For the last year, I have been using an Arduino board and the associated IDE to build a few projects around the Atmega328.

If you are willing to live with miner limitations; boot loader, hardware wrappers (timers, interrupts), …, it’s a very handy solution.

The only major annoyance is the scarceness of the Atmega328 or 168 chip!  Try to get one with DIP package at a reasonable price… It’s been out off stock for a while now at DigiKey (well I guess not anymore: DigiKey, Mouser)

I saw, on eBay, a seller that was asking 1,99USD + 8,50USD for shipping – for one Atmega328.  I said to myself, hum, it might be a good opportunity for 10 pieces.  So I asked the sealer.

Surprise! (well, not really), I got this:

Dear aboudro,

“For normal price of total price 10units(Atmega328) is $105 but for you that special price of total price 10units(Atmega328) is $85

Best regards,

– m……

Great, He gave me a special price on shipping, 65$ to send a 2 ounce package.  I felt so lucky.

Back to my story;

Atmel makes a lot of fine and available chips so I got myself an Atmel AVR ISP In-System Programmer and some ATTINY2313-20PU-ND.

Their IDE is a pleasure to work with and I like the idea of ‘in circuit programming’.

My next AVR project will be a frequency counter – on the local oscillator- with I.F. adjustment – for a vacuum tube, shortwave radio I am working on.  See this post:  It will be used to display the tuned station frequency.

I will start by using a Hitachi HD44780 compatible LCD display but I might switch to nixie tubes.

To be continued…

Pic’s and Atmega’s …

Just ordered a few atmel and microchip microcontrollers on eBay for some projects that I will do during summer vacation.  So, I had to install AVR Studio 4 and MPLAB tools 8.5.

Find the error on theses screen captures:

For a quick ‘cpp’ AVR-Studio start:   c++ avr tutorial by Donald Papp

For a quick ‘cpp’ MPLAB C18 C compiler start:  MPLAB C18 Getting Started