Witam
Mam trudności z sensownym rozplanowaniem zadań dla struktury rozproszonej na 2-3 uC (pod ręką mam 2x Mega8 + 1x Tiny 2313 + kilka Tiny13). Język BASCOM
Zadania do wykonania:
1. pobranie danych z komputera przez RS232 (pozycje osi X,Y,A,B, częstotliwości fX fY)
2. komunikacja pomiędzy uC (ISP / UART)
3. generowanie 2x PWM 50Hz z wypełnieniem 5-10% dla serw modelarskich (A,B) bez sprzężenia zwrotnego
4. generowanie 2x sygnał prostokątny ze sterowaną częstotliwością ok. 100-2000Hz (ok. 50%) + wymagane sprzężenie zwrotne położenia + kilka sygnałów sterujących
5. obsługa krańcówek
6. obsługa kilku przycisków
7. orientacyjnie wyświetlacz, ale niewymagany
Koncepcja 1:
(Master) Mega8 (1 + 2 + 4 + 5 + 6 + 7)
(Slave) Tiny2313 (2 + 3)
- uC nadrzędny zarządza całym przesyłem danych oraz generowaniem 2x prostokąt o sterowalnej częstotliwości oraz przelicza położenie głowicy. Jak osiągnie określoną pozycję, to odpytuje komputer o kolejne współrzędne. Orientacyjnie jakieś dane wyrzuci na wyświetlacz.
- uC podrzędny odbiera tylko nowe nastawy A,B (jeżeli się pojawią) i generuje stabilny sygnał dla serw modelarskich analogowych.
Koncepcja 2:
(Master) Mega8 (1 + 2x2 + {7})
(Slave) Mega8 (2 + 4 + 5 + 6 + {7})
(Slave) Tiny2313 (2 + 3)
- Jeden uC zajmuje się tylko odbieraniem i przekazywaniem danych (RS232 + 2xISP lub 2xUART)
- Drugi otrzymuje współrzędne XY, generuje 2x prostokąt o sterowalnej częstotliwości i przelicza położenie głowicy.
- Trzeci uC czasem otrzymuje nastawy AB i generuje 2x PWM dla serw modelarskich.
Proszę o określenie czy dana koncepcja jest wykonywalna i na jaki sposób komunikacji można by się ostatecznie zdecydować, aby było jak najprościej. Nie miałem styczności z programowaniem uC od ładnych paru lat, a sytuacja mnie zmusiła i deadline jest krótki..
Aktualnie mam rozpisane miniprogramy w Bascomie dla generowania sygnałów (3+4+5) sprzężenie zwrotne. Za komunikację jeszcze się nie wziąłem i nigdy wcześniej tego tematu nie ruszałem.
Orientacyjnie co można pozamieniać miejscami, aby było jak najsensowniej rozmieszczone, nie obciążało nadmiernie konkretnego procka i działało stabilnie...
Mam trudności z sensownym rozplanowaniem zadań dla struktury rozproszonej na 2-3 uC (pod ręką mam 2x Mega8 + 1x Tiny 2313 + kilka Tiny13). Język BASCOM
Zadania do wykonania:
1. pobranie danych z komputera przez RS232 (pozycje osi X,Y,A,B, częstotliwości fX fY)
2. komunikacja pomiędzy uC (ISP / UART)
3. generowanie 2x PWM 50Hz z wypełnieniem 5-10% dla serw modelarskich (A,B) bez sprzężenia zwrotnego
4. generowanie 2x sygnał prostokątny ze sterowaną częstotliwością ok. 100-2000Hz (ok. 50%) + wymagane sprzężenie zwrotne położenia + kilka sygnałów sterujących
5. obsługa krańcówek
6. obsługa kilku przycisków
7. orientacyjnie wyświetlacz, ale niewymagany
Koncepcja 1:
(Master) Mega8 (1 + 2 + 4 + 5 + 6 + 7)
(Slave) Tiny2313 (2 + 3)
- uC nadrzędny zarządza całym przesyłem danych oraz generowaniem 2x prostokąt o sterowalnej częstotliwości oraz przelicza położenie głowicy. Jak osiągnie określoną pozycję, to odpytuje komputer o kolejne współrzędne. Orientacyjnie jakieś dane wyrzuci na wyświetlacz.
- uC podrzędny odbiera tylko nowe nastawy A,B (jeżeli się pojawią) i generuje stabilny sygnał dla serw modelarskich analogowych.
Koncepcja 2:
(Master) Mega8 (1 + 2x2 + {7})
(Slave) Mega8 (2 + 4 + 5 + 6 + {7})
(Slave) Tiny2313 (2 + 3)
- Jeden uC zajmuje się tylko odbieraniem i przekazywaniem danych (RS232 + 2xISP lub 2xUART)
- Drugi otrzymuje współrzędne XY, generuje 2x prostokąt o sterowalnej częstotliwości i przelicza położenie głowicy.
- Trzeci uC czasem otrzymuje nastawy AB i generuje 2x PWM dla serw modelarskich.
Proszę o określenie czy dana koncepcja jest wykonywalna i na jaki sposób komunikacji można by się ostatecznie zdecydować, aby było jak najprościej. Nie miałem styczności z programowaniem uC od ładnych paru lat, a sytuacja mnie zmusiła i deadline jest krótki..
Aktualnie mam rozpisane miniprogramy w Bascomie dla generowania sygnałów (3+4+5) sprzężenie zwrotne. Za komunikację jeszcze się nie wziąłem i nigdy wcześniej tego tematu nie ruszałem.
Orientacyjnie co można pozamieniać miejscami, aby było jak najsensowniej rozmieszczone, nie obciążało nadmiernie konkretnego procka i działało stabilnie...
