Hi,
do komunikacji mikrokontrolera z urządzeniem przystosowanym do podłaczenia do PC używam typowej kostki MAX232, aby dopasować poziom sygnałów (linie Rx i Tx)
Urządzenie wymaga jednak sterowania przepływem - linia DSR wymagająca napięcia (-10V), którą podciągnąłem na stałe bezpośrednio z nóżki nr 2 układu MAX232.
Chciałbym jednak sterować tą linią bezposrednio z mikrokontrolera.
Jak najszybciej uzyskać (-10V) z 5V portu mikrokontrolera?
Pozdrawiam
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięRS232C i linia DSR - jak najszybciej obsłużyć.
Moderatorzy:Jacek Bogusz, Moderatorzy
Moment..
MAX232 zawiera DWA nadajniki i DWA odbiorniki. Piszesz o wykorzystaniu do transmisji jednego odbiornika i jednego nadajnika (RxD, TxD). A co z pozostałymi? Chyba zostały wolne jeszcze jeden nadajnik i jeden odbiornik? Możesz je wykorzystać właśnie do sterowania przepływem. Każdy bufor w MAX232 jest jednocześnie inwerterem zatem zwróć przy okazji uwagę na poprawną polaryzację.
http://rs232.ep.com.pl
BTW:
Skoro linia DSR w owym urządzeniu jest _wejściem_ tzn., że jego interfejs pracuje jako DTE (czy ma złącze męskie?). Zatem do PC-ta powinno się je podłączać kablem null-modem. Sterownik uC możesz zrobić wedle uznania - jako DCE lub DTE. Byle tylko konsekwentnie.
Więcej szczegółów w tekście na stronie EP.
--
MDz
MAX232 zawiera DWA nadajniki i DWA odbiorniki. Piszesz o wykorzystaniu do transmisji jednego odbiornika i jednego nadajnika (RxD, TxD). A co z pozostałymi? Chyba zostały wolne jeszcze jeden nadajnik i jeden odbiornik? Możesz je wykorzystać właśnie do sterowania przepływem. Każdy bufor w MAX232 jest jednocześnie inwerterem zatem zwróć przy okazji uwagę na poprawną polaryzację.
http://rs232.ep.com.pl
BTW:
Skoro linia DSR w owym urządzeniu jest _wejściem_ tzn., że jego interfejs pracuje jako DTE (czy ma złącze męskie?). Zatem do PC-ta powinno się je podłączać kablem null-modem. Sterownik uC możesz zrobić wedle uznania - jako DCE lub DTE. Byle tylko konsekwentnie.
Więcej szczegółów w tekście na stronie EP.
--
MDz
Poproszę jeszcze o małą radę i podpowiedź..
Sytuacja wygląda tak.
Na dwóch UARTAch sprzętowych Atmegi128 odbieram dane z PC.
Komputery wysyłają je niezależnie od siebie, gdyż są to dwa osobne stanowiska.
Program działa w pętli i sprawdza, czy na porcie jest jakis znak. Jeśli tak, to czyta wszystko i wysyła dalej aż na porcie ilość znaków równać się będzie 0. Bufor Atmegi 128 to 254 znaki a komputer wysyła ich ponad 1500. Jeśli na drugim porcie w tym czasie pojawi się informacja z drugiego PC, Atmega zgubi je, bo bufor zostaje cały czas nadpisywany.
Próbowałem przed wysłaniem znaków dalej archiwizować je na karcie Compact Flash, jednak w tym momencie operacja zapisu trwa zbyt długo i Atmega traci informacje.
Czyli po odebraniu znaku na czas zapisu na CF musiałbym blokować wysyłanie danych z PC. Tylko czy nie pójdą one w tym momencie w powietrze.
Którą linię w PC2 najlepiej zablokować na czas odbierania informacji z PC1?
Pozdrawiam
Almatea
Sytuacja wygląda tak.
Na dwóch UARTAch sprzętowych Atmegi128 odbieram dane z PC.
Komputery wysyłają je niezależnie od siebie, gdyż są to dwa osobne stanowiska.
Program działa w pętli i sprawdza, czy na porcie jest jakis znak. Jeśli tak, to czyta wszystko i wysyła dalej aż na porcie ilość znaków równać się będzie 0. Bufor Atmegi 128 to 254 znaki a komputer wysyła ich ponad 1500. Jeśli na drugim porcie w tym czasie pojawi się informacja z drugiego PC, Atmega zgubi je, bo bufor zostaje cały czas nadpisywany.
Próbowałem przed wysłaniem znaków dalej archiwizować je na karcie Compact Flash, jednak w tym momencie operacja zapisu trwa zbyt długo i Atmega traci informacje.
Czyli po odebraniu znaku na czas zapisu na CF musiałbym blokować wysyłanie danych z PC. Tylko czy nie pójdą one w tym momencie w powietrze.
Którą linię w PC2 najlepiej zablokować na czas odbierania informacji z PC1?
Pozdrawiam
Almatea
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 56 gości