Prośba o sprawdzenie schematu

Jesli jesteś początkującym elektronikiem, to tu z pewnością znajdziesz pomoc. Miejsce dobre do dyskusji nad podstawami elektroniki w zakresie teorii i praktyki.
gawolx20
-
Posty: 11
Rejestracja: 25 gru 2013, 22:09
Lokalizacja: Poznań

Prośba o sprawdzenie schematu

Post autor: gawolx20 » 25 gru 2013, 22:26

Witam!

Mam do zrobienia stoper na płytce pcb. Zanim ją wytrawię i rozpocznę lutowanie wszystkich części prosiłbym o sprawdzenie poprawności schematu.
Stoper zrealizowany będzie na sześciu wyświetlaczach 7-segmentowanych z wykorzystaniem wyświetlania multipleksowanego. Kolejne cyfry nadawane będę przez uC z dużą częstotliwością, a wyświetlacze ze wspólną anodą załączane będą tranzystorem co ileś taktów, tak aby sprawiać wrażenie ciągłości. Stoper będzie miał dwa buttony: start/stop obsługiwany przerwaniem INT0 oraz reset wbudowany fabrycznie w uC.

Z góry dziękuję za wszystkie uwagi!

http://s22.postimg.org/igq59w773/schemat.jpg

Awatar użytkownika
Artyliusz
Użytkownik
Posty: 305
Rejestracja: 06 sty 2013, 14:10
Lokalizacja: Z Polski
Kontakt:

Post autor: Artyliusz » 25 gru 2013, 23:11

Jako pierwsze się rzuca kompletnie brak filtracji zasilania mikrokontrolera. Nawet żadnego malutkiego kondensatorka. To koniecznie do poprawy. Również możesz zapoznać się z pojęciem "minimalne podłączenie pinów".

Druga sprawa to, że jak chcesz mieć przycisk przy resecie to musisz dać kondensator, gdzieś 100nF, aby było to bardziej odporne na zakłócenia.

Te rezystory w obwodzie kolektora tranzystora są konieczne?

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 25 gru 2013, 23:13

Zacznijmy od przełożenia rezystorów z emiterów tranzystorów na poszczególne segmenty procka (piny 10-16). Takie ograniczenie prądu jest dużo przyjemniejsze zarówno dla uC jak i dla wyświetlaczy.

btw, jakie duże są to wyświetlacze? Przy typowych zegarkowych nie widzę problemu, ale przy jakiś większych/jaśniejszych trzeba pomyśleć nad lepszym sterowaniem.

Dalej, jako że piny reset i INT mają współpracować z ważnymi klawiszami funkcyjnymi, dodaj do nich rezystory podciągające 10k (jak reset) i kondensatory tłumiące zakłócenia.

Kolejne usprawnienia to możesz dodać jeszcze jeden albo dwa klawisze, INT1 masz wolne, możesz to wykorzystać do zapamiętywania czasów okrążeń.
Klawisz reset jest bardzo przydatny w razie zawieszenia się procka, ale ja zrobił bym stoper zapamiętujący wszystkie zebrane dane z możliwością przejrzenia np. 3 ostatnich i 3 najlepszych wyników. Bez resetowania uC po każdym pomiarze będzie to łatwiejsze :wink:

Kolejne dwa usprawnienia to postaraj się przepiąć segmenty na inne piny. Rozważ który timer ma liczyć czas, a drugi zatrudnij do generowania pisków sygnalizujących pracę układu. Najłatwiej będzie to zrobić gdy podłączysz piszczek do pinu OC1 (timer1) albo OC2 (timer2).
Rozważ również podłączenie kropek do uC, niech migają a nie świecą statycznie.

Jeśli piny interfejsu RS (RXD/TXD zostaną wolne po tych zmianach, to wyprowadź je poza płytkę. Pozwoli to w przyszłości dołożenie czegoś lub debugowanie układu. Dołożenie 2 goldpinów na płytce prawie nic nie kosztuje a później ciężko to zmienić.

No i na koniec najważniejsze, jakiej dokładności spodziewasz się po swoim zegarku?
Jeśli nie podłączysz kwarcu do układu, to jego wskazania mogą zmieniać się o kilka % w zależności od temperatury otoczenia i całą dokładność możesz wyrzucić do kosza.

gawolx20
-
Posty: 11
Rejestracja: 25 gru 2013, 22:09
Lokalizacja: Poznań

Post autor: gawolx20 » 26 gru 2013, 0:49

OK, poprawiłem następujące rzeczy:

1. Przełożyłem rezystory z kolektorów do pinów. (btw faktycznie ktoś mi już mówił, żebym tak robił ale nie rozumiem w sumie dlaczego?)
2. Dodałem podciągnięcie pod Vcc z rezystorem 10k pinu PD2.
3. Dodałem filtracje zasilania i buttonów. Przy zasilaniu uC dałem 100nF i 2,2uF tak jak Mirosław Kardaś przykazał.

Fajne sugestie ze zliczaniem okrążeń, miganiem kropkami i buzzerami ale pójdę jednak na najmniejszej linii oporu i zrobię stoper jednofunkcyjny, czyli start/stop i reset. Niedługo mam termin oddania, więc naprawdę nie chcę kombinować, ma działać w najprostszej wersji i tyle.

Co do pytań: wyświetlacze są małe, więc nie ma problemu. Zewnętrznego kwarcu nie będę dołączał, zegar wewnętrzny powinien starczyć, nie musi być super dokładnie.

http://s13.postimg.org/ej461ih1x/schemat.jpg teraz okej?

PS Będę to realizował na ATmega328p, tu dałem ATmega8 bo ma taką samą obudowę TQFP32, a z jakichś względów 328p nie ma w bibliotece eagle'a.

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 26 gru 2013, 12:34

Nie rezygnuj z zewnętrznego kwarcu. Domaluj na schemacie co trzeba, w płytkę wlutujesz podstawkę i ewentualnie dwa kondensatory.
Lepiej stwierdzić że 'układ działa dostatecznie dobrze na generatorze RC, nie potrzebuję kwarcu' niż 'przydał by się kwarc ale nie mam jak go dolutować'.

To samo z nieużywanymi pinami, kiedyś mogą się przydać, a przy układzie SMD nie da się dolutować pierwszego lepszego drucika do pinu.


Dobra, dość marudzenia.
Odnośnie schematu, to brakuje na nim jeszcze jakiejkolwiek złączki zasilania, baterii, czegokolwiek. Resztę błędów poprawiłeś i teraz schemat wygląda jak należy.

gawolx20
-
Posty: 11
Rejestracja: 25 gru 2013, 22:09
Lokalizacja: Poznań

Post autor: gawolx20 » 26 gru 2013, 15:11

ok, dzięki za pomoc :)

Awatar użytkownika
Artyliusz
Użytkownik
Posty: 305
Rejestracja: 06 sty 2013, 14:10
Lokalizacja: Z Polski
Kontakt:

Post autor: Artyliusz » 26 gru 2013, 16:47

Skoro już tak dokładasz elementów to przydałby się jeszcze rezystor (gdzieś 330 Ohm) szeregowo z przyciskiem reset, aby ograniczyć prąd, bo zważ uwagę, że resetując masz kondensator równolegle, którego będziesz rozładowywał. A jak już stajesz się bardziej przezorny za sprawą kolegi Ertew, to mógłbyś też wyeliminować takie niechciane zakłócenia. Plus jeszcze dioda zabezpieczająca, aby naprawdę nie uszkodzić mikrokontrolera. Ją możesz włączyć zaraz po pinie reset katodą do VCC.
:grin:

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 29 gru 2013, 20:11

To co napisał Artyliusz jest bardzo istotne, ponieważ pin Reset nie posiada diody zabezpieczającej. Atmel opisał to w dokumencie AVR042.

Ja natomiast mam pytanie, jak obliczyłeś wartość rezystorów R14-R20?

gawolx20
-
Posty: 11
Rejestracja: 25 gru 2013, 22:09
Lokalizacja: Poznań

Post autor: gawolx20 » 31 gru 2013, 12:41

dondu pisze:Ja natomiast mam pytanie, jak obliczyłeś wartość rezystorów R14-R20?
Z prawa ohma?

Tu też wychodzi, że powinny mieć 100ohm http://kalkulator.majsterkowicza.pl/obl ... tor_do_LED

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 31 gru 2013, 12:45

Jakie przyjąłeś parametry diody i jaki wyszedł Ci prąd pojedynczej diody?

gawolx20
-
Posty: 11
Rejestracja: 25 gru 2013, 22:09
Lokalizacja: Poznań

Post autor: gawolx20 » 01 sty 2014, 18:19

Za prąd diody przyjąłem 20mA, a napięcie przewodzenia zielonej diody 2,2V.

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 02 sty 2014, 7:42

Teraz policz, jaki średni prąd będzie płynął przez jedną diodę podczas multipleksowania tych 6-ciu wyświetlaczy i zastanów się, jak to wpłynie na jasność ich świecenia, którą zaobserwuje ludzkie oko.

R7 możesz zastąpić włączeniem wewnętrznego rezystora pull-up.

A propos C3 i S2 zapoznaj się z notą AVR042 Atmela lub przeczytaj: http://mikrokontrolery.blogspot.com/201 ... ncing.html

gawolx20
-
Posty: 11
Rejestracja: 25 gru 2013, 22:09
Lokalizacja: Poznań

Post autor: gawolx20 » 03 sty 2014, 3:00

dondu pisze:Teraz policz, jaki średni prąd będzie płynął przez jedną diodę podczas multipleksowania tych 6-ciu wyświetlaczy i zastanów się, jak to wpłynie na jasność ich świecenia, którą zaobserwuje ludzkie oko.
Jeśli wszystkie 6 tranzystorów będzie załączonych to prąd rozdzieli się na 6 gałęzi i może być zbyt mały, aby diody jasno świeciły, ale z drugiej strony gdy dam mniejszy rezystor, to przy załączonej np. jednej gałęzi prąd może być zbyt duży i dioda może się spalić.

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 03 sty 2014, 8:24

Odnoszę wrażenie, że nie wiesz co to jest multipleksowanie wyświetlaczy LED.

Dlaczego miały by być wszystkie na raz włączone?
Gdyby tak było, to co byłoby wyświetlone?

Wróćmy więc do tego co napisałem w poprzednim poście:
dondu pisze:Teraz policz, jaki średni prąd będzie płynął przez jedną diodę podczas multipleksowania tych 6-ciu wyświetlaczy i zastanów się, jak to wpłynie na jasność ich świecenia, którą zaobserwuje ludzkie oko.
Zrób obliczenia i przedstaw.
Gdy już policzysz, to sam wpadniesz dlaczego Twój projekt nie spełni Twoich wymagań.

gawolx20
-
Posty: 11
Rejestracja: 25 gru 2013, 22:09
Lokalizacja: Poznań

Post autor: gawolx20 » 03 sty 2014, 20:26

Dlaczego miały by być wszystkie na raz włączone?
Dlatego, że na wszystkich wyświetlaczach przez jakiś czas może być wyświetlana np. ta sama cyfra, więc wszystkie tranzystory będą w stanie przewodzenia w tym samym czasie?

No ale obliczenia dla jednej diody, jeśli chcemy uzyskać prąd 20mA, to: (5-2,2)V / 0,02A = 140om

ODPOWIEDZ