NIE KARMIÆ TROLA
USART w atmega - pytanie
Apr 08, 2011
36 Replies
Uzytkownik "Lelek@" snipped-for-privacy@iw.iw napisal w wiadomosci news:inngqn$cbk$ snipped-for-privacy@opal.futuro.pl...
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
W dniu 08.04.2011 18:50, 4CX250 pisze:
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ćU¿ytkownik "Michoo" <michoo snipped-for-privacy@vp.pl napisa³ w wiadomo¶ci news:innodm$s1h$ snipped-for-privacy@news.onet.pl...
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.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
U¿ytkownik "Michoo" <michoo snipped-for-privacy@vp.pl napisa³ w wiadomo¶ci news:innodm$s1h$ snipped-for-privacy@news.onet.pl...
Ale jakiego uk³adu, bo ja na tej stronie w datasheet atmegi 32 mam rysunek "SPI Master-slave Interconnection"
Marek
W dniu 08.04.2011 21:56, 4CX250 pisze:
mega8
U¿ytkownik "4CX250" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:innp1n$seu$ snipped-for-privacy@news2.ipartners.pl...
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
U¿ytkownik "Michoo" <michoo snipped-for-privacy@vp.pl napisa³ w wiadomo¶ci news:innpfe$a8$ snipped-for-privacy@news.onet.pl...
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
Uzytkownik "4CX250" snipped-for-privacy@poczta.onet.pl> napisal w wiadomosci news:innfld$nrh$ snipped-for-privacy@news2.ipartners.pl...
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.
W dniu 08.04.2011 21:52, 4CX250 pisze:
Dokładnie. Dyskusja zaczęła się od tego, że negowałeś pełnienie przez UDR roli bufora FIFO.
Bardzo trudno. Zaczęło się od "UDRE: USART Data Register Empty". To tobie się uroiło, że odpowiedź o FIFO dotyczyła shift register.
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.
Uzytkownik "Marcin Wasilewski" snipped-for-privacy@adres.pl napisal w wiadomosci news:innq9l$4mg$ snipped-for-privacy@news.onet.pl...
Nie czytacie dokladnie co sie tu pisze.
Oba te rejestry tworza hybryde FIFO. OK. Ale ja caly czas poruszam problem tylko jednego rejestru Transmit Shift Register który rejestrem FIFO nie jest. Jest zwyklym rejestrem przesuwnym. Dopiero polaczony z rejestrem UDR linia 8 bitowa tworza razem hubryde FIFO.
Rejestr Transmit Shift Register nawet nie miesci dwóch bajtów bo to rejestr 8 bitowy jest. Przesuwny ale nie FIFO.
Marek
U¿ytkownik "Michoo" <michoo snipped-for-privacy@vp.pl napisa³ w wiadomo¶ci news:innqat$4ri$ snipped-for-privacy@news.onet.pl...
Bo dopiero pó¼niej spojrza³em na ten rysunek i zobaczy³em ¿e UDR to nie jest jedyny rejestr a zarazem nie przesuwny. To tylko bufor.
Mój b³±d jest ¿e od razu nie spojrza³em na rysunek. Wtedy prawdopodobnie nie by³o by tej dyskusji bo efekt by³ taki ¿e zamiast siê poprawiæ ustosunkowywa³em siê do nowego pojêcia nie poprawiwszy tego co powiedzia³em wcze¶niej i st±d nieporozumienie.
Marek
U¿ytkownik "4CX250" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:innqv9$tcd$ snipped-for-privacy@news2.ipartners.pl...
A dok³adnie to po przeczytaniu datasheta w g³owie mia³em obraz tylko jednego rejestru który nalezy za³adowaæ równolegle i z niego wysuwane sa po kolei bity jak z rejestru przesuwnego. To napewno nie jest FIFO pomy¶la³em. Potem spojrza³em na rysunek i okaza³o siê ¿e oprócz niego jest jeszcze jeden rejestr który jest rejestrem przesuwnym ³adowanym z tego UDR. No dobra ale on sam w sobie nie jest FIFO tylko zwyk³ym rejestrem przesuwnym. Kilka osób uwa¿a jednak oba te rejestry za ca³o¶æ jako FIFO jednocze¶nie u¿ywaj±c nazwy Transmit Shift Register. No dobra teraz siê wyjasni³o. Mowa nie o jednym rejestrze ale dwóch, co widaæ na rysunku i nie bez powodu nazywaj± siê ró¿nie. Nie mam wiêcej nic do powiedzenia w tym temacie.
Marek
Uzytkownik "4CX250" snipped-for-privacy@poczta.onet.pl> napisal w wiadomosci news:innql6$tb9$ snipped-for-privacy@news2.ipartners.pl...
Ale z twojego punktu widzenia co to za róznica? Przyklad z programowania obiektowego, masz jakis obiekt, masz jakies metody których uzywasz. Ale wazny dla Ciebie jest tylko to co tam wrzucisz na wejscie i jaki uzyskasz skutek. To w jaki sposób uzyskujesz ten skutek, to problem osoby piszacej klase. Co wiecej wcale nie jest powiedziane, ze zawsze bedzie sie to odbywalo tak samo, wazne jest tylko to aby wejscie i wynik dzialania byl zgodny z oczekiwaniami.
Uzytkownik "Marcin Wasilewski" snipped-for-privacy@adres.pl napisal w wiadomosci news:innvsl$pgq$ snipped-for-privacy@news.onet.pl...
Sprawa sie juz wyjasnila. W sumie sprawca zamieszania bylem ja gdyz najpierw myslalem ze to tylko UDR a potem przekonalem sie ogladajac rysunki ze nie tylko ale nie zmienilem "zeznan" i wyszlo co wyszlo. Oczywiscie dla mnie jest to bez róznicy. Chodzilo tylko o zasade co do nazwania jakiegos fragmentu funkcjonalnego w atmedze aby ta nazwa byla adekwatna do sprawowanej funkcji:) Nie mniej jednak dyskusja byla dla mnie pozyteczna gdyz bez poruszenia tego tematu nie przeanalizowalbym szczególowo tego dziala datasheeta :) po to aby wyjasnic zagadke rejestrów UDR oraz przesuwnego. Co do samego programu to dziala od poludnia juz po pierwszym czytaniu datasheeta. Wszystko mi ruszylo i mam komunikacje GPSa z atmega.
Marek
Uzytkownik "4CX250" snipped-for-privacy@poczta.onet.pl> napisal w wiadomosci news:ino0ij$104r$ snipped-for-privacy@news2.ipartners.pl...
Wiesz atmegi to dosc dziwne procki i przy wielu rzeczach mozna sie zastanawiac czym sa w istocie. Ot chocby takie rejestry danych procesora. Czym jest rejestr wszyscy wiemy, ale w zasadzie mozna je traktowac tez jako komórki pamieci, bo jak wpiszemy cos do komórki pamieci np. o adresie $0007, to o dziwo pojawi sie to nie gdzie indziej jak tylko w rejestrze R7. Wiec jeden powie, ze zapisal bajt do pamieci, ktos inny powie, ze do rejestru i obaj beda mieli racje.
W innym zas miejscu czesc rejestrów I/O procesora obsluguje sie typowo jak dla obszaru I/O, czyli instrukcjami in, out, inna czesc rejestrów I/O jak zwykle komórki pamieci i znowu jeden powie, ze to pamiec, ktos inny, ze to rejestr i znowu w zasadzie kazdy bedzie mial troche racji.
Uzytkownik "Marcin Wasilewski" snipped-for-privacy@adres.pl napisal w wiadomosci news:ino1bu$vag$ snipped-for-privacy@news.onet.pl...
Wczesniej siedzialem w starszych C'51. Tam jest to samo. Obszary adresowane bitowo lub bajtowo a w nich rejestry.
Ja dotychczas tylko w asemblerze sie tluklem i tylkow starych C51 oraz takich wynalazkach jak np.8055, 8042, 8039. Od paru tygodni jednak postanowilem zmienic procki na atmega no i przejsc na C. Nie wiem dlaczego i czym to idzie ale jak analizuje listingi w asm to mi szybciej idzie zrozumiec co mial na mysli autor niz w C. Dochodzilo do takich nieraz sytuacji ze potrafilem np. zdesasemblowac program telefonu NMT450 po to aby sie dowiedziec jak programuje sie liczniki petli PLL której akurat datasheetu nie moglem zdobyc. Jedyne co tylko bylo upierdliwe dla mnie w asm to arytmetyka zmiennoprzecinkowa. Robilo sie na rózne zamienne sposoby. No ale trzeba isc z duchem czasu stad moje parcie na avr gcc. Wiem ze sa lepsi programisci ale ja uparty jestem.
Marek
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required