Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Komunikacja między mikrokontrolerami

27 Sty 2012 18:11 1478 9
  • Poziom 11  
    Witam.
    Poszukuję informacji na temat łączenia dwóch i więcej mikrokontrolerów.
    W założeniu projekt ma wykonywać równocześnie kilka niezależnych operacji. Pomyślałem, że za każdą z nich będzie odpowiadać osobny kontroler.
    Do tego potrzebuję Mastera, z którego wyślę ustawienia do pozostałych (slave). Czy ktoś z tu obecnych posiada jakąś wiedzę lub schematy na ten temat. Interesuje mnie opracowanie tego w Bascomie.
    Pozdrawiam.
  • Poziom 11  
    Ok, może zabrnąłem za daleko, powiem tak:
    Mamy projekt który dla przykładu steruje silnikiem który obraca się w jednym kierunku i kiedy osiągnie pewne położenie (sygnalizowane sensorem) zaczyna obracać się w przeciwnym kierunku i tu znów napotyka sensor i tak w kółko.
    Czy teoretycznie jeśli silnik obraca się szybko czy jest możliwość że zgubi się precyzyjność całej operacji. Czy jest możliwość że mikrokontroler zareaguje raz wcześniej a raz później jeśli będziemy kontrolować 5 takich silników jednym kontrolerem? A co gdy w tym samym czasie chcę wprowadzić jakieś zmiany np. żeby jeden z silników poruszał się wolniej. Czy istnieje jakiś generator PWM któremu mogę zadać pracę z poziomu mikrokontrolera a który później będzie sobie wykonywać tę pracę jużbez udziału mikrokontrolera?
  • Poziom 37  
    To o czym piszesz powinno się bezproblemowo udać zrobić na 1 MCU, a jeśli i tak będziesz kiedyś potrzebował skorzystać z multi MCU to chyba w przypadku więcej niż 2 układów z podziałem master/slave wykorzystać SPI. PLC cykl zajmuje trochę czasu a też by zasadniczo bez większego problemu podołał takiemu zadaniu więc o prędkość nie ma się co martwić. Jedynie dobrze oprogramować.
  • Poziom 38  
    Założenia początkowe.
    Włączamy zasilanie i mamy już jakiś program.
    Co ten program ma robić?
    Wszystkie silniki w lewo albo w prawo- no jakoś muszą znaleźć pozycję początkową.
    Od tej pozycji mają zacząć być sterowane.
    Aż do przeciwnego czujnika.
    Dokładność- no to w programie.
    Nie ma idealnych czujników i idealnych silników.
  • Poziom 34  
    W moim sterowniku pieca CO zastosowałem 2 uC. Jeden główny sterujący piecem - kontrola temperatur, menu, lcd, klawiatura, sterowanie pompą i ślimakiem, a drugi jest od sterowania grupowego prędkością wentylatora. Drugi wycina poszczególne kawałki sinusoidy prądu zasilającego wentylator. Główny uC wysyła do pomocniczego informację po UART (Tx->Rx) odnośnie wymaganej szybkości wentylatora. Poza masą połączenie wymaga jednego drutu. W ten sposób można przesyłać informację do wielu uC podrzędnych. Wystarczy do ramki danych wprowadzić adres.
  • Moderator Mikrokontrolery Projektowanie
    W konfiguracji multislave wystarczy wykorzystać MPCM, ale nie ma to jak wymyślić niezbyt rozsądny projekt a potem cieszyć się, że jednak taki dziwaczny pomysł udało się zrealizować :)
    Masz sterowanie grupowe, wycinasz fragmenty suinusoidy, czyli odpalasz procedurę za to odpowiedzialną co 10ms, a trwa ona pewnie ze 100 taktów. Czyli wywaliłeś z procesora głównego kod, który pochłania 10000 taktów/s, zapewne mniej niż 1% mocy obliczeniowej procesora :) Nie ma jak optymalizacja :)
  • Poziom 11  
    janbernat: położenie początkowe to sprawa oczywista więc pominąłem ją w opisie. Chodzi o to aby silniki działały niezależnie, z różną prędkością i wychyleniem od czujników. Innym rozwiązaniem można by zastosować po jednym czujniku referencyjnym ale z silnikiem DC może okazać się że precyzja pójdzie w niepamięć. Polecacie zrobić program który monitoruje stan czujników i odsyła do "subów" przy zmianie stanu czujnika?

    Chciałbym też wprowadzać ustawienia bez przerywania pracy układu, czy da sięto w tej sytuacji zrealizować?