RTV forum PL | NewsGroups PL

Różnice między przerwaniami UDRE a TXC w USART w ATmega wyjaśnienie dla programistów

USART w atmega - pytanie

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Różnice między przerwaniami UDRE a TXC w USART w ATmega wyjaśnienie dla programistów

Goto page Previous  1, 2, 3  Next

Lelek@
Guest

Fri Apr 08, 2011 4:20 pm   



"RoMan Mandziejewicz" <roman@pik-net.pl> wrote in message
news:1248700338.20110408181521@pik-net.pl...
Quote:
Hello Lelek,

Friday, April 8, 2011, 4:13:45 PM, you wrote:

Ale zrozum człowieku że ty pisałeś o rejestrze bajtowym jako bajt za
bajtem.
Palnąłeś o rejestrze fifo a to co jest w atmedze nie jest żadnym fifo.
Nawet nie pseudo fifo.
Gwoli ścisłości kolego 4CX250, Atmel nazywa to FIFO, wiec stosujmy
nazewnictwo producenta:
"...The two Buffer Registers operate as a circular FIFO buffer....."
Ale to Rx. Tx ma 1 bajt

W USART'cie? Niemożliwe - musi mieć co najmniej dwa bajty. Mogę sobie
wyobrazić UARTa na jednym rejestrze - USARTa nie da rady.

1 bajt holding register Tx

4CX250
Guest

Fri Apr 08, 2011 4:50 pm   



Użytkownik "Michoo" <michoo_news@vp.pl> napisał w wiadomości
news:inn7fe$om8$1@news.onet.pl...
Quote:
W dniu 08.04.2011 15:31, 4CX250 pisze:

Tak działa fifo - z jednej strony bajty wchodzą a z drugiej
wychodzą.

Nadajnika?

Quote:
Jest FIFO. Doucz się Wink

W dataschicie mowa o FIFO odbiornika ja poruszam problem nadajnika.


Quote:
Jest przesuwny rejestr wyjściowy do którego dane trafiają z rejestru
danych. Dzięki temu możesz wyekspediować do wysyłki DWA bajty jeden
po drugim.

Gdyby był FIFO to byłby ładowany szeregowo bit po bicie a nie jest.
W nadajniku rejestr ten ładowany jest tylko i wyłącznie równolegle z
rejestru UDR.
Oczywiście cały czas mowa o rejestrze przesuwnym nadajnika.



Marek

4CX250
Guest

Fri Apr 08, 2011 5:12 pm   



Uzytkownik "Marcin" <mbawolski@o2.pl> napisal w wiadomosci
news:1ec35702-68fd-44eb-8fca-3b7e611bdb48@m13g2000yqb.googlegroups.com...
Quote:

Gwoli cis o ci fifo mo e by r wnoleg e, bajtowe.

Piszesz zupe nie o czyms innym. Transmisja USART jest bitowa nie
bajtowa i
rejestr jest bitowy a nie bajtowy.

Ale sa _dwa_ rejestry bajtowe. Mmozna wpisac do wyslania dwa bajty,
nie czekajac na transmisje pierwszego.
Inne uP ( np ADuC7026 maja 3 najtowa kolejke FIFO)

Ale polaczone równolegle nie szeregowo. Zobacz na rysunek. Zawartosc
rejestru UDR (transmit) kopiowana jest _równolegle_ do Transmit Shift
Register czyli do rejestru przesuwnego. Jak widzisz nie wystepuje tu
ladowanie tego rejestru bit po bicie szeregowo.
Z rejestru tego w takt zegara bit po bicie wysuwany jest bajt do Pin
Control i dalej na nózke procka. Miedzu czasie Parity Generator zlicza
bity i na koncu kiedy ostatni bit nadawanego bajtu wyjdzie z rejestru
przesuwnego dokleja swój bit parzystosci.
Gdy ostatni bit wysylanego bajtu opusci rejestr przesuwny kopiowany
jest do tego rejestru drugi bajt który oczekiwal w rejestrze UDR.

Czy pisze tu gdzies o rejestrze FIFO nadajnika?
"The Transmitter consists of a single write buffer, a serial
Shift Register, parity generator and control logic for handling
different serial frame formats"
Ten rejestr przesuwny ladowany jest równolegle nie szeregowo a idea
rejestru FIFO to first input first output. W rejestrze FIFO dane
dopisywane sa na koncu kolejki. Jezeli ja wpisuje równolegle do
rejestru cale 8 bitów to jak to mozna nazwac dopisywaniem na koncu
kolejki?

Marek


Marek

4CX250
Guest

Fri Apr 08, 2011 5:22 pm   



Użytkownik "Konop" <konoppo@gazeta.pl> napisał w wiadomości
news:inn90d$92n$1@inews.gazeta.pl...
Quote:
W dniu 08.04.2011 14:52, 4CX250 pisze:


Quote:
W ATMGA masz FIFO, ale "1 bajtowe", przez co możesz wpisać 1 bajt w
czasie nadawania. Faktem jest, że pojećie FIFO jednobajtowe jest
trochę śmieszne, bo FIFO 1-bajtowe niczym nie różni się od stosu
(FILO) jednobajtowego. Dlatego może nie czujesz, gdzie jest ta
kolejka FIFO. Mam nadzieję, że powyższe przykłady Ci to wyjaśnią Smile.

Czuję czuję. Spoko.
W USART dane wysyłane mogą składać się z 5 do 9 bitów więc nawet nie
można mówić o bajcie lecz o bitach, jakims słowie n-bitowym.
Na stronie 140 Datasheet ATmega 32 jest rysunek. Odpowiedz mi co
widzisz?
Czy TRANSMIT SHIFT REGISTER jest rejestrem przesuwnym ładowanym
równolegle, czy ładowanym szeregowo rejestrem FIFO? Czy widzisz w nim
gdzieś wejście szeregowe? Jeżeli tak by było to rejestr UDR (Transmit)
także musiał by być rejestrem przesuwnym z drugim wejściem zegarowym
ale tego nie ma.
Więc?

Marek

Lelek@
Guest

Fri Apr 08, 2011 5:32 pm   



"4CX250" <taunusmtv@poczta.onet.pl> wrote in message
news:innfld$nrh$1@news2.ipartners.pl...

Nic z ciebie bie bedzie, ani konstruktor ani programista :-)

Proponuje nie karmic trola Smile

Lelek@
Guest

Fri Apr 08, 2011 5:33 pm   



"4CX250" <taunusmtv@poczta.onet.pl> wrote in message
news:inng7v$o4q$1@news2.ipartners.pl...

NIE KARMIĆ TROLA

4CX250
Guest

Fri Apr 08, 2011 5:54 pm   



Uzytkownik "Lelek@" <rennes@iw.iw> napisal w wiadomosci
news:inngqn$cbk$1@opal.futuro.pl...
Quote:

"4CX250" <taunusmtv@poczta.onet.pl> wrote in message
news:innfld$nrh$1@news2.ipartners.pl...

Nic z ciebie bie bedzie, ani konstruktor ani programista :-)

Proponuje nie karmic trola Smile

A moze cos konkretnie na temat sie odniesiesz do zapytan jakie ci ciut
wyzej postawilem zanim mnie nazwiesz trollem?

Co? Glowa w piasek? Za trudny temat dla ciebie ?

Marek

Michoo
Guest

Fri Apr 08, 2011 7:41 pm   



W dniu 08.04.2011 18:50, 4CX250 pisze:
Quote:
Użytkownik "Michoo" <michoo_news@vp.pl> napisał w wiadomości
news:inn7fe$om8$1@news.onet.pl...
W dniu 08.04.2011 15:31, 4CX250 pisze:

Tak działa fifo - z jednej strony bajty wchodzą a z drugiej wychodzą.

Nadajnika?

Gdyby był FIFO to byłby ładowany szeregowo bit po bicie a nie jest.
W nadajniku rejestr ten ładowany jest tylko i wyłącznie równolegle z
rejestru UDR.
Oczywiście cały czas mowa o rejestrze przesuwnym nadajnika.
Strona 133.

Masz UDR robiący za 1 *bajtowe* FIFO i 'TRANSMIT SHIFT REGISTER' z
którego bity teleportują się bit po bicie[*].


[*] 8 *bitowe* FIFO z równoległym ładowaniem jakby nie patrzeć

--
Pozdrawiam
Michoo

4CX250
Guest

Fri Apr 08, 2011 7:52 pm   



Użytkownik "Michoo" <michoo_news@vp.pl> napisał w wiadomości
news:innodm$s1h$1@news.onet.pl...
Quote:
W dniu 08.04.2011 18:50, 4CX250 pisze:
Użytkownik "Michoo" <michoo_news@vp.pl> napisał w wiadomości
news:inn7fe$om8$1@news.onet.pl...
W dniu 08.04.2011 15:31, 4CX250 pisze:

Tak działa fifo - z jednej strony bajty wchodzą a z drugiej
wychodzą.

Nadajnika?

Gdyby był FIFO to byłby ładowany szeregowo bit po bicie a nie jest.
W nadajniku rejestr ten ładowany jest tylko i wyłącznie równolegle
z
rejestru UDR.
Oczywiście cały czas mowa o rejestrze przesuwnym nadajnika.
Strona 133.

Masz UDR robiący za 1 *bajtowe* FIFO i 'TRANSMIT SHIFT REGISTER' z
którego bity teleportują się bit po bicie[*].

Owszem UDR jest 1 *bajtowym* FIFO ale jednocześnie nie jest rejestrem
*przesuwnym*.
Czy trudno ci to zrozumieć że ja cały mówię o rejestrze przesuwnym
'TRANSMIT SHIFT REGISTER'
Ten rejestr nie jest rejestrem FIFO lecz zwykłym rejestrem przesuwnym.


Quote:
[*] 8 *bitowe* FIFO z równoległym ładowaniem jakby nie patrzeć

Te dwa rejestry razem wzięte, czyli rejestr równoległy UDR oraz
rejestr przesuwny TRANSMIT SHIFT REGISTER tworzą coś ala hybrydę
rejestru przesuwnego FIFO z ładowaniem równoległym i wyjściem
szeregowym. Od początku jednak poruszam problem samego tylko rejestru
TRANSMIT SHIFT REGISTER.
Czy zauważasz że to nie to samo?


Marek

4CX250
Guest

Fri Apr 08, 2011 7:56 pm   



Użytkownik "Michoo" <michoo_news@vp.pl> napisał w wiadomości
news:innodm$s1h$1@news.onet.pl...
Quote:
Strona 133.

Ale jakiego układu, bo ja na tej stronie w datasheet atmegi 32 mam
rysunek "SPI Master-slave Interconnection"


Marek

Michoo
Guest

Fri Apr 08, 2011 7:59 pm   



W dniu 08.04.2011 21:56, 4CX250 pisze:
Quote:

Użytkownik "Michoo" <michoo_news@vp.pl> napisał w wiadomości
news:innodm$s1h$1@news.onet.pl...
Strona 133.

Ale jakiego układu, bo ja na tej stronie w datasheet atmegi 32 mam
rysunek "SPI Master-slave Interconnection"
mega8


--
Pozdrawiam
Michoo

4CX250
Guest

Fri Apr 08, 2011 8:00 pm   



Użytkownik "4CX250" <taunusmtv@poczta.onet.pl> napisał w wiadomości
news:innp1n$seu$1@news2.ipartners.pl...



Quote:
Owszem UDR jest 1 *bajtowym* FIFO ale jednocześnie nie jest
rejestrem *przesuwnym*.

Aaa. Kopiuj wklej i wyszła mamałyga.

Miało być że UDR jest 1 *bajtowym* zwykłym rejestrem - buforem, nie
jest
rejestrem przesuwnym.

Jeszcze dopiszę coś. Jeśli byłby rejestrem przesuwnym to wskaż mi
miejsce gdzie do niego dochodzi
sygnał zegarowy :)



Marek

4CX250
Guest

Fri Apr 08, 2011 8:09 pm   



Użytkownik "Michoo" <michoo_news@vp.pl> napisał w wiadomości
news:innpfe$a8$1@news.onet.pl...
Quote:
W dniu 08.04.2011 21:56, 4CX250 pisze:

Użytkownik "Michoo" <michoo_news@vp.pl> napisał w wiadomości
news:innodm$s1h$1@news.onet.pl...
Strona 133.

Ale jakiego układu, bo ja na tej stronie w datasheet atmegi 32 mam
rysunek "SPI Master-slave Interconnection"
mega8


No to nie wiem bo w mega8 mam na tej stronie opis ramki.
Może chodzi ci o rysunek 61 USART Block Diagram który u mnie jest
akurat na 129 stronie?


Marek

Marcin Wasilewski
Guest

Fri Apr 08, 2011 8:13 pm   



Uzytkownik "4CX250" <taunusmtv@poczta.onet.pl> napisal w wiadomosci
news:innfld$nrh$1@news2.ipartners.pl...

Quote:
Ten rejestr przesuwny ladowany jest równolegle nie szeregowo a idea
rejestru FIFO to first input first output. W rejestrze FIFO dane
dopisywane sa na koncu kolejki. Jezeli ja wpisuje równolegle do rejestru
cale 8 bitów to jak to mozna nazwac dopisywaniem na koncu kolejki?

A kto Ci powiedzial, ze FIFO musi byc szeregowe? Traktuj to jako
urzadzenie I/O z dwubajtowym FIFO. Wkladasz tam dane równolelgle (co akurat
jest normalne), a urzadzenie I/O robi z nimi co ma robic (w tym wypadku
wypycha szeregowo), gdyz taka jest istota tego urzadzenia, gdyby to byl np.
wyswietlacz LCD to wypychal by to na ekran i tez nie bardzo by Cie
interesowalo jak to robi.

Michoo
Guest

Fri Apr 08, 2011 8:14 pm   



W dniu 08.04.2011 21:52, 4CX250 pisze:
Quote:
Użytkownik "Michoo" <michoo_news@vp.pl> napisał w wiadomości
Masz UDR robiący za 1 *bajtowe* FIFO i 'TRANSMIT SHIFT REGISTER' z
którego bity teleportują się bit po bicie[*].

Owszem UDR jest 1 *bajtowym* FIFO ale jednocześnie nie jest rejestrem
*przesuwnym*.
Dokładnie. Dyskusja zaczęła się od tego, że negowałeś pełnienie przez

UDR roli bufora FIFO.

Quote:
Czy trudno ci to zrozumieć że ja cały mówię o rejestrze przesuwnym
'TRANSMIT SHIFT REGISTER'
Bardzo trudno. Zaczęło się od "UDRE: USART Data Register Empty". To

tobie się uroiło, że odpowiedź o FIFO dotyczyła shift register.

Quote:
[*] 8 *bitowe* FIFO z równoległym ładowaniem jakby nie patrzeć

Te dwa rejestry razem wzięte, czyli rejestr równoległy UDR oraz rejestr
przesuwny TRANSMIT SHIFT REGISTER tworzą coś ala hybrydę rejestru
przesuwnego FIFO z ładowaniem równoległym i wyjściem szeregowym.
UDR nie jest w tym rozważaniu do niczego potrzebny - równie dobrze TSR

mógłby być ładowany bezpośrednio. Natomiast jak zauważyłeś pełni on rolę
"jakby FIFO" - dane ładowane są równolegle ale opuszczają bufor
szeregowo wg starszeństwa bitów. Tylko, że pisząc o FIFO AK miał na
myśli od początku UDR a Tobie się to pokręciło z TSR.

--
Pozdrawiam
Michoo

Goto page Previous  1, 2, 3  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Różnice między przerwaniami UDRE a TXC w USART w ATmega wyjaśnienie dla programistów

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map