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.
Didn't find your answer? Ask the community — no account required.
Q
Q
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;
A
Adam Wysocki
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ę?
Z
Zbych
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).
Q
Q
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;
Q
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;
Z
Zbych
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.
A
Adam Wysocki
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.
Q
Q
nawet nie wiesz jak wielu magistrow znam, ktorzy nie wiedza o tym; i nawet sami na to nie wpadna :)
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.