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

Komunikacja Atmega644p i Atmega8

Nostus 06 Maj 2012 15:20 1342 4
  • #1 06 Maj 2012 15:20
    Nostus
    Poziom 12  

    Witajcie.

    Chcę Was zapytać jak można by prosto w Bascomie zrobić komunikację między Atmega644p i Atmega8 - chętnie gdyby była w miarę odporna na zakłócenia ( np RS485 ?) - ale może też być inna. Długość kabli połączeniowych między jednym a drugim kontrolerem wynosić będzie ok. 2-3 metry max. Chcę zrobić następująco - mocniejszą Atmegę 644p użyć jako zaawansowany sterownik do mojego roweru ( monitorowanie pracy 6 ogniw baterii, pomiar prądu, pilnowanie progów odcięcia dla napięć każdej celi, wykonywanie operacji matematycznych na kontrolerze plus jakiś rozwojowy układ w przyszłości aby np. nią zasterować silnik w PWM-ie). Drugą Atmegę 8 chcę umieścić w skrzynce na kierownicy i ją sprzęgnąć z wyświetlaczem 20x4 i na niej zrobić sobie wizualizację tego co się dzieje na Atmega 644p oraz wprowadzić do tejże Atmega8 obsługę 4 klawiszy do przełączania.

    Problem polega na tym jak zrobić dwukierunkową komunikację pomiędzy obydwoma mikrokontrolerami - z Atmega 644p chcę nadwać na Atmegę8 to co ona mierzy aby Atmega8 to zwizualizowała na wyświetlaczu to co dostaje z 644p. Natomiast komunikacja z Atmega 8 do 644p zawierałaby tylko to co się dzieje z klawiszami dołączonymi do 8-mki aby 644p mogła reagować...

    Jakich komend użyć by to zrobić? Może jest jakiś prostszy system aby móc to zrobić tylko na 644p i nie używać kilkunastu żył przewodów by podpiąć wyświetlacz i 4 klawisze bo szczerze powiedziawszy głupio to będzie wyglądało jak na kierownicę mojego roweru będzie szła "pyta kabli" - najchętniej chciałbym to zrobić na góra 6-8 żyłowym przewodzie.

    0 4
  • #2 06 Maj 2012 16:40
    mirekk36
    Poziom 42  

    Powiem więcej poprowadzenie takiej ilości kabli i umieszczenie na końcu wyświetlacza to prosta droga do śmieci na ekranie tegoż wyświetlacza i mega zakłóceń z tak długich linii. Więc dobrze pomyślałeś na samym początku - jeśli chodzi o założenia.

    Może ta ATmega644p to lekki przerost formy nad treścią bo to olbrzymi procek jak na te potrzeby, które opisałeś ale z drugiej strony biorąc pod uwagę Bascoma ale też ceny procków to w sumie co to za różnica ;)

    Jakich komend użyć ? Najpierw spróbuj sobie opanować komunikację zwykłym RS232 pomiędzy prockiem a terminalem na kompie

    jak to ci wyjdzie to potem komunikację po RS232 pomiędzy prockiem i prockiem

    a na końcu przesiądziesz się na rs485

    W Helpie Bascoma masz przykłady jak w podstawowy sposób obsługiwać i RS485 i RS232 więc może zacznij od tego ?

    Poszukaj też sobie przykładowych programów na stronie producenta Bascoma czyli www.mcselec.com

    0
  • #3 06 Maj 2012 20:44
    Nostus
    Poziom 12  

    mirekk36 napisał:
    W Helpie Bascoma masz przykłady jak w podstawowy sposób obsługiwać i RS485 i RS232 więc może zacznij od tego ?


    Gdybym ja miał Helpa po polsku lub ew. angielsku to byłbym zbawiony...
    Wiesz może gdzie mozna takowego zdobyć?

    mirekk36 napisał:
    Może ta ATmega644p to lekki przerost formy nad treścią bo to olbrzymi procek jak na te potrzeby


    Czy ja wiem czy przerost formy nad treścią? Ja potrzebuję 8 szt przetworników ADC w moim projekcie a ta Atmega właśnie tyle ma ile mi potrzeba. Specjalnie nie chcę dopisywać kodu aby obsłużyć dodatkowe zewnętrzne przetworniki ADC bo to nie takie proste jakby się wydawało... A mój Bascom nie jest jeszcze nazbyt zaawansowany - rzekłbym podstawowy i to dość mocno... Ale kod programu do pilnowania wszystkich 6-ciu ogniw plus pilnowanie ich w górę i w dół do zadanych progów napięciowych oraz pomiar prądu baterii, czytanie ilości impulsów z czujnika w kole (opcja prędkościomierza) oraz obsługę wyświetlacza wraz z wyświetlaniem mojego znaku graficznego na wyświetlaczu 16x2 już ogarnąłem i to śmiga cudownie. I Atmega 644p nie jest wcale za mała bo już po optymalizacji kodu wykorzystuję 30% miejsca w pamięci. Dlatego teraz muszę dorobić komunikację aby 644p wysyłała w RS-a to co mierzy plus kilka komend słownych wg mojej koncepcji i Atmega 8 będzie to musiała odczytać z magistrali i wyświetlić na swoim wyświetlaczu który będzie miała dołączony a będzie to 4 x 20 znaków oraz wysłać spowrotem w magistralę to co się dzieje na klawiszach do niej dołączonych aby 644p mogła odpowiednio zareagować... I teraz zastanawiam się czy Atmega 8 nie będzie miała za mało pamięci aby tyle kodu zmieścić a troszkę tego będzie...

    0
  • #4 07 Maj 2012 11:30
    xury
    Poziom 38  

    Nostus napisał:
    Gdybym ja miał Helpa po polsku lub ew. angielsku to byłbym zbawiony...
    Wiesz może gdzie mozna takowego zdobyć?


    No tym zdaniem to mnie zabiłeś kolego :)

    0
  • #5 07 Maj 2012 12:15
    Nostus
    Poziom 12  

    xury napisał:
    Nostus napisał:
    Gdybym ja miał Helpa po polsku lub ew. angielsku to byłbym zbawiony...
    Wiesz może gdzie mozna takowego zdobyć?


    No tym zdaniem to mnie zabiłeś kolego :)



    Już zdobyłem takowego helpa - coś płodzę ale żeby to szło jako tako nie powiem...
    Myślę czy nie zrobić komunkacji na UART między kontrolerami...

    0