Sari la conținut
ELFORUM - Forumul electronistilor

comunicatie intre pic-uri


Postări Recomandate

poate s-a mai discutat subiectul pe undeva (eu nu am gasit pe forum)...m-ar interesa cum pot comunica 2 sau mai multe microprocesoare pic intre ele, mai concret vreau sa pun un microcontroler care sa comande un lcd 2X16 shi altul sa ii spuna primului ce sa afiseze....de exemplu as folosi un 16F84 pentru afisaj, afisajul conectat la portul B, iar portul A (sau o patrte din el) sa il folosesc pentru comunicatie...

Link spre comentariu
  • Răspunsuri 9
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Top autori în acest subiect

cel mai simplu este cu uart. tx-ul de la primul la rx-ul celui de-al doilea si viceversa. Sau daca vrei sa comunice intr-un singur sens, ajunge un singur fir. asta daca nu vrei sa comunici si cu PC tot prin uart. Daca da, vezi ca majoritatea compilatoarelor au rutinele pentru a simula software interfata seriala. Deci cu uart-ul lui nativ comunici cu pc, iar cu cel simulat de tine (pe alti 2 pini) faci comunicarea intre cele 2 picuri.cu 16f84 nu am lucrat chiar deloc, dar iti recomand cu caldura 16f628. pretul este mai mic, si ofera mai multe resurse. 84 se mai foloseste doar datorita popularitatii lui. Majoritatea proiectelor pe net sunt facute cu el, deci pentru a putea face un proiect fara a modifica soft-ul, iti trebuie neaparat 16f84. Dar cred ca tu scrii soft-ul si nu il iei de undeva, deci 84 chiar nu merita.

Link spre comentariu
Vizitator bigfan638

Sa inteleg ca ai nevoie de inca un PIC doar pentru comanda afisajului ? Nu este obligatoriu ca transmisia datelor sa se faca paralel. Cu ajutorul registrelor de deplasare se folosesc mai putini pini. De exemplu se poate controla un afisaj alfanumeric, prin intermediul unui registru de deplasare, cu numai 2 pini. Chiar e nevoie de doua PIC-uri ?

Link spre comentariu

pai intamplator am cateva PIC 16F84 cu care pot sa ma joc. Mentionez ca inca sunt la inceput cu pic-urile shi cu microprocesoarele in general si din cate am vazut 16F84 nu are nici porturile si nici memoria necesara sa folosesti un singur microprocesor intr-o aplicatie mai vastatotushi m-as folosi de el pentru a nu complica programul altui microprocesor cu procedurele de initializare shi de afisre a LCD-ului

Link spre comentariu

Serial all the way. E plin net-ul de exemple de software uart pentru PIC, sunt inclusiv niste appnote-uri de la Microchip care prezinta cum se face chestia asta. N-are rost sa te complici cu altceva. Cu un pic (sic) de imaginatie, poti sa faci toata transmisia pe un singur fir. Half duplex, desigur :)

Link spre comentariu

sau iei niste rutine pentru uart gata facute, si intr-unul implementezi doar TX si in celalalt RX.By the way... initializarea unui lcd cu HD44... este cat se poate de simpla si banala. In asm nu are mai mult de 20-30 de instructiuni, asa ca nu papa foarte multa memorie. Si pinii se pot multiplexa. poti sa trimiti/primesti ce informatie vrei pe firele de la LCD. Cat timp nu-i dai "enable", lcd-ul nu reactioneaza, asa ca nu vad unde este problema nici la numarul de pini. Lcd-ul ocupa exclusiv pt el doar 1 (unu) pin. In schimb, uart-ul ocupa de cel putin 10 ori mai mult spatiu in memorie, iti trebuie sa folosesti neaparat un timer pt el, si ocupa 2 pini :twisted: . Sau unul singur, cum zice bogdanm, dar atunci creste si marimea codului pt rutinele alea, si si durerile tale de cap pt debugging (presupunand ca proiectarea in sine a protocolului iese repede) asa ca io zic sa te mai gandesti. :wink:

Link spre comentariu

In schimb, uart-ul ocupa de cel putin 10 ori mai mult spatiu in memorie, iti trebuie sa folosesti neaparat un timer pt el, si ocupa 2 pini :twisted:

Eu am implementat UART-ul in relativ putine linii de cod; numarul acestor linii e destul de apropiat de cel al rutinei de initializare a LCD-ului. Si nu, nu ai neaparat nevoie de un timer, poti face totul din software, singura problema fiind ca rutinele tale devin automat blocante. Dar in general asta nu e atat de important. Si da, ocupa doi pini ;)
Link spre comentariu

Hai sa zicem ca la pic-ul legat la LCD, nu deranjeaza rutinele blocante. De fapt asta e scopul lui. Dar la celalalt...Si daca nu faci o initializare a la carte, ci stii sigur ca este vorba despre un LCD cu EXACT 2*16, atunci initializarea este de fapt consta in trimiterea a 5-6 octeti.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări