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

ATmega/ATtiny - Jak zrealizować komunikację 1wire z użyciem max. 2 I/O?

m.biruta 07 Sty 2013 08:51 2754 13
REKLAMA
  • #1 11753641
    m.biruta
    Poziom 16  
    Posty: 479
    Pomógł: 2
    Ocena: 32
    Witam,
    Potrzebuję stworzyć komunikację 1wire pomiędzy dwoma układami. Atmega <-> Atmega nie ma problemu, pytanie czy da się to zrobić pomiędzy dwoma Attiny lub Atmega <-> Attiny? Nigdy nic nie robiłem na Attiny, więc nie znam ich możliwości. Dodatkowo potrzebuję max. 2 I/O.
  • REKLAMA
  • #2 11753684
    BlueDraco
    Specjalista - Mikrokontrolery
    Posty: 6479
    Pomógł: 939
    Ocena: 421
    ATtiny to tylko trochę odchudzony mega. Timery też ma podobne, a głównie tego potrzebujesz do OW. Z czym konkretnie masz problem?
  • REKLAMA
  • REKLAMA
  • #4 11753883
    m.biruta
    Poziom 16  
    Posty: 479
    Pomógł: 2
    Ocena: 32
    Nie mam jeszcze nic. Potrzebuję tego typu komunikacji:

    - uC2 -> uC1: HELLO
    - uC1 -> uC2: HI
    - uC2 -> uC1: WANT230V
    - uC1 -> uC2: OK
    - uC1 -> uC2: PING
    - uC2 -> uC1: PONG
    - uC1 -> uC2: PING
    - uC2 -> uC1: PONG
    (...)
  • #5 11754012
    BlueDraco
    Specjalista - Mikrokontrolery
    Posty: 6479
    Pomógł: 939
    Ocena: 421
    A ja się zastanawiam, czemu uparłeś się na OW. Przecież możesz puścić dwukierunkową komunikację przy użyciu UART po jednym drucie (plus masa powrotna oczywiście). Obsługa będzie o niebo prostsza niż OW.
  • #6 11754036
    m.biruta
    Poziom 16  
    Posty: 479
    Pomógł: 2
    Ocena: 32
    Nie uparłem się na 1Wire, z komunikacją UART nie miałem styczności (natomiast z I2C i owszem). Fakt jest natomiast taki, że muszę mieć komunikację na jednym, max 2 przewodach.
  • Pomocny post
    #7 11754219
    BlueDraco
    Specjalista - Mikrokontrolery
    Posty: 6479
    Pomógł: 939
    Ocena: 421
    Dotychczas w mojej karierze zawodowej nie spotkałem się z techniką przesyłania prądu elektrycznego bez sygnału powrotnego, czyli po jednym przewodzie bez chociażby ziemi lub wody jako powrotu.

    UART - to jest coś, co masz w 99% mirokontrolerów i czego obsługa programowa składa się z kilku instrukcji. Nie bardzo wiem, jak mogłeś nie mieć styczności z UART, bo to najpowszechniejszy standard/format szeregowej transmisji danych. Proponuję jednak użyć UARTa, który jest znacznie prostszy i od OW i od I2C.
  • #8 11754621
    m.biruta
    Poziom 16  
    Posty: 479
    Pomógł: 2
    Ocena: 32
    BlueDraco napisał:
    Dotychczas w mojej karierze zawodowej nie spotkałem się z techniką przesyłania prądu elektrycznego bez sygnału powrotnego, czyli po jednym przewodzie bez chociażby ziemi lub wody jako powrotu.

    Wiadomo :) Przy tym połączeniu mam 5V, GND 5V, DATA, 230V, GNS 230V, więc mógłbym układ podłączyć pod GND linii sieciowej. i zyskać 2 przewód data.

    BlueDraco napisał:
    UART - to jest coś, co masz w 99% mirokontrolerów i czego obsługa programowa składa się z kilku instrukcji. Nie bardzo wiem, jak mogłeś nie mieć styczności z UART, bo to najpowszechniejszy standard/format szeregowej transmisji danych. Proponuję jednak użyć UARTa, który jest znacznie prostszy i od OW i od I2C.

    Styczność z komunikacją UART miałem tyle, co programowanie układów, ale nie przesyłanie danych pomiędzy układami.
  • Pomocny post
    #9 11754662
    BlueDraco
    Specjalista - Mikrokontrolery
    Posty: 6479
    Pomógł: 939
    Ocena: 421
    Możesz dane przesyłać w obie strony po jednej linii DATA przez odpowiednio oprogramowany UART. To oprogramowanie zajmie pewnie nie więcej niż kilkanaście linii kodu (wraz z przełączaniem kierunku transmisji).
  • REKLAMA
  • #10 11754679
    m.biruta
    Poziom 16  
    Posty: 479
    Pomógł: 2
    Ocena: 32
    BlueDraco napisał:
    Możesz dane przesyłać w obie strony po jednej linii DATA przez odpowiednio oprogramowany UART. To oprogramowanie zajmie pewnie nie więcej niż kilkanaście linii kodu (wraz z przełączaniem kierunku transmisji).

    Czy jesteś mi w stanie podesłać link do jakiegoś przykładu?
  • #11 11754705
    BlueDraco
    Specjalista - Mikrokontrolery
    Posty: 6479
    Pomógł: 939
    Ocena: 421
    Wiesz, nie tak łatwo znaleźć przykład na ATmega, w którym NIE MA komunikacji po UART (np. RS232 i połączenie z PC). Pozostaje dorzucić wyłączenie wyjścia po wysłaniu bajtu i oczekiwanie na odpowiedź po stronie MASTER i komplementarny kod po stronie SLAVE (czekamy na daną z master, wyłączamy odbiór, włączamy nadawanie, nadajemy, wyłączamy nadawanie i włączamy odbiór).
  • #12 11754770
    m.biruta
    Poziom 16  
    Posty: 479
    Pomógł: 2
    Ocena: 32
    BlueDraco napisał:
    Wiesz, nie tak łatwo znaleźć przykład na ATmega, w którym NIE MA komunikacji po UART (np. RS232 i połączenie z PC).

    A attiny<->attiny?
  • #13 11754790
    BlueDraco
    Specjalista - Mikrokontrolery
    Posty: 6479
    Pomógł: 939
    Ocena: 421
    Jeśli masz na myśli uC bez sprzęTowego UARTa, to Google: attiny software uart
  • #14 11755929
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2206
    ATTiny ma moduł USI, w zależności od konfiguracji działa jako USART, SPI, I2C z lekkim wsparciem programowym.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukuje sposobu na realizację komunikacji 1-Wire pomiędzy układami ATtiny oraz ATmega, z ograniczeniem do maksymalnie dwóch linii I/O. Odpowiedzi wskazują, że ATtiny, mimo że jest uproszczoną wersją ATmega, ma możliwości do obsługi 1-Wire, jednak niektórzy sugerują użycie komunikacji UART, która jest prostsza w implementacji. Użytkownik nie miał wcześniej doświadczenia z UART, ale jest otwarty na tę opcję, zwłaszcza że wymaga komunikacji na jednym lub dwóch przewodach. Wskazano również, że ATtiny ma moduł USI, który może działać jako USART, SPI lub I2C, co może być przydatne w kontekście komunikacji.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA