BluePink BluePink
XHost
Gazduire site-uri web nelimitata ca spatiu si trafic lunar la doar 15 eur / an. Inregistrare domenii .ro .com .net .org .info .biz .com.ro .org.ro la preturi preferentiale. Pentru oferta detaliata accesati site-ul BluePink

JURNALUL DE INFORMATICA

SI INFORMATICA INDUSTRIALA

HOME | CUPRINS | FUNDATIE | CONTACT

 

HOME

Aplicatii PIC pentru începatori nr. 1

 

Acest articol este dedicat amatorilor electronisti dar si programatorilor care vor sa îmbine mai multe domenii de stiinta cum ar fi electronica si programarea. Datorita structurii microcontrolerul (uC) este o alegere buna pentru realizarea aplicatiilor de acest tip, deseori este denumit si „computer pe un chip”. Poate sa contine mai multe module electronice cum ar fi: ADC, EEPROM, memorie de program (FLASH), RAM, ALU, Timer, modul UART, COMPARATOR, SPI, etc. Pentru aplicatiile prezentate a fost ales un uC PIC16F84, cu arhitectura RISC (Reduced Instruction Set Computer) produs te firma Microchip TM [1]. PIC16F84 este un uC de 8 biti cu arhitectura de RISC facut dupa un concept nou (Harvard), care separa magistrala de date de cea de adrese fata de conceptul (von-Neuman) unde cele doua magistrale sunt comune, cum este prezentat si pe figura urmatoare:

 

 

 

 


Separarea magistralelor permite ca instructiunile sa fie organizabile in cuvinte mai lungi decât 8 biti. PIC16F84 are instructiuni cu lungime de 14 biti , astfel permite ca toate instructiunile sa fie transferate într-un singur ciclu.

De ce PIC?

Acest tip uC are multe aplicabilitati, începând de la industria automobilelor, controlul echipamentelor casnice, senzorica, robotica, etc.

Modulele incorporate în uC sporesc de asemenea aplicabilitatea lor, astfel, folosind un uC echipat cu un convertor analog – digital usor poate fi folosit la achizitionarea (daca este necesar) si interpretarea datelor. Memoria EEPROM permite stocarea informatiilor, configuratiilor care pot fi foarte utile in diferite aplicatii. Pretul redus de achizitie permite sa fie folosit ca element de baza în aplicatii pentru amatori. Memoria FLASH permite re-scrierea programelor de aproximativ 1000 ori iar daca este nevoie si protectia programului încarcat. Memoria de program are 1K (words), are 36 bytes RAM si 64 bytes EEPROM. Tehnologia de programare seriala ISPC TM permite programarea lor prin doi pini care înseamna si folosirea unui programator de cost redus. Dupa aceste informatii sa vedem de ce avem nevoie pentru a folosi acest uC in aplicatiile noastre:

PIC16F84

Acest uC are in total 18 pini. Se poate procura in capsula de DIP18 (Dual In Package) sau ca SMD (Surface Mount Device), aici fiind prezentat doar capsula de DIP18[1].

Are doua porturi configurabile PORTA (RA0 - RA4) de 5 biti si PORTB(RB0 – RB7) de 8 biti.

Semnificatia pinilor:

1 – RA2 – pin intrare / iesire (I/O) care corespunde pentru bitul nr. 2 din PORTA

2 – RA3 – (I/O) corespunde pentru bitul nr. 3 din PORTA,

3 – RA4 / T0CK1 – pot fi configurat ca (I/O) pin, bit 4 al PORTA sau ca pin de intrare care este legat la temporizator / numarator interior TMR0.

4 - /MLCR – reset

5 – Vss – Masa uC

6 – RB0 / INT – pin (I/O) , bit 0 pentru PORTB sau pin de întrerupere exterioara

7 – RB1 – pin (I/O), bit 1 pentru PORTB

8 – RB2 – pin (I/O), bit 2 pentru PORTB

9 – RB3 – pin (I/O), bit 3 pentru PORTB

10 – RB4 – pin (I/O), bit 4 pentru PORTB

11 – RB5 – pin (I/O), bit 5 pentru PORTB

12 – RB6 – pin (I/O), bit 6 pentru PORTB

13 – RB7 – pin (I/O), bit 7 pentru PORTB

14 – Vdd – Alimentare uC

15 – OSC2 / CLKOUT - pin de conectare a cristalului sau daca oscilator RC este selectat, este iesirea oscilatorului care are ¼ din frecventa oscilatorului.

16 – OSC1 / CLKIN – pin de conectare a cristalului sau intrare oscilator exterior

17 – RA0 - pin (I/O), bit 0 pentru PORTA

18 – RA1 - pin (I/O), bit 1 pentru PORTA

Mai multe informati se pot citi in documentul de descriere al uC-ului care pot fi descarcat de pe [1].

Programator de PIC16F84

Microcontrolerul se poate programa serial folosind tehnologia ICSP TM (In-Circuit Serial Progeamming) care permite folosirea unui programator de cost redus, facut chiar de utilizator. Pe Internet se gasesc o serie de circuite care pot fi folosite pentru programarea PIC16F84, ramâne doar sa selectam in functie de „bugetul” alocat pentru acest proiect. Ideea urmarita in selectarea circuitului de programare in acest articol a fost:

 

Fig. 2.a

Fig.2.b

Ideea acestui tip de programator (Fig. 2.a) provine de la Erik Hermann si este publicat de catre Ludwig Chatta [2]. Pe parcurs au aparut o serie de variante ale acestui tip de programator, cum ar fi si cel prezentat în Fig. 2.b, publicat de Myke Predko[3]. Deseori este denumit si JDM-Progrmmer [2]. Aceasta informatie este foarte importanta in alegerea programului pentru programator. Acest tip de programator permite programarea uC de seria PIC16C84 /A, PIC16F84 /A, PIC16F627 /A, PIC16F628 /A. Programatorul se poate executa pe o placuta de test sau cei interesati pot construi soclul prezentat în [2].

Program pentru programarea uC

Cel putin acelasi numar de programe pentru programarea uC-lului se gasesc pe Internet ca si scheme de programator. Acestea se pot categorisi dupa varietatea, numarul de uC programabile, scheme electronice de programator recunoscute si nu in ultimul rând viteza de programare. Evident, trebuie ales un program care recunoaste schema electronica prezentata anterior. Unul dintre acestea este si programul IC-Prog [4] de Bonny Gijzen, care este recomandata si de firma Microchip TM . Acest program are suport si pentru programatorul JDM (prezentat anterior), as mai completa ca versiunea 1.05D are o optimizare semnificativa pentru reducerea timpului de programare si astfel este o alegere foarte potrivita pentru aplicatiile viitoare. Utilizatorii care vor sa programeze pe un sistem de operare Windows NT, XP (Microsoft TM ), vor trebui sa descarce de pe aceasta pagina [4] si IC-Prog NT driver. Acest fisier trebuie pus in directorul in care se afla si IC-Prog.exe, care la prima pornire automat se instaleaza, permitând accesul la portul serial. În urmatoarele vor fi descrise setarile necesare si folosirea acestui program. Înainte de folosire programul trebuie configurat, aceasta se poate face folosind meniul Settings-> Options sau butonul din bare de unelte. Fereastra care se deschide este prezentata în urmatoarele (Fig. 3.a), de aici putem sa facem setarile „fine” necesare pentru interfata electronica de programare. De aici putem activa – dezactiva driverul pentru Windows NT-XP (Microsoft TM ). Urmatoarea setare care trebuie facuta este selectarea programatorului si tipul de accesare al portului serial. Apelând Settings-> Hardware sau butonul . Dupa cum se vede si de pe urmatoarea figura (Fig. 3.b), este selectat programatorul JDM, si accesare directa al portului.

Fig. 3.a

Fig. 3.b

De mentionat este ca programul are suport si pentru limba Româna, care poate fi selectat (Fig.3.a) panelul „Language”. Dupa selectarea circuitului de programare urmatorul pas care trebuie facut este alegerea uC-lului. Acesta este prezentata pe figura urmatoare: si se poate accesa folosind meniul (Settings - > Device ) sau bara de unelte.

 

Înainte de programare, trebuie sa selectam tipul de oscilator care vrem sa-l folosim. Dupa cum se vede de pe imagine (Fig. 4) avem patru optiuni dintre care putem alege.

XT – cristal sau rezonator

LP – cristal de consum redus

HS – cristal sau rezonator rapid

RC – rezistor condensator

Mai multe amanunte pot fi gasite in [1]. De asemenea putem activa – dezactiva WDT-ul (Watchdog Timer = Temporizator “Câine de paza”), PWRT (Power – up Timer = Timer de pornire) sau CP (Code Protection = Protectia codului). Despre aceste facilitati vom vorbi în articolul urmator.

 

Fig. 4.

 

 

Bibliografie

•  www.microchip.com •  http://www.the-starbearer.de/Praxis/Microkontrollerpraxis/PIC/Pic_minimal.htm
•  http://www.rentron.com/Myke4.htm •  http://www.ic-prog.com/index1.htm  

dr. ing. Vilmos FERNENGEL

Siemens VDO Automotive SRL, vilmos.fernengel@siemens.com

 

 

 

 

ALL RIGHT RESERVED | ©2006 MA-PRODUCTION