Prośba o sprawdzenie schematu
Prośba o sprawdzenie schematu
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
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
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?
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?
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
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.
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
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.
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.
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.
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.
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.
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.

Z prawa ohma?dondu pisze:Ja natomiast mam pytanie, jak obliczyłeś wartość rezystorów R14-R20?
Tu też wychodzi, że powinny mieć 100ohm http://kalkulator.majsterkowicza.pl/obl ... tor_do_LED
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
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
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ć.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.
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:
Gdy już policzysz, to sam wpadniesz dlaczego Twój projekt nie spełni Twoich wymagań.
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:
Zrób obliczenia i przedstaw.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.
Gdy już policzysz, to sam wpadniesz dlaczego Twój projekt nie spełni Twoich wymagań.
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?Dlaczego miały by być wszystkie na raz włączone?
No ale obliczenia dla jednej diody, jeśli chcemy uzyskać prąd 20mA, to: (5-2,2)V / 0,02A = 140om