UARTy - lepsze dwa sprzętowe, czy programowy?

Witam!

Mam zamiar w kilkunastu urządzeniach, budowanych na ATMELach AVR, wykorzystać dwa układy UART. W układach, którymi bawiłem się do tej pory wbudowany był tylko jeden sprzętowy UART. Jednak Bascom umożliwia programową realizację drugiego takiego portu.

W helpie do Bascoma można znaleźć opis poleceń:

COMpin:szybkość,8,N,bity_stopu, np. COMB.0:9600,8,N,2

Open "comd.1:19200,8,n,1" For Output As #1 Open "comd.0:19200,8,n,1" For Input As #2

Mam zamiar podłączyć do obu portów (sprzętowego i wirtualnego) dwie, niezależne kostki MAX485, pracujące na dwóch niezależnych magistralach.

Proszę o podzielenie się doświadczeniami, osoby, które próbowały już czegoś takiego (jak spisują się programowe UARTy?). Ewentualnie, jaki uP AVR z dwoma sprzętowymi UARTami polecacie, który będzie mieć wsparcie ze strony Bascom AVR?

A tak, przy okazji, to uP z dwoma UART'ami to bardzo prosty sposób na "rozgałęźnik" dla magistrali RS485. W ten sposób, z 32 urządzeń (ograniczenie magistrali RS485) możemy zrobić nieskończoność.

Reply to
Mariusz
Loading thread data ...

To ograniczenie to już historia. Ja od 2 lat mam na magistrali 128 urządzeń, a wykorzystanie choćby MAX3075E pozwala na 256 !

dziadek Ben

Reply to
dziadek Ben

Dziękuję za tę informację, jest dla mnie bardzo cenna!

A Ty na jakich układach się bawiłeś / w jakich masz największe doświadczenie? Jak jest z dostępnością tych układów na polskim rynku?

Pozdrawiam Mariusz

Reply to
Mariusz

Użytkownik "Mariusz" <mariusz snipped-for-privacy@o2.pl napisał w wiadomości news:e0phlv$1r4$ snipped-for-privacy@atlantis.news.tpi.pl

Należy pamiętać, że standard RS485 stanowi iż typowy nadajnik może wysterować do 32 obciążeń JEDNOSTKOWYCH (ang. unit load) -- 12k omów, oraz dwa terminatory po 120 omów. Stosując na magistrali JEDYNIE odbiorniki mające impedancję wejściową równą 1/8 jednostkowego obciążenia (jak wyżej wzmiankowany) i 2 terminatory 120 omów, można mieć na magistrali 256 urządzeń.

Reply to
Tomasz Grodnicki

Kiedyś w ATmega128 musiałem dorobić trzeci. Pracował chyba na 38 kbit/s. Nie było żadnych problemów. Nie obciążał w sposób znaczny systemu, ale był to najprostszy jaki można sobie wyobrazić pracujący w przerwaniach. Niedawno zafundowałem sobie w ATmega8 4 programowe UARTy. Ponieważ zależało mi na tym, by były odporne na zakłócenia (dość specyficzna aplikacja) wykonuję trzy odczyty linii w ciągu jednego bitu. Chodzi to w przerwaniu timera i umożliwia transmisję do 9600, ale wtedy zabiera prawie cały czas procesora, dlatego musiałem zmniejszyć transmisję do 4800. Gdybym teraz przystępował do tego zadania wstawiłbym UART zewnętrzny. Żaden z nich nie był jednak z Bascom'a.

Reply to
Bogdan Gutknecht

Używam serii MAX307x. Są dostępne w WG ELECTRONICS, czasem trzeba 14 dni poczekać.

dziadek Ben

Reply to
dziadek Ben

Użytkownik "Bogdan Gutknecht" <b snipped-for-privacy@interia.pl napisał w wiadomoœci news:e0qlc8$fo5$ snipped-for-privacy@nemesis.news.tpi.pl...

3 odczyty na bit, 9600, PIC16F84, kwarc 9.216MHz, kilkubajtowe bufory I/O na każdy port, około 50% czasu procesora. pisane w C.

entrop3r

Reply to
entroper

Użytkownik "entroper" snipped-for-privacy@CWD.spamerom.poczta.onet.pl> napisał w wiadomoœci news:e0rg3c$akj$ snipped-for-privacy@atlantis.news.tpi.pl...

zapomniałem dodać: 3 UART'y

e.

Reply to
entroper

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.