atmega i 8-16 UART-ow

Nov 02, 2006 41 Replies

Czesc,



Potrzebuje do atmegi podpiac:



1) 8 portow RS232 + 1 wbudowany
2) 16 portow RS232 + 1 wbudowany

Jak to najprosciej zrobic? Jakies linki? Najchetniej z przykladami kodu...



Dzieki, Marcin



A jak szybko maja te UARTy dzialac? Jesi b. wolno to mozesz sprobowac softwarowo emulowac - przyklad masz w jakiejs nocie aplikacyjnej Atmela, a gotowy program w examplach w AVR Studio.

Wlasnie to pasowaloby mi najbardziej. Tylko nie moge znalezc. Bedzie 8 lub 16, ale nigdy wszystkie na raz nie beda uzywane. Bedzie uzywany jeden wbudowany UART, +jeden jakis inny... Predkosc - do 115200 na wewnetrznym, 9600 lub 19200 na pozostalych.

Prosze jakies linki jesli ktos to widzial.

Pozdrawiam, Marcin

I to bedzie wg Ciebie najprostsze? Pokaz mi linki do czegos, co podepne i w 10 minut zmusze do dzialania? (wewnetrznego UARTA w atmega zmusilem w 5 sekund -- to wlasnie bylo proste).

Pozdrawiam, Marcin

Chyba żartujesz. I biedna atmega ma obsłużyć programowo jednocześnie działające 16*19200 bps?

TP.

Akurat projektujê taki systemik. Jednym z rozwi±zañ jest wziêcie ATmega z dwoma USARTami i daæ multiplekser na jednego. Moje rozwi±zanie jest prostsze uk³adowo, ale zak³ada, ¿e z zewn±trz bêdzie nadawa³ nie wiêcej jak jeden klient. Po prostu bramka AND na dane odbierane, a wysy³anie software'owo na ca³ym porcie czyli 8 linii. Trzeba zmodyfikowaæ oczywi¶cie program. Micha³

Thu, 2 Nov 2006 09:41:51 -0000, na pl.misc.elektronika, Martin Lukasik napisał(a):

To może po prostu 2-uartowa atmega i multiplekser dołączający aktualnie używaną kostkę 232 ? Wprawdzie to tylko dla układu master/slave ale jeśli tutaj akurat wystarczy ? Gdy wymagany nasłuch na wszystkich liniach i przełączenie na właśnie coś przysyłającą - to seria max31xx - z łączem SPI i wyjściem przerwania do uC.

Bez emocji ;-)

"Bedzie uzywany jeden wbudowany UART, +jeden jakis inny..."

Beda uzywane max. 2 jednoczesnie. Obydwa moga byc 19200 max.

m.

Dziekuje, chyba wlasnie tak bedzie najrozsadniej. Chce to zrobic jeszcze dzis wiec bylbym jeszcze bardziej wdzieczny gdyby ktos rzucil jakis symbol tego multipleksera... :-)

Dzieki, Marcin

Hm, to moze nie byc takie trudne jak sie wydaje :-)

J.

A czy ja sie upieram na 10 minut ?

To bedzie DOBRE .. jak dobrze zaprojektujesz :-)

J.

Mo¿e da radê. Nadawanie zrobiæ oczywi¶ie w przerwaniu zegarowym, które bêdzie obs³ugiwa³o

16 uartów. Na bit daje to 416 cykli przy 8MHz.

Przy odbiorze trzeba by ze cztery razy czê¶ciej próbkowaæ, co daje

104 cykli/ bit. Tak wiêc, jakby siê dobrze za ¼ród³o w asemblerze wzi±æ - mo¿e da³oby radê.

W tym przypadku wolalbym, zeby dzialalo i zebym to zrobil w dzisiejszy wieczor :-)

m.

a mzoe pojsc na calosc i wziasc n *2313 - kosztuje przeciez grosze (kupowalem po 2zl przy 10 szt) i spiac je po SPI lub wlasnym rownoleglym standardzie dodadkowo kazdy by mial wlasny bufor nadawczo-odbiorczy wystarczy im wszystkim dac wspolny zegar.. mozesz na kazdym z nich emulowac softwareowo uart - jak w nocie atmela, co zmneijszy liczbe prockow 2x.. procki by dzielily magistrale, ten ktory dostal i zbuforowal dane by zglaszal tylko ze cos ma..a master by go odpytal. masz niesamowita elastycznosc rozwiazania oraz niski koszt to moze byc lepsze i kosztowo pdoobne do zabawy w multipleksery

Martin Lukasik napisał(a):

W katalogu w ktorym masz zainstalowane AVR studio podkatalog AVR Tools\AVRAssembler\Appnotes i pliki AVR304 i AVR305. Przy 115kbps moze byc problem zeby sie wyrobic, znaczy nie problem w nadawaniu, ale w symultanicznym odbieraniu danych. Przy 9600 bez wiekszych problemow daloby sie to zrobic. No ale nie w 10 minut:)

Dokladnie. Z tym, ze wzialbym np. ATtiny12,13,15 lub cos z tej serii, bo sa w SO08, czyli zyskuje sporo miejsca.

BTW. Tak sobie licze wlasnie jak by wygladala obsluga softwarowa 16 UARTow i wychodzi mi, ze AVR z 16MHz zegarem daly rade, a i program bylby w miare prosty, tyle, ze niewiele byloby czasu na cokolwiek innego. Ten procek ma jeszcze cos robic?

Nie. Tak dokladniej, to chce do jednego PC-ta podlaczyc RS232, a do pozostalych RS-ow 8 serwerow. 8 na dzien dzisiejszy mi wystarczy. Wiec jak widac wszystkich na raz nie bede uzywal. Atmega ma byc "mostkiem" miedzy PC-tem a serwerami. Taka prosta koncepcja, zebym nie musial latac do centrum danych jak cos sie spieprzy.

m.

No to bylo od razu pisac ze szukasz "terminal server".

W dzisiejszych czasach to chyba nawet tanie .. uzywane

J.

Ale skupmy sie na problemie. Nie chce kupowac. Bo:

1) nie chce mi sie tego szukac, a i zajmie to dluzej 2) chce to zrobic sam -- zawsze to krok do przodu w swiecie elektroniki cyfrowej. Po prostu nie wydaje mi sie, zeby to bylo zbytnio skomplikowane. Gdyby atmega miala 8 UARTow to zajeloby mi to jakies 10 min -- tak jak pisalem wczesniej.

Powiedzmy, ze chce "przyjemne z pozytecznym" :-)

m.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required