avr i max485 problemów ciąg dalszy

Witam.

Podłaczyłęm ten układ pod attiny2313 i występuje dziwny problem. Otóż przy odbieraniu znaków od 1 do 127 wszystko jest ok natomiast powyżej występuję błąd ramki FE. A w UDR zamiast

128 jest 0 129 jest 1 130 jest 2 itd.. tak jakby był zjadany najstarszy bit w UDR.

Próbowałem już podpinać rezystory podciągające zarówno do max485 jak i do linii RxD avrka i ciągle to samo. Czy ktoś ma jakiś pomysł?

Transmisję ustawiłem wydaje się poprawnie 9600, 8d, 1 stop, 1 parzystości

UBRRH = 0; //Baud=9600 UBRRL = 25;

//Włączenie dbiornika i nadajnika, aktywne przerwania UCSRB = (1 << RXEN) | (1 << TXEN) | (1 << RXCIE) | (1 << TXCIE);

//Dane 8 bit, 1 stop, parity even #define URSEL 7 UCSRC = (1 << URSEL) | (1 << UPM1) | (3 << UCSZ0);

Dzięki za pomoc Pozdrawiam Paweł

Reply to
invalid unparseable
Loading thread data ...
[...]

Ja się nie znam na 485 ale na RS232/V24 8 bitów i parzystość się wykluczają.

[...]
Reply to
RoMan Mandziejewicz

Hm. Nie wiem co to jest V24, ale w specyfikacji avrka podane jest

The USART accepts all 30 combinations of the following as valid frame formats:

- 1 start bit

- 5, 6, 7, 8, or 9 data bits

- no, even or odd parity bit

- 1 or 2 stop bits

Chyba powinno działać. Pozdrawiam Paweł

Reply to
invalid unparseable

Czy może być przyczyną to że używam wewnętrznego oscylatora 4MHz zamiast kwarcu?

Paweł

Reply to
invalid unparseable

Użytkownik "Paweł" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:e54td2$sg7$ snipped-for-privacy@news.onet.pl...

teoretycznie mogłoby to by być przyczyną - ale gdybys miał przekłamania w poszczególnych bitach danych - a nie na jednym tylko jeśli takich kłopotów nie masz - zakładam, że błąd zegara przy wysyłaniu transmisji 9600 - jest pomijalny

ja bym wyrzucił tę przystość - czyli tylko 8,n,1 stop - i sprawdził, czy jest ok

poza tym skąd pochodzą te dane? z PC-ta? przez jakiś konwerter? - może tam jakieś obcinanie najstarszego bitu jest realizowane...?

Jednak po looknięciu kilku postów wyżej - raczej pachnie mi to typem signed char... zamiast unsigned char

poszukaj w opcjach kompilatora przełącznika zeby typ char był domyślnie

8-mio bitowy

coś kojarze, że kiedyś miałem podobny problem

Reply to
PrzemekD

Dnia 25.05.2006 Paweł snipped-for-privacy@poczta.onet.pl> napisał/a:

Najlepiej sprawdz oscyloskopem, albo polacz uklad tak zeby odbieral to co wysylasz i porownaj wyniki. U mnie na wewnetrznym oscylatorze pojawil sie blad transmisji >5% a nominalnie powinien byc na poziomie 0,2%...

AW

Reply to
AW

Witam.

No i przyczyna się znalazła. Jednak trzeba było dożucić kwarca. Wszystko zaczęło śmigać jak należy bez błędów ramki.

Mam tylko teraz problem ze startem mikrokontroloera. Dopóki nie dotknę palcem kwarca to stoi w miejscu.

Co może być przyczyną? Użyłem kwarca 4MHz i 2 kondensatorki ceramiczne po 30pF. Może za duże? W specyfikacji podane że od 12 do 22pF. CKSEL3-0 mam 1101, a SUT10 na 10.

Dzięki za pomoc Pozdrawiam Paweł

Reply to
invalid unparseable

Hm, IMHO - na 232 tez sie nie znasz :-)

ilosc danych to jedno, parzystosc to drugie, ilosc bitow stop to trzecie, a 232/V24 w ogole nie okresla co bedzie transmitowane.

Jak UART jest uniwersalny to wszystkie kombinacje przyjmie.

J.

Reply to
J.F.

8250/16450/16550 nie przyjmie 8 bitów i parzystosci o ile mnie skleroza nie myli.
Reply to
RoMan Mandziejewicz

Dnia 26.05.2006 Paweł snipped-for-privacy@poczta.onet.pl> napisał/a:

Skoro takie sa podane w specyfikacji, to chyba nie bez powodu. Zmiana kondensatorow powinna pomoc

AW

Reply to
AW

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.