Jak w temecie chciałem się dowiedzieć w jaki sposób można zrealizować komunikację między dwoma lub więcej mikrokontrolerami z rodziny AVR np. ATmega32 w Bascom-AVR. Dodam, że chce wiedzieć wszystko
Komunikacja między mikrokontrolerami AVR
Komunikacja między mikrokontrolerami AVR
Witam,
Jak w temecie chciałem się dowiedzieć w jaki sposób można zrealizować komunikację między dwoma lub więcej mikrokontrolerami z rodziny AVR np. ATmega32 w Bascom-AVR. Dodam, że chce wiedzieć wszystko
, a narazie nie wiem nic
no może domyślam się że da się to zrealizować na I2C, ale to tylko domysły, tak wiec proszę o pomoc. Thx
Jak w temecie chciałem się dowiedzieć w jaki sposób można zrealizować komunikację między dwoma lub więcej mikrokontrolerami z rodziny AVR np. ATmega32 w Bascom-AVR. Dodam, że chce wiedzieć wszystko
-
ZbeeGin
Najlepszym rozwiązaniem jest użycie SPI. Można tam dane przesłać, wymienić (przy dwustronnej trasmisji - nie przełanczając się wcale pomiędzy nadawaniem a odbieraniem) lub też odebrać. Można stworzyć sieć - w architekturze gwiazdy - z jednym procesorem Maste i wieloma Slave.
Help w dłoń i czytać: SPIIN(), SPIOUT, SPIMOVE, SPIINIT, CONFIG SPI. Oraz temat ogólny: Interfejs SPI (SPI Interface w angielskiej wersji).
Help w dłoń i czytać: SPIIN(), SPIOUT, SPIMOVE, SPIINIT, CONFIG SPI. Oraz temat ogólny: Interfejs SPI (SPI Interface w angielskiej wersji).
-
ZbeeGin
Manolo pisze:Skoro jest już ten temat na forum to może ktoś byłby w stanie polecić jakieś dobre książki z tym związane?
-
ZbeeGin
Przy SPI to 1m będzie nawet za dużo. SPI służy raczej jako magistrala wewnętrzna, coś jakby I2C tylko bardziej złożona i szybsza. Nie ma problemu by połączyć dwa układy w ramach jednego urządzenia, ale 50m to już ogromna odległość.
Na 50m musiałbyś skorzystać z układu UART i zaimplemetować w "warstwie fizycznej" łącze RS422 lub RS485 (połączenia za pomocą skrętki).
O stanadardach łącza poczytasz nieco na stronie: http://www.softel.pl/rs/ lub http://www.rs485.com/rs485spec.html
Na 50m musiałbyś skorzystać z układu UART i zaimplemetować w "warstwie fizycznej" łącze RS422 lub RS485 (połączenia za pomocą skrętki).
O stanadardach łącza poczytasz nieco na stronie: http://www.softel.pl/rs/ lub http://www.rs485.com/rs485spec.html
-
ZbeeGin
Hmm czyli rozumiem, że jeżeli chciałbym przesłać coś bez konfliktów, z slave0 do slave1 to slave0 musiałby zgłosić chęć do nadawania, master pozwolić na przesłanie do siebie informacji w której slave0 musiałby zawrzeć adres slave1 oraz jakies informacje, że nadawana informacja ma być przekazana po odebraniu przez master do slave1. Rozumiem ze te procedury trzeba już samemu wyczarować programowo??
Na https://elportal.pl/dom znajdziesz trochę informacji nt komunikacji wieloprocesorowej z wykorzystaniem RS485. Jeżeli wymagasz komunikacji między dwoma układami w dużej sieci, bez uzycia nadrzędnego układu Master, to zastosuj magistralę CAN.
piotruś
piotruś