logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

BASCOM/M8 - UART działa dopiero po RESET- Dlaczego ?

31 Gru 2014 13:20 1539 6
  • #1 14274977
    Konto nie istnieje
    Konto nie istnieje  
  • #2 14274999
    witoldwitoldowicz
    Poziom 28  
    Może trzeba troche poczekać aż moduły sie zainicjalizują.
  • #3 14275039
    Konto nie istnieje
    Konto nie istnieje  
  • #4 14276025
    Konto nie istnieje
    Konto nie istnieje  
  • #5 14289209
    Konto nie istnieje
    Konto nie istnieje  
  • #6 14321734
    piotr411
    Poziom 22  
    Każdy się z tym problemem spotkał, problem tkwi w budowie i przeznaczeniu modułu. Moduły zostały zaprojektowane do przesyłania krótkich "pików" o stałej amplitudzie i dość niedużej prędkości zmian. Ponieważ odbiornik non stop zbiera z eteru śmieci czyli defekto dla rs232 sa to dane, wiec często bywa że początek transmisji jaki inicjuje ramkę w rs232 jest nieczytelny. Inaczej jest kiedy wysyłamy "piki" zawsze zaczynamy od stanu niskiego. wówczas odbiornik czeka na zbocze rosnące i rozpoczyna się właściwa transmisja, zwykle powtarzana 3 do 5 razy tego samego rozkazu. W Rs232 jest teoretycznie parametr 8,1 który można zmienić na 8,0 ale zbyt krótki "leader" nie z niweluje problemu do końca, dlatego moduly ze zdjęcia nie nadają się do bezpośredniej transmisji danych po RS232. Kolejna sprawa co w niczym nie przeszkadza przy przesyłaniu "pików" to silne zakłócenie amplitudy nadajnika co bardzo wyraźnie widać na oscyloskopie. W RS232 może być to odczytane jako kolejny stan wysoki choć tak naprawdę nie nastąpiła zmiana. Kolejna rzecz na którą nikt nie zwraca uwagi, to zasilanie, moduł nadawczy zasilamy nie 5V, a 12V. Aby poprawnie wysterować nadajnik należy dodać tranzystor npn i zasilić go 12V tak by zwiększyć amplitude sygnału z AVR. Niestety poprawne wysterowanie nadajnika powoduje zanegowany sygnał co wyklucza transmisję po RS232. W zamierzchłych czasach kiedy modułyte bbyły i nadal są stosownie pomiędzy nadajnikiem a koderem dokładna była bramka nand cemos, która spełniała 2 role. Wzmacniacza amplitudy i jednocześnie korektora. Moduły przy prawidłowym zestawieniu uzyskują zasiegi od 50 do nawet 3000m, w nadajnikach modelarskich. Reasumując, dlaczego moduł nie startuje poprawnie. Dlatego, ze w transmisji RS232 nie możemy przygotować odbiornika do pracy. Transmisja Rs232 nie pozwala nam na wysłanie "loadera" czyli długiego stanu niskiego, który przykrył by śmieci i dał "warunki" do "czystego" odbioru danych. Inaczej rzecz ujmując do elektroniki jaka jest w modułach kodowanie znane z RS232 nienadaje sie bo nie spełnia warunków korekcji błędów. Jak w prosty sposób zmusić moduły do poprawnej pracy? Teoretycznie wystarczy zastosować kodowanie jak do pilotów RC5. Choć to też polowiczny sukces,ale będzie rzetelnej działa układ. Prawidłowo powinno być tak. Prosty przykład w Bascom :

    Nadawanie
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Czyli cały nasz rozkaz trwać będzie 300 milisekund x 3 powtórki czyli niecałą sekundę. Do sterowania to wystarczy, natomiast do transmisji danych typu string juz jest to stanowczo za wolno. Dlatego mówimy, że ten typ nadajników nie nadaje się do komunikacji po Rs232
  • #7 14491103
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA