Obsługa głośniczka i wyświetlacza 7seg poprzez 4543

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
bsw
Użytkownik
Posty: 100
Rejestracja: 14 kwie 2008, 13:13
Lokalizacja: Małopolska
Kontakt:

Obsługa głośniczka i wyświetlacza 7seg poprzez 4543

Post autor: bsw » 19 maja 2008, 14:51

Na wstępie chciałbym przeprosić za mieszanie dwóch tematów w jednym.
Dopiero zaczynam przygodę (mam nadzieję :-)) z mikrokontrolerami a z elektroniką jako taką się przepraszam :-).
Zaprojektowałem sam kompletny układ (termometr na DS18B20) ale zanim wytrawię płytkę chciałbym się dowiedzieć czy nie popełeniłem jakichś błędów. Głównie wątpliwości dotyczą sterowania wyświetlaczami 7segWA oraz głośniczkiem (mały głośniczek dynamiczny z zabawki - ma pracować jako buzzer alarmowy). Zamieszczam mój schemat.

Proszę o konstruktywne opinie.
Załączniki
test.JPG

Awatar użytkownika
grysek67
Użytkownik
Posty: 315
Rejestracja: 27 cze 2007, 6:34
Lokalizacja: Limanowa
Kontakt:

Post autor: grysek67 » 19 maja 2008, 15:29

Najpierw napisz w jakim języku piszesz program i zamieść kod na forum :wink:

Awatar użytkownika
bsw
Użytkownik
Posty: 100
Rejestracja: 14 kwie 2008, 13:13
Lokalizacja: Małopolska
Kontakt:

Post autor: bsw » 19 maja 2008, 15:39

Programu jeszcze nie ma - będzie w AVR-GCC.

Jak napisałem to moje początki - ten układ to taka moja ośla łączka - pytanie czy będzie działać (czy nie ma błędów formalnych) abstrachując od wsadu.

Awatar użytkownika
Krystian1989
-
Posty: 47
Rejestracja: 06 kwie 2007, 8:56
Lokalizacja: TBG
Kontakt:

Post autor: Krystian1989 » 19 maja 2008, 16:49

Mógłbyś użyć wyświetlania multipleksowego wyświetlaczy led , w ten sposób zwiększysz sobie ilość dostępnych pinów I/O. Tak nawiasem mówiąc to nie wiem czy ci wystarczy pamięci w procku, bo sam robiłem termometr na DS18b20 tylko , że w BASCOM-ie i nie starczyło mi pamięci.

Awatar użytkownika
bsw
Użytkownik
Posty: 100
Rejestracja: 14 kwie 2008, 13:13
Lokalizacja: Małopolska
Kontakt:

Post autor: bsw » 19 maja 2008, 17:08

Multipleksowania nie będzie z 3 powodów:

1. jak wyczytałem są problemy z jednoczesnym czytaniem 1wire i multipleksowaniem,
2. wyświetlacz (podwójny) mam z demontażu i ma wspólną anodę dla obu sekcji (sic!),
3. pinów mam na styk - więc nie ma potrzeby modzić.
Myślałem o rezygnacji z 4543 ale wtedy bym nie oszczędził ale zużył więcej (7+2)>(4+4) :-)

Zaskoczyłeś mnie z tą wielkością pamięci - muszę to sprawdzić... :-(

ZbeeGin

Post autor: ZbeeGin » 19 maja 2008, 18:36

Krystian1989 pisze:że w BASCOM-ie i nie starczyło mi pamięci.
bsw pisze:Zaskoczyłeś mnie z tą wielkością pamięci - muszę to sprawdzić...
Niestety BASCOM przy wykorzystaniu liczb zmiennoprzecinkowych nie jest zbyt oszczędny przy tworzeniu kodu. Stosowanie takich typów liczb powinno być ostatecznością w programach BASCOMowych.

Awatar użytkownika
RcTomek
Moderator
Posty: 243
Rejestracja: 27 wrz 2007, 21:15
Lokalizacja: Głogów / Wrocław

Post autor: RcTomek » 19 maja 2008, 18:38

Krystian1989 pisze:Tak nawiasem mówiąc to nie wiem czy ci wystarczy pamięci w procku, bo sam robiłem termometr na DS18b20 tylko , że w BASCOM-ie i nie starczyło mi pamięci.
Autor planuje napisać program w C, więc nie powinno być problemu z brakiem pamięci. Bascomowy program po odpowiedniej optymalizacji też raczej się zmieści.
1. jak wyczytałem są problemy z jednoczesnym czytaniem 1wire i multipleksowaniem,
To w przypadku korzystania z tych samych wyprowadzeń.

Awatar użytkownika
bsw
Użytkownik
Posty: 100
Rejestracja: 14 kwie 2008, 13:13
Lokalizacja: Małopolska
Kontakt:

Post autor: bsw » 19 maja 2008, 20:56

Autor planuje napisać program w C, więc nie powinno być problemu z brakiem pamięci.
Poza tym dokładność 1stC w zupełności mi wystarczy - nie potrzebuję emulacji liczb zmienno-przecinkowych.
1. jak wyczytałem są problemy z jednoczesnym czytaniem 1wire i multipleksowaniem,
To w przypadku korzystania z tych samych wyprowadzeń.
Chodziło raczej o to że w trakcie obsługi przez uC magistrali 1wire trzeba wstrzymać przerwania obsługujące multipleksowanie wyświetlacza przez co pojawiają się nieporządane efekty wizualne.

Ale odbiegliśmy od tematu - nikt nie kwestionuje mojego schematu, więc jak już uporam się z programem powinno działać ?

Awatar użytkownika
Wesker
-
Posty: 27
Rejestracja: 01 lut 2006, 10:33
Lokalizacja: Leżajsk

Post autor: Wesker » 22 maja 2008, 21:00

uwagi do schematu:
1. brak kondensatorów odsprzęgających
2. głośnik powinien być dołączony do wyjścia PWM (łatwa obsługa programowa) przez układ przeciwosobny i dalej kondensator 220u.

Awatar użytkownika
bsw
Użytkownik
Posty: 100
Rejestracja: 14 kwie 2008, 13:13
Lokalizacja: Małopolska
Kontakt:

Post autor: bsw » 24 maja 2008, 8:49

1. A gdzie te kondensatory ?
2. Jak ma wygladać taki układ przeciwsobny? Czy nie potrzeba wówczas 2 pinów?
Moj głośnik ma tylko piszczeć/brzęczeć - zastanawiałem się nad kondensatorem...

Awatar użytkownika
Wesker
-
Posty: 27
Rejestracja: 01 lut 2006, 10:33
Lokalizacja: Leżajsk

Post autor: Wesker » 24 maja 2008, 21:50

Żeby za dużo nie pisać zobacz ten przykład ede . Natomiast kondensatory 100nF montuje sie blisko układu scalonego i dołącza do wyprowazeń zasilania. Jeśli układ pracuje z zasilaczem dodaj jeszcze jeden kondensator 100uF(też na zasilanie) dla całego układu.

Awatar użytkownika
bsw
Użytkownik
Posty: 100
Rejestracja: 14 kwie 2008, 13:13
Lokalizacja: Małopolska
Kontakt:

Post autor: bsw » 29 maja 2008, 23:31

Dzięki za cenne wskazówki. Przeglądnąłem notę katalogową uC i przebudowałem nieco schemat - teraz już powinno być ok (mam nadzieję bo pcb w drodze :))
Załączniki
schemat2.JPG

Awatar użytkownika
Wesker
-
Posty: 27
Rejestracja: 01 lut 2006, 10:33
Lokalizacja: Leżajsk

Post autor: Wesker » 30 maja 2008, 7:30

Nie dołączyłeś się do wyjść PWM czyli PB4(OC1B), PB3(OC1A), PB2(OC0A) lub PD5(OC0B). I chociaż można generować odpowiedni sygnał z każdego wyjścia (np. w BASCOMIE jest polecenie SOUND) to jednak nie polecam takiego rozwiązania. Timery są po to, że raz skonfigurowane i uruchomione nie potrzebują nadzoru przez program (nie obciążają, nie zajmują procesora) dobrze byłoby je wykorzystać.

Pozdrawiam

Awatar użytkownika
bsw
Użytkownik
Posty: 100
Rejestracja: 14 kwie 2008, 13:13
Lokalizacja: Małopolska
Kontakt:

Post autor: bsw » 03 cze 2008, 22:28

Patrzyłem jak neptyk w tę notę :)
Ok - po raz 3ci przebudowałem schemat i płytkę. Tym razem zmieniłem funkcję kilku pinów ze względu na optymalizację ścieżek. Z istotnych zmian - przesunąlem magistralę 1wire na pin PB3. Mam nadzieję że teraz już wszystko ok.
Co do Timerów to bardzo cenna uwaga.
Załączniki
term.JPG

ODPOWIEDZ