Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Descrierea programatorului
Pentru programarea PIC-ului sunt necesare doua componente:
hardware
software
Descrierea partii hardware
Partea hardware consta dintr-un simplu programator serial, combinat cu numarul minim de componente care sa suporte funcsionarea PIC-ului. Programatorul se conecteaza la portul paralel al calculatorului cu ajutorul a sase fire:
Programator Calculator
- pin 1 INIT pin 16
- pin 3 D0 pin 2
- pin 5 STROBE pin 1
- pin 7 AUTOF pin 14
- pin 9 SEL/BUSY pinii 11 & 17
pinii 2,4,6,8,10 GND pinii 18-25
Se recomanda utilizarea unui cablu scurt cu un conector cu 10 pini la un capat si cu un conector cu 25 pini mama la celalalt capat ca sa se conecteze programatorul la un cablu standard de imprimanta.
Pinii RB6 si RB7 ai picului sunt utilizati prntru programare si sunt conectati direct la calculator prin rezistentele R1 si R2. Aceste rezistente sunt puse ca sa protejeze portul paralel al calculatorului in cazul in care PIC-ul ar activa pinii RB6 si RB7 in timp ce lucreaza. Fata de alte programatoare de PIC-uri acesta de fasa poate sa si citeasca continutul PIC-ului. Alti doi pini ai portului LPT sunt utilizati in acest scop: cand RB7 este utilizat ca intrare la PIC anodul diodei D4 este adus la masa de colectorul lui SEL; cand RB7 trebuie citit SEL este oprit iar anodul lui D4 este in 5V prin rezistenta aflata in PC.
In afara timpului de programare LM317L este setat sa produca aproximativ 1.2V si datorita diodei D2 pinul /MCLR este tinut la aproximativ 5V sau 0V depinzand de starea tranzistorului Q2. Ca sa se obtina tensiunea de programare si Q1 si Q2 sunt oprite. Tensiunea de programare trebuie setata la aproximativ 13.5V de R7 si R8 prin folosirea de rezistente cu toleranta de 2%. Daca se folosesc rezistente cu toleranta de 10% trebuie sa se verifice ca tensiunea sa nu depaseasca 14V. Cand calculatorul nu este conectat Q1 este pornit iar Q2 este oprit rezulta ca MCLR sete tinut in 5V. In acest caz PIC-ul poate fi resetat prin oprirea si pornirea sursei de alimentare.
In cazul in care placa s-ar dori numai pentru programare nu si pentru rulare se pot salva niste componente. Exemplu: R4, R5, Q1, R13, D5, D2, X1, C6, C7, R9, D3 si mufa 3.
In figura urmatoare este prezentata schema logica a programatorului:
In figura urmatoare este prezentat cablajul programatorului:
In figura urmatoare este prezentata schema amplasarii pieselor:
Descrierea partii softare
In continuare este descris un program simplu pentru programat PIC-uri. Sunt disponibile mai multe versiuni ale softului depinzand de interfata aleasa si de calculator.
Scopul softului este sa ia o imagine a unui program PIC dintr-un fisier produs de un asamblor si sa o descarce in PIC. Imaginea ar trebui sa fie intrun fisier hex: cel mai utilizat format hex este INHX8M produs de Microchip dar mai exista si alte tipuri de formate hex. Softul poate citi date din oricare tip de fisiere hex. Mai jos sunt descrise patru zone de memorie care pot fi programate:
Memoria programului: Aici este stocat programul PIC-ului. (PIC-ul incepe executia de la locatia 0). Sunt 1024 14- biti cuvinte de program.
Memoria de date: 64 biti de memorie EEPROM.
ID: 4 cuvinte de memorie care pote fi folosit pentru urmarirea picului prin scrierea unui numar aici.
Cuvantul de programare: folosit pentru selectia oscilatorului, si pentru activarea/dezactivarea watchdog, power-up timer si protectie cod.
Fisierul hex poate contine informatii despre toate aceste zone iar softul le va programa in consecinta. Incorporand toate informasiile intr-un singur fisier hex face viata foarte simpla. In acest caz tot ce trebuie facut ca sa se programeze un pic cu programul "prog.hex" este sa se tasteze:
topic prog.hex
Majoritatea programatoarelor pot incorpora toate informatiile in fisierul hex. De exemplu, MPASM, asamblatorul oferit gratuit de firma microchip, include urmatoarele directive de programare:
_CONFIG
_IDLOCS
DE
De fapt singurul mod in care topic-ul poate programa menoria de date si locatiile de ID este ca sa se scrie aceste informatii in fisierul hex.
Dar cum erea normal programulare si alte modalitati de a programa cuvantul de configurare daca acesta nu este inclus in fisierul hex.
Softul ne permite sa stergem tot microcontroler-ul dar nu este recomandat sa folosim aceasta comanda deoarece, duce la rescrierea inutila a unor locatii de memorie care poatea ca nu ar trebui in mod normal rescrise. Softul poate rescrie doar zonele de memorie care in difera fata de original ex:
Pentru ca sirul urmator de biti:
sa ajunga in forma urmatoare:
este scris doar bitul 2, pe cand daca am folosistergerea atunci toti bitii ar fi fost rescrisi indiferent de starea lor initiala.
Operatia de stergere mareste timpul de programare, fortand in acelasi timp ca toata memoria sa fie rescrisa. O alta consideratie ar fi durata viata a picului care este in mod normal de cel putin 1000 - de scrieri pana la 1000000 de scrieri, deci reducand numarul de scrieri pentru fiecare casuta de memorie se mareste durata de viata a microcontrolerului.
Cu toate acestea sunt momente cand este necesara stergerea completa a picului. Ca un caz particular picul trebuie sters pentru a se scapa de protectia inclusa prin cod, deoarece o parte a cuvantului de configurare este utilizata pentru a se preveni citirea microcontrolerului, adica pentru a preveni citirea neautporizata a microcontrolerului de persaone neautorizate.
Continutul unui microcontroler care este codat nu poate fi modificat sau citit dar stergand intreaga memorie a picului acesta pote fi rescris dinou.
Continutul picului poate fi scris intrun fisier de tip hex sau poate fi verificat cu alt fisier de tip hex. Procedura de verificare poate fi folosita doar daca picul nu este protejat prin cod. De retinut ca picul este este verificat in aceleasi conditii in care a fost scris: daca softul a fost folosit pentru a seta bitul de configurare tot softul trebuie utilizat pentru a seta bitul de configurare la verificare. Daca nu se tine cont de acest lucru verificarea probabil va cadea cand este verificat bitul de configurare.
Sintaxa de programare este:
Topic [-lxhrwpcdevgosn!] fisier hex
Unde:
l - lp (consum scazut)
x - XT (oscilator cu cuart)
h - HS
r - RC (oscilator rezistenta condensator RC)
w - WDTE
p -PWRTE
c - protectie cu cod
d - dump (descarca)
e - erase (sterge)
v - verify (verifica)
g - go (porneste programul dupa scriere)
o - old
s - silent (silentios)
n - fara citire
! - fara asteptare
Daca nu se specifica nimic programul ia ca implicit:
Oscilator RC
/WDTE
/POWRTE
fara protectie cod
fara stergere
stop (oprire)
new
verbose
read (citire)
wait (asteapta repornirea picului)
Primii biti fac parte din cei 14 biti de configurare. In microcontrolerul PIC16F84 bitul de configurare arata in felul urmator:
CC CCCC CCCC PWOO
unde bitii notati cu C sunt folositi pentru a activa/dezactiva protectia cod, bitul P (cei de la Microchip lau numit PWRTE) controleaza ceasul de activare (pouer-up timer), bitul W (sau WDTE) activeaza/dezactiveaza ceasul WATCHDOC iar cei doi biti notati cu OO definesc starea oscilatorului picului.
Softul descris mai sus poate fi utilizat pentru a programa microcontrolere din seria PIC16x8x cand este folosit cu un hardware compatibil. Daca tot ce trebuie facut este sa programam un pic iar cuvantul de configurare este definit in fisierul hex atunci tot argumentul ce trebuie trimis programului este numele si calea fisierului.
Daca programul este rulat dintrun fisier BATCH este mult mai usor sa se configureze toate obtiunile necesare buneui functionari a picului.
Copyright © 2024 - Toate drepturile rezervate