Mikrokontroler posiadający dwa porty szeregowe

No właśnie, znacie jakiś mikrokontroler (idealnie byłoby, gdyby był kompatybilny z '51), posiadający dwa porty szeregowe oraz (niezależnie) port ośmiobitowy? Dobrze byłoby również, gdyby miał wbudowaną pamięć flash, tak żebym mógł umieścić wszystko w jednym układzie. Pamięci nie musi być dużo, 128 bajtów ramu i 1 kB romu spokojnie wystarczy, szybki też nie musi być. Ważne natomiast żeby był w miarę tani.

Z góry dzięki.

Reply to
Adam Wysocki
Loading thread data ...

najtanszy atmel z dwoma rs'ami to ATmega162; chyba chodzi juz od 2.7 V (nawet wersja bez L);

ps. a nie mozesz soft-uarta zrobic?

przy kwarcu 3.686 mam 3 uarty (2 hard + 1 soft), przy czym soft-uart jest na 9600 b/s, zrobiony caly na przerwaniach i wszystko smiga dobrze;

Reply to
Q

Chyba tak zrobię, bo atmega 162 jest tak drogi, że już bardziej opłaca się zmienić sposób komunikacji (jeszcze nie jest opracowany).

Na 51 to będzie działało jakoś sensownie? Muszę na coś zwrócić szczególną uwagę?

Reply to
Adam Wysocki

Pewnego dnia Adam Wysocki przemówił ludzkim głosem:

Pewnie na priorytety przerwań, tak żeby sprzętowy uart nie przyblokował tego software'owego :-). I najlepiej linię odbiorczą umieścić na wejściu z przerwaniem (lub taktowaniem timera jak zabraknie pinów z przerwaniami).

Reply to
Zbych

napisz wiecej o swoim urzadzeniu :). /o wykorzystaniu rs'ow konkretnie :)

jesli np. musisz miec 2 uarty, ale jeden z nich bedzie bardziej obciazony niz drugi /czesciej nadawal/odbieral; to tego daj na sprzetowym;

no chyba, ze ten mniej obciazony ma dzialac na 115200, a ten bardziej na 4800 to wtedy zrob odwrotnie raczej;

wszystko zalezy od tego co robisz;

Reply to
Q

a wcale, ze nie :P

sory, ale znalem kiedys typa co pisal hm... lubial pisac wiekszosc kodu w procedurach obslugi przerwan :). no i wlasnie przypomniales mi o tym typie :), i az mna "wzdrygnelo" (z obrzydzenia, zeby bylo jasne :)

nie wiem jaka jest Twoja filozofia pisania programow, ale moja, poza tym, ze jest prosta i sluszna :))), jest taka, ze prodcedura obslugi przerwania ma wykonac sie w jak najkrotszym czasie; wykonac _niezbedne_ rzeczy i jak najpredzej wrocic; /jak najszybciej odblokowac przerwania;

ponoc mozna odblokowac przerwania w funkcji obslugii przerwania jakas instrukcja, ale jest to hm... traktowalbym to jako "wyjscie ostateczne" :)

no, jak chcesz miec rx soft-uarta na przerwaniach, a nie poprzez "wszystko-zerny polling" to nie masz innego wyjscia :).

half duplex - 1 timer na rx i tx; full duplex - 2 timery: 1 na rx i 1 na tx;

Reply to
Q

Pewnego dnia Q przemówił ludzkim głosem:

Uważam to za rzecz tak oczywistą, że nawet nie pomyślałem, warto o tym pisać :-)

Masz oczywiście rację. Choć ja miałem na myśli wykorzystanie wejścia taktującego do wywołania przerwania w sytuacji, gdy zabraknie nóżek z przerwaniami sprzętowymi ( ustawiasz timer na 0xFFFF i......). Oczywiście ten sam timer potem można wykorzystać do zbierania przychodzących bitów.

Reply to
Zbych

Chyba jednak zdecyduję się na transmisję synchroniczną ;) Dotarł do mnie genialny w swej prostocie fakt, że jeśli wykorzystam dwie linie PC -> uC i jedną uC -> PC to nadal zmieszczę się w jednym MAX 232. Generalnie, musi obsługiwać:

  • dwukierunkową komunikację z komputerem. * dwukierunkową komunikację z urządzeniem szeregowym (async). * komunikację do urządzenia równoległego (11 bit).

Przy czym komunikację z komputerem mogę puścić przez RTS, DTR i CTS (niekoniecznie TX i RX), ale komunikacja z urządzeniem szeregowym musi iść asynchronicznie. I chyba tak właśnie zrobię.

Prędkość nie ma znaczenia, 9600 spokojnie wystarczy.

Reply to
Adam Wysocki

nawet nie wiesz jak wielu magistrow znam, ktorzy nie wiedza o tym; i nawet sami na to nie wpadna :)

Reply to
Q

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.