Strony

niedziela, 22 stycznia 2017

SOFT UART czyli programowy RS232 dla AVR

Witam,

Temat programowej realizacji komunikacji RS232 zalega u mnie w sumie od dawna, lecz po ostatniej sporej ilości maili od Was aby w końcu zająć się i poruszyć tę tematykę, uległem i właśnie zaczynamy. Nie ukrywam, że zmotywowało mnie tu także ukazanie się najnowszego modułu DIGI-LION 2, który to właśnie posiada możliwość przekazywania informacji poprzez swój pin TX, czyli poprzez RS232, a tymczasem niezbyt często będziemy rezygnowali we własnych układach ze sprzętowego UARTA, który przydaje się do innych bardziej potrzebnych rzeczy. W takim razie warto przyjrzeć się jak sobie radzić, gdy nie ma już zasobów sprzętowych, albo gdy mamy do czynienia z maleńkim prockiem ATtiny, który zwykle w ogóle nie posiada wbudowanego sprzętowego modułu UART. Z pomocą przychodzi nam tutaj realizacja programowa takiej komunikacji. Można ją zrealizować na wiele różnych sposobów, ja wybrałem tę najprostszą, opartą o wstawki asemblerowe zaś sama komunikacja jest blokująca. Są zatem wady ale także zalety takiego rozwiązania. Jak się za to zabrać? jak podejść? ... co się z tym wiąże i jak dobierać to do naszych potrzeb ? ... Mam nadzieję, że ten poradnik odpowie na wiele tego typu pytań ...




zapraszam do poradnika





;)

10 komentarzy:

  1. Świetne, naprawdę super. Coś takiego marzyło mi się, aby użyć w Attiny25 (jeśli się zmieści :) jako nadajnik, a w Attiny4-10 do odbioru.

    OdpowiedzUsuń
    Odpowiedzi
    1. Dokładnie o to chodzi ;) a zresztą jak mówię w poradniku - procek ATtiny10 w DIGI-LION korzysta właśnie z takiego sposobu jeśli chodzi o wysyłanie danych na temat napięcia i stanu przetwornicy ;)

      Usuń
  2. A można w ten sposób zrobić jednego mastera i wiele slave ?

    OdpowiedzUsuń
    Odpowiedzi
    1. Na 1 linii? a to kolega kiedyś słyszał żeby magistrala rs232 była 1:wielu ? bo ja nie ... chyba że nie rozumiem pytania.

      Usuń
  3. A może kolega dopiero zaczyna i przez to zadaje takie pytania? Mirku, wielki szacun za to co robisz ale też okaż trochę wyrozumiałości początkującym :)

    magistrala rs232 działa tak że komunikuje się 1:1, nie 1:wielu, więc nie da się zrobić inaczej

    OdpowiedzUsuń
    Odpowiedzi
    1. Ale z czym mam niby odpuścić ? A co ja złego napisałem ... no na prawdę bez przesady ... odpowiedziałem na pytanie ... i przyznałem też że być może nie rozumiem pytania ... Więc przepraszam uprzejmie ale zarzut kolegi jest kompletnie nie na miejscu - że co? że ja niby kogoś zjechałem jak to młodzież mówi ? Sorki ale to bez sensu.

      A jako ciekawostkę podpowiem że da się i rs232 zrobić 1:wielu a nie to nie na tym etapie dla początkującego właśnie - żeby sobie nie zawracał tym na razie głowy - tylko żeby porządnie nauczył się rs232

      Usuń
  4. mirek36 na forum obiecałeś kompletne biblioteki do UART. Proszę, jak możesz to podziel się plikami.
    Pozdrawiam

    OdpowiedzUsuń
  5. Witam
    Czy program będzie działał przy zegarze 128kHz ? i jak obliczyć b_value?
    Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. nie ma szans aby działał przy 128 kHz

      Usuń
    2. Szkoda, mam układ i programik tak działający.
      I ostatnie,jeśli nie problem - jak duży jest plik po kompilacji, tylko dla funkcji wysyłania? np 16 znaków?
      Pozdrawiam

      Usuń