Sari la conținut
ELFORUM - Forumul electronistilor

USART


Vizitator eulbv

Postări Recomandate

Vizitator eulbv

Salutare.Am si eu o problema cu un atmega8,in sensul ca nu reusesc sa trimit catre calculator pe seriala .Am folosit avr studio 4 pentru a verifica codul si registri arata cum trebuie dupa ce se executa(UDR contine valoarea care o vreau eu ),doar ca pe hyper terminal nu imi apare nimic.Legatura am facut-o cu, HIN 232,iar cablu e unul cumparat ,mufat de ei.Orice sugestie bine venita.Va multumesc.PS. Baud rate: 2400, 8 Data, 1 Stop, No Parity Iar oscilator de 4Mhz

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

Top autori în acest subiect

  • Laci

    4

  • roadrunner

    2

  • aghora17

    1

1. Ai grija sa setezi in hyper terminal - no flow control.2. Pune codul de initializare la UART (unde programezi si baud rate-ul) sa-l vedem si noi.3. Verifica daca ai conectat Rx tau cu Tx ul PC-ului si invers.R.

Link spre comentariu
Vizitator eulbv

Salutare.Uite acesta e codu pe care l-am incercat .Am mai folosit o versiune da pe care nu am salvato si pe care reusisem sa o fac sa mearga in simulator.Aceasta pe care o am acuma are ceva de care nu ma prind si anume in bucla de while(1) cand verifica daca bufferu e gol ca sa poata scrie ,dupa doua repetari nu se mai seteaza bitu UDRE.Si o ata problema e cu :"#define UDRIE 5" si anume ca nu inta in bucla decat daca pun udrie 6 lucru care eu zic ca e incorect. Programu care lam facut si mergea si simulat mai facea o verificare pentru flag_ul de transmisie completa si avea dupa un delay de 50ms. Mersi de sfaturi.

Link spre comentariu

auzi pune si tu un caracter citibil in hyperterminal nu 0x05, de la 0x30 in sus(asta mi-a sarit in ochi) ma uit la cod si daca tot scrii in C, pune un printf("hello\n") ca face el tot in spate.#include FILE uart_str = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_RW);int uart_putchar(char c , ) { if (c == '\n') uart_putchar('\r'); loop_until_bit_is_set(UCSR0A, UDRE0); UDR0 = c; return 0; }atentie exemplul asta e pentru atmega88 (dar probabil te-ai prins)R.

Link spre comentariu
Vizitator eulbv

Am incercat din nou sa trimit si caractere si siruri de caractere si numere si nu merge.O sa merg sa imi cumpar alt convertor rs232 sa nu fie cumva din cauza asta .Atceva nu stiu.Incerc si alte idei daca mi se mai dau......

Link spre comentariu

Nu trebuie sa cumperi alt convertor, mai intai testeaza-l legi rx cu tx si ce trimiti prin hyperterminal trebuie sa-ti apara ca un echo, nu uita sa alimentezi convertorul.Inca o chestie cat de lung e cablul dupa convertor si MCU(microcontroller)? Ca la nivel TTL nu merge cu cablu peste 1m.

Link spre comentariu
Vizitator eulbv

Am refacut legaturile, am verificat cirucitele si n-m gasit inca nimic, dar orice as trimite , sau forma , adica hex , sir, decimal ,receptionez combinatii de : F8 00 80 00 80 , de exempu trimit numarul 2 primesc 00, trimit "azi" primesc F8 00 F8 , si in hex la fel. Am facut sa afisez pe terminal ceea ce trimit . Daca aveti idei va multumesc.

Link spre comentariu
Vizitator eulbv

Codul scris e ceva mai sus seriala.c se numeste,iar biti si initializarile le face automat compilatoru avr studio, eu am selectat doar oscilator de 4mhz si setarile pe care am vrut sa le faca.

Link spre comentariu
Vizitator eulbv

Am facut schimbarea de la 67 la 25 hex si nu mergea, m-am gandit dupa cum ai zis si tu Laci la oscilatoru acela si nu am gasit nicaieri ca il setez cumva si am scos oscilatoru de pe pini, dar nu a vrut sa se conecteze calculator pentru programare, am pus oscilatoru la loc dar fara cei doi condensatori, am setat din nou la 0x67 si surpriza mergea 10+.Cncluzia ,nu pot sa garantez ca e corecta ,dar prezenta celor doi condensatori ar parea ca fiind cauza(condensatorii erau de 33 pF nu cum zic producatorii 12-22pF).Nam mai incercat sa ii pun la loc sa vad daca merge.Mul?am mult celor care mi-au dat sfaturi.

Link spre comentariu
  • 1 lună mai târziu...

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