Projekt z ATmega32

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
DarkJarek
-
Posty: 44
Rejestracja: 21 mar 2006, 15:48
Lokalizacja: ...
Kontakt:

Projekt z ATmega32

Post autor: DarkJarek » 24 gru 2006, 21:14

Witam, projektuję właśnie układ który ma sterować silnikiem w maszynie do przewijania. Jest to mój pierwszy projekt z użyciem mikroprocesora. A tak właściwie to niewiele w ogóle urządzeń zbudowałem. Schemat w fazie roboczej jest tutaj http://darkjarek.com/p1.pdf . Bardzo proszę o wszelkie uwagi co jest nie tak. Będą niezmiernie wdzięczny.

Teraz krótki opis co i jak.

Do złącza podłączona jest klawiatura w postaci matrycy 5 na 4 co daje razem 9 złączy. Planuję aby sekwencyjnie włączać zasilanie na kolejnych 4 złączać i sprawdzać czy któryś z 5 przycisków nie został wciśnięty. Czy zda to egzamin? Następnie czy można tak po prostu podłączyć ze sobą dwie końcówki uP tak jak ja to zrobiłem.

Do złącza LCD podłączony będzie klasyczny wyświetlacz alfanumeryczny.

PROG to złącze do programowania układu ISP.

Do CZ1 będzie podłączony czujnik który będzie generował przerwania INT0. CZ2 identycznie.

Do złącza SILNIK będzie podłączony przekaźnik włączający silnik.

To wszystko.

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 25 gru 2006, 0:22

DarkJarek pisze:(...)Do złącza podłączona jest klawiatura w postaci matrycy 5 na 4 co daje razem 9 złączy. Planuję aby sekwencyjnie włączać zasilanie na kolejnych 4 złączać i sprawdzać czy któryś z 5 przycisków nie został wciśnięty. Czy zda to egzamin? Następnie czy można tak po prostu podłączyć ze sobą dwie końcówki uP tak jak ja to zrobiłem(...)
To zależy, nie pokazałeś dalszego ciągu rozwiązania klawiatury.
DarkJarek pisze: (...)Do złącza LCD podłączony będzie klasyczny wyświetlacz alfanumeryczny.(...)
Widać, że dajesz interfejs 4-bitowy do LCD, dlaczego nie 8-bitowy, skoro pozostały ci wolne piny w procku. Przy 8-bitowym rozwiązaniu upraszczają się pewne zagadnienia w oprogramowaniu. Sprawa podświetlenia: konieczny jest rezystor. W samym module LCD jest tylko dioda, więc włączenie jej na 5V ... nie będzie dla jej miłe. No i rezystor w obwodzie bazy tranzystora włączającego.
DarkJarek pisze: PROG to złącze do programowania układu ISP.
Właściwie może być, ale radośniej jest jak jest w obwodzie RESET rezystor do +5V i kondensator do masy.
DarkJarek pisze:Do CZ1 będzie podłączony czujnik który będzie generował przerwania INT0. CZ2 identycznie.
Nie wiadomo jakie jest rozwiązanie czujnika, ale klasyczne rozwiązanie jest takie: rezystory podpolaryzowują wejścia przerwań do +5V, a czujnik (jako coś, co ma styki) łączy je do masy.
DarkJarek pisze:Do złącza SILNIK będzie podłączony przekaźnik włączający silnik.
Oczywiście potrzebny jest rezystor w bazie i dlaczego obciążenie nie jest w kolektorze?


Na zakończenia praktyczna uwaga:
Złącze RS232 proponowałbym rozwiązać inaczej (inaczej ponumerować piny). Masz:

Kod: Zaznacz cały

    1  -> O  O <- 2
    3  -> O  O <- 4
    5  -> O  O <- 6
    7  -> O  O <- 8
    9  -> O  O <- 10
Jak zrobisz:

Kod: Zaznacz cały

    1  -> O  O <- 6
    2  -> O  O <- 7
    3  -> O  O <- 8
    4  -> O  O <- 9
    5  -> O  O <- 10
To będzie wtedy pasowało do typowej smyczki (płaski kabelek zaciśnięty na złączu FC10 /te do GOLDPIN/ i z drugiej strony zaciśnięte na DB9), czyli kabelek kosztuje cię 1 minutę. W przeciwnym wypadku konieczne jest lutowanie (znacznie więcej czasu).

misci
-
Posty: 17
Rejestracja: 20 paź 2005, 22:07

Post autor: misci » 25 gru 2006, 0:27

Na schemacie podłączony jest reset i Vcc do programatora. Programowanie odbywa się w stanie niskim resetu zatem jak chcesz waść zasilać wtedy uC? Należy to połączenie rozłączyć. Reset do programatora a Vcc do zasilania. (ups być może edytor to tylko tak namalował).
Do matrycy 5x4 można podłaczyć aż 20 klwaiszy a nie tylko 9. Jeśli wystarczy tylko 9 to szkoda budować matrycę. Przyciski podpiąłbym do portów bezpośrednio szczególne, że jest jeszcze kilka wolnych końcówek - łatwiej to będzie oprogramować.
Przekaźnik należy zbocznikować diodą podłączoną anodą do masy. Inaczej może być problem z przepięciami na cewce.
Trzeba jeszcze sprawdzić czy w obwodzie zasilania na wyświetlaczu zabudowano rezystor szeregowo do diód podświetlenia. Inaczej może być jasno i krótko.
Rezystory R1 i R2 są raczej zbędne. Mogą jedynie zabezpieczać port w przypadku oprogramowania tych końcówek jako wyjścia w stanie wysokim.
Na koniec należy się zastanowić po co ładować w to aż Megę 32. Nie zapomnij też o prawidłowym zasilaniu i ekranowaniu sterownika. Silnik przewijarki może iskrzyć i uC w warunkach rzeczywistych się rozłoży od tych zakłóceń.

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 25 gru 2006, 0:34

misci pisze:(...)Reset do programatora a Vcc do zasilania. (ups być może edytor to tylko tak namalował).(...)
:arrow: DarkJarek, narysuj to tak, by nie istniały żadne wątpliwości.

Awatar użytkownika
DarkJarek
-
Posty: 44
Rejestracja: 21 mar 2006, 15:48
Lokalizacja: ...
Kontakt:

Post autor: DarkJarek » 25 gru 2006, 2:24

gaweł pisze:Nie wiadomo jakie jest rozwiązanie czujnika, ale klasyczne rozwiązanie jest takie: rezystory podpolaryzowują wejścia przerwań do +5V, a czujnik (jako coś, co ma styki) łączy je do masy.
Oba czujniki będą optyczne to znaczy dioda i fotorezystor (takie coś jak w myszce). Jeden będzie sprawdzał czy jest jeszcze taśma a drugi będzie zliczał obroty rolki która będzie dociśnięta do taśmy.
gaweł pisze:Na zakończenia praktyczna uwaga:
Złącze RS232 proponowałbym rozwiązać inaczej (inaczej ponumerować piny). Masz:
Kod:

1 -> O O <- 2
3 -> O O <- 4
5 -> O O <- 6
7 -> O O <- 8
9 -> O O <- 10


Jak zrobisz:
Kod:

1 -> O O <- 6
2 -> O O <- 7
3 -> O O <- 8
4 -> O O <- 9
5 -> O O <- 10

To będzie wtedy pasowało do typowej smyczki (płaski kabelek zaciśnięty na złączu FC10 /te do GOLDPIN/ i z drugiej strony zaciśnięte na DB9), czyli kabelek kosztuje cię 1 minutę. W przeciwnym wypadku konieczne jest lutowanie (znacznie więcej czasu).
Hmmm, wygrzebałem skądś taki właśnie gotowy kabelek od starego kompa i sprawdzałem i tam jest numeracja pierwsza znaczy się taka jaką zrobiłem.
misci pisze:Reset do programatora a Vcc do zasilania. (ups być może edytor to tylko tak namalował).
Tak namalował :D.
misci pisze:Do matrycy 5x4 można podłaczyć aż 20 klwaiszy a nie tylko 9. Jeśli wystarczy tylko 9 to szkoda budować matrycę. Przyciski podpiąłbym do portów bezpośrednio szczególne, że jest jeszcze kilka wolnych końcówek - łatwiej to będzie oprogramować.
Matryca ma 20 przycisków. Jest gotowa wyciągnięta z starej kasy fiskalnej.
misci pisze:Na koniec należy się zastanowić po co ładować w to aż Megę 32.
atmega32 drogi nie jest a dużo portów ma i przynajmniej się czegoś nauczę. Mam zamiar zaprogramować w nim parę ciekawych funkcji :D. Tak apropo bo ja programistą tak w ogóle jestem. A że układ sam się nie zrobi to trzeba się uczyć, kombinować, pytać na forum :).

Wielkie dzięki za zainteresowanie.

Trochę poprawiona wersja: http://darkjarek.com/p2.pdf .

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 27 gru 2006, 0:13

DarkJarek pisze:Oba czujniki będą optyczne to znaczy dioda i fotorezystor (takie coś jak w myszce). Jeden będzie sprawdzał czy jest jeszcze taśma a drugi będzie zliczał obroty rolki która będzie dociśnięta do taśmy.
Nie jest istotne do czego będziesz tego używał, istotne jest w jaki sposób. Rozważmy:
musisz zdefiniować PD2 i PD3 jako wejścia. Masz dwa wyjścia: z podpolaryzowaniem wejścia do jedynki lub bez. W pierwszym przypadku masz w stanie pasywnym (gdy CZ1 jest otwarte, bez względu na sposób łączenia: stykowo lub elektronicznie) stan logiczny jeden. Zwarcie styków również da stan 1 :arrow: nie rozróżnisz stanów. W drugim przypadku, "wiszące w powietrzu" wejście ma stan nieokreślony i stanie się generatorem fałszywych sygnałów.
DarkJarek pisze: Hmmm, wygrzebałem skądś taki właśnie gotowy kabelek od starego kompa i sprawdzałem i tam jest numeracja pierwsza znaczy się taka jaką zrobiłem.
Zgoda. W PC-tach były stosowane dwa rozwiązania w sposobie numeracji pinów w złączach GOLDPIN dla "smyczek". Te, o których piszesz są bardzo stare. Skoro jednak masz już kabelek, to sprawa jest już nieaktualna, chyba, że chcesz wiedzieć na przyszłość, to proponują praktyczne wykonanie, różnicę powienieneś zauważyć sam.

DarkJarek pisze:Trochę poprawiona wersja: http://darkjarek.com/p2.pdf .
Tylko trochę, bo nie uwzględniłeś wszystkich uwag.

ODPOWIEDZ