Sari la conținut
ELFORUM - Forumul electronistilor

interfete si comunicatii


laStudiu

Postări Recomandate

  • Răspunsuri 98
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • laStudiu

    52

  • Abram Burel

    10

  • lucicop

    7

  • Cristiano

    5

Top autori în acest subiect

Ce-ai zice de un cuart pentru cadenta de la USART?!

1. Adica trebuie sa-i leg un cuart la amandoua MCP2120 pe fiecare placa?2. Bine, dar nu vad in datashet nimic concret care sa arate ce si cum anume se leaga; in plus la pinul OSC1/CLKIN scrie "Oscillator crystal input/ external clock source input", deci ar trebui sa fie ceva bit de configurare prin care sa alegi intre cele doua, dar nu gasesc.
Link spre comentariu

1. Nu, legi cate un cuart la MCP2120 pe fiecare placa :)2. Nu neaparat. La PIC-uri (si poate alte dispozitive), configurarea e necesara pentru ca influenta bitilor respectivi e prin mai multe locuri. Aici insa, probabil ca circuitul intern e astfel gandit incat, daca pui pe pinul 2 un ceas extern sau legi intre 2 si 3 un cuart, e totuna (lucru de altfel... natural").Se pare ca foaia aia de catalog e facuta pentru tipi... cuStudii :d

Link spre comentariu

Deci trebuie un cuart la fiecare MCP si apoi selectata frecventa. Atunci ce legatura exista intre frecventa UART de la PIC si frecventa MCP-ului. Banuiesc ca trebuie sa fie aceeasi.

Link spre comentariu
Vizitator cristian_agiu

Am gasit un driver pt LCD, dar i-mi da eroarea in PICC-Lite:

(107) illegal # directive "byte" ... la codul

#byte lcd = 8 // on to port D (at address 8)

PICC-Lite e compilator de C, iar codul ala nu pare a fi pentru C, in C cu # incep directivele preprocesor (#define, #include, #pragma, etc). Nici byte nu e vreun tip standard de variabila in C (ar fi trebuit unsigned char).

 

LE: vezi aici niste cod pt. LCD (si alte interfete) pentru PICC: http://www.microchipc.com/sourcecode

Link spre comentariu
Vizitator cristian_agiu

Sal Cristiano am si eu un jackpot si mere ce mere dupa care se reseteaza la o valoare mult mai jos dupa care mere normal si iara se intimpla la fel.E facut cu controler pic648 si 485 acu nu stiu de unde poate fi . Intrebarea mea este :poate fi din retea ceva in neregula?

Link spre comentariu

Sal Cristiano am si eu un jackpot si mere ce mere dupa care se reseteaza la o valoare mult mai jos dupa care mere normal si iara se intimpla la fel.E facut cu controler pic648 si 485 acu nu stiu de unde poate fi . Intrebarea mea este :poate fi din retea ceva in neregula?

Da niste detalii concrete, ce e ala jackpot, ce legatura au merele aici :), explica mai clar ce inseamna "se reseteaza la o valoare mult mai jos", pune eventual si o schema si apoi putem discuta.
Link spre comentariu

laStudiu, banuiesti corect :)MCP-ul ala nu e altceva decat un... modem care adapteaza o comunicatie seriala intre doua dispozitive (intr-o parte un PIC si in cealalta alt PIC) la canalul de comunicatie prim modulare/demodulare (in cazul asta folosind IR).Daci PIC ii transmite MCP ce vrea el sa spuna "celuilalt PIC". Pentru ca MCP sa priceapa, trebuie sa foloseasca aceiasi parametrii pe USART, printre care si viteza de transmisie. Atat PIC-ul, cat si MCP-ul pot avea ceas (oscilator) separat, dupa cum pot avea si acelasi ceas daca e cazul (de exemplu sa folosesti pinul 2 de la MCP pe post de CLKIN). Oricum trebuie setate lucrurile in asa fel incat viteza de comunicatie seriala sa fie identica.In mod normal ea va fi la fel si in partea cealalta (desi in functie de aplicatie lucrul asta nu e obligatoriu, dar macar recomandabil).

Link spre comentariu

Ce diferenta face in comunicatia seriala asincrona bitul CREN (Continuous Receive Enable bit).... Bun ... Am observat ca daca trimit caractere unul dupa altul nu receptionez nimic daca CREN = 0.

Link spre comentariu

Am alta problema acum: am legat cu doua fire PIC16F871 si PIC16F627 si nu pot sa fac o comunicatie asincrona nicicum. Am facut acelasi cod pentru ambele in C si am observat ca daca fac scurt intre TX si RX si pornesc numai 871, caracterele trimise le receptionez inapoi si le scriu in EEPROM si sunt date corecte. Daca pornesc numai 627 cu TX pe RX nu receptionez datele corecte si in plus i-mi apare si FramingError.Mentionez ca 871 merge cu cuart de 4 MHz, iar 627 cu oscilator intern 20 MHz. Sa fie din cauza oscilatorului problema, sau o fi defect USARTul ? (am incercat cu BRGH 1, apoi 0, am modificat si SPBRG si aceeasi problema: in loc sa primesc 9 date valide, primesc alte date si FramingError)

Link spre comentariu

Oscilator intern la 20 MHz? Din ce film e asta?

Am sunat si eu la Capodimonte, ca nu am fost sigur daca am auzit bine cand l-am cumparat si mi-a confirmat ca varianta 16F627-20P este de 20MHz. Oricum nu are legatura frecventa cu faptul ca nu merge USART-ul pe RX legat la TX.
Link spre comentariu

20-ul se refera la configuratiile de oscilator extern, nu intern. Ala intern e de maxim 4MHz (maximul se refera la PIC-urile la care se poate configura un divizor, altfel e 4 fix +-...)

Link spre comentariu

ptr a face o comunicatie Rx/Tx trebuie sa setezi o anumita rata de transmisie a bitilor(baud rate) care ptr frecvente diferite ai "SPRG register" diferit

1. Am activat RCIE si la un moment dat activez si TXIE si transmit 8 caractere dupa care dezactivez TXIE. Tot ce primesc scriu in EEPROM.

2. La pornire fac scurt Rx-Tx si deci primesc ceea ce transmit.

3. Citesc EEPROMul sa vad daca am receptionat date corecte.

4. Cu 16F871 merge bine, cu 16F627 receptionez alte date si apare si framingError.

Deci este defect USARTul la 627 sau nu merge comunicatia seriala pe oscilatorul intern?

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