ustawianie UART na 9600bps, 1b start,1 stop,no-parity



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Imperator" <imperator_at_nospam_st-wola.pl>
Subject: ustawianie UART na 9600bps, 1b start,1 stop,no-parity
Date: Thu, 17 Jun 2004 17:23:55 +0200


Procek At89s51
czy ustawienie:
SCON = 0x40;
TMOD = 0x20;
TH1 = TL1 = 0xFD;
TR1 = 1; /*TCON.6*/
SBUF = 0;
TI = 0; /*SCON.1*/
ustawi transmije weglug topicu ?
thx,
prosze o info na priv:
llojek_at_nospam_student.prz.rzeszow.pl


=======

Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_WIADOMO_PO_CO_TO.message.pl>
Subject: Re: ustawianie UART na 9600bps, 1b start,1 stop,no-parity
Date: Thu, 17 Jun 2004 17:32:13 +0200


Użytkownik "Imperator" <imperator_at_nospam_st-wola.pl> napisał w wiadomości
news:casd2i$el9$1_at_nospam_lena.prz.rzeszow.pl

Procek At89s51
czy ustawienie:
(...)
ustawi transmije weglug topicu ?

Jaki kwarc?!

prosze o info na priv:
Tylko na listę. Tu pytasz - tu dostajesz odpowiedź.


--
Marek Dzwonnik, GG: #2061027 (zwykle jako 'niewidoczny')


========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!lublin.pl!news.prz.rzeszow.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Imperator" <imperator_at_nospam_st-wola.pl>
Subject: Re: ustawianie UART na 9600bps, 1b start,1 stop,no-parity
Date: Thu, 17 Jun 2004 18:50:22 +0200


11,0592
Użytkownik "Marek Dzwonnik" <mdz_at_nospam_WIADOMO_PO_CO_TO.message.pl> napisał w
wiadomości news:40d1b97d$1_at_nospam_news.home.net.pl...
Użytkownik "Imperator" <imperator_at_nospam_st-wola.pl> napisał w wiadomości
news:casd2i$el9$1_at_nospam_lena.prz.rzeszow.pl

Procek At89s51
czy ustawienie:
(...)
ustawi transmije weglug topicu ?

Jaki kwarc?!

prosze o info na priv:
Tylko na listę. Tu pytasz - tu dostajesz odpowiedź.


--
> Marek Dzwonnik, GG: #2061027 (zwykle jako 'niewidoczny')
>


=======

Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_WIADOMO_PO_CO_TO.message.pl>
Subject: Re: ustawianie UART na 9600bps, 1b start,1 stop,no-parity
Date: Thu, 17 Jun 2004 20:14:40 +0200


Użytkownik "Imperator" <imperator_at_nospam_st-wola.pl> napisał w wiadomości
news:casi4l$hbk$1_at_nospam_lena.prz.rzeszow.pl


Pierwsze primo:
Cytuj, ale odpowiadaj POD przyciętym cytatem.

No to po kolei:

Procek At89s51
Bierzemy książkę Rydzewskiego. Skoro '51ka to do generacji baudrate-u może
być wzięty tylko timer1. W '52 można by użyć jeszcze timer2 (T2CON.4==TCLK
=1 , T2CON5==RCLK := 1).

11.0592MHz
Czyli f_xtal/ 12 = 921.6kHz.

SCON = 0x40;
SCON = 01000000b ==>
SM0=0, SM1=1 -> Tryb1; trans. szeregowa, asynch, 8bit, szybkość okr.
programowo (czyli przez timer1)
SM2 = 0 -> bez maskowania (nie robimy komunikacji wieloprocesorowej)
REN = 0 -> odbiornik nieaktywny (czy tak miało być?)
TB8 = 0 -> (bit8-tx) nieistotne (chciałeś mieć tylko 8bitów pomiędzy start
a stop)
RB8 = 0 -> (bit8-rx) nieistotne, j.w.
TI =0 -> znacznik przerwania bedzie ustawiany przez sprzęt
RI=0 -> j.w. (a Rx i tak nie działa przy REN=0)

Czyli mamy 8 bitów danych, po 1 bicie START/STOP (51-ka potrafi tylko tak).
Jeśli chce się mieć parzystość to i tak trzeba obsłużyć programowo tzn.
ustawiać albo czytać i sprawdzać odpowiedni bit: DB7 lub TB8/RB8 - zależnie
od trybu.

TMOD = 0x20;

Mlodszy (zerowy) półbajt dotyczy timera0 więc nas nie interesuje

Starszy półbajt (timer1):
TMOD = 00100000b ->
GATE = 0 -> timer1 bez bramkowania zewn. sygnałem z we INT1\ (czyli Ok)
C/T\ = 0 czyli czasomierz taktowany z zegara wewn (f_xtal/12)
M1.M0 = 10 -> tryb 2, czyli licznik 8bitowy (TL1) z automatycznym
przeladowaniem z TH1 -> Ok

TH1 = TL1 = 0xFD;

0xFD = 253d
Zatem częstotliwość wyjściowa licznika T1 będzie równa:

f_ot1 = (fxtal/12) / (256 - TH1)
f_ot1 = 921.6kHz / (256-253) = 307.2kHz

No dobrze, a co z bitem SMOD==PCON.7 ? (Decyduje o dodatkowym podziale
częstotliwości /2)
Załóżmy, że SMOD=0 (musisz tego przypilnować), więc
f_bd = f_ot1 / 32
f_bd = 307.2kHz / 32 = 9600
c.n.d :-)

TR1 = 1; /TCON.6/

Ok. Bez tego licznik nie ruszy

SBUF = 0;
A z tym ostrożnie, bo załadowanie SBUF uruchamia wysyłanie znaku. Czy
naprawdę chcesz wysłać 0x00 ?

TI = 0; /SCON.1/
To jest znacznik przerwań od Tx. Zerujesz go przed odblokowaniem przerwań
(na wszelki - żeby nie mieć fałszywego przerwania) a potem w obsłudze
przerwania UART - po wysłaniu każdego znaku. TI i RI nie_sa (bodajze
jako jedyne) automatycznie zerowane po przyjęciu przerwania. Zwróc uwagę, że
UART ma przypisane jedno przerwanie a badając w obsłudze RI i TI dopiero
ustalasz co faktycznie zaszło.

--
Marek Dzwonnik, GG: #2061027 (zwykle jako 'niewidoczny')

"pl.misc.elektronika" podlega zasadom usenetu i Netykiety:
http://www.pg.gda.pl/~agatek/netq.html
Nie zmieniaj tematu. CYTUJ (ale OSZCZĘDNIE). Pisz POD cytatem!


========
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Michal Baszynski <mbaszyns_at_nospam_ga.ze.ta.pl.>
Subject: Re: ustawianie UART na 9600bps, 1b start,1 stop,no-parity
Date: Fri, 18 Jun 2004 12:37:04 +0200


On Thu, 17 Jun 2004 20:14:40 +0200, "Marek Dzwonnik"
<mdz_at_nospam_WIADOMO_PO_CO_TO.message.pl> wrote:

Pierwsze primo:

primo to juz znaczy "pierwsze" ;-)

No to po kolei:
Procek At89s51
Bierzemy książkę Rydzewskiego

bierzemy taki stary ale fajny programik AppBuilder z Intela,
odfajkowujemy odpowiednie opcje w menu i klikamy jeden przycisk, po
czym delektujemy sie automagicznie wygenerowanym odpowiednim kodem ;-)
Gdybysmy uzywali prockow Siemensa to wtedy rozgladamy sie za DaVE'm
;-)
Oczywiscie to wszystko w celach edukacyjnych, aby wiedziec co
popsulismy w procedurze napisanej wczesniej wlasnorecznie :-)

--
Pozdr
Michal

========
Message-ID: <40D40835.4010108_at_nospam_badworm.pl>
Date: Sat, 19 Jun 2004 11:32:37 +020

Poprzedni Następny
Wiadomość
Spis treści
From: badworm <nospam_at_nospam_post.pl>
Subject: Re: ustawianie UART na 9600bps, 1b start,1 stop,no-parity


Wysyłając taki oto zestaw znaków dnia 2004-06-18 12:37 Michal Baszynski
nakarmił(a) stado głodnych newsserwerów:

bierzemy taki stary ale fajny programik AppBuilder z Intela,
odfajkowujemy odpowiednie opcje w menu i klikamy jeden przycisk, po
czym delektujemy sie automagicznie wygenerowanym odpowiednim kodem ;-)
A mógłbyś napisać gdzie można znaleźć ten program???

--
Pozdrawiam Bad Worm badworm{"a" w kolku}post[punkt]pl
GG# 2400455
"Dziwny jest ten świat..."
Tnijcie cytaty i sygnaturki!


========
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Michal Baszynski <mbaszyns_at_nospam_ga.ze.ta.pl.>
Subject: Re: ustawianie UART na 9600bps, 1b start,1 stop,no-parity
Date: Sun, 20 Jun 2004 13:45:18 +0200


On Sat, 19 Jun 2004 11:32:37 +0200, badworm <nospam_at_nospam_post.pl> wrote:

bierzemy taki stary ale fajny programik AppBuilder z Intela,

A mógłbyś napisać gdzie można znaleźć ten program???

kiedys byl na stronie intela, google wyrzuca np. taki adres:
http://homepages.uel.ac.uk/u0020253/ , a jak nie to odezwij sie na
priv - postaram sie wtedy odkopac w piwnicy stare CD Intela i
powinienem go znalezc

--
Pozdr
Michal

========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!newspump.monmouth.com!newspeer.monmouth.com!border1.nntp.dca.giganews.com!nntp.giganews.com!pd7cy2so!shaw.ca!pd7tw2no.POSTED!53ab2750!not-for-mail
X-Trace-PostClient-IP: 24.108.242.15