Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Atmega8]LCD+PCF8583+24c02

alfam17 07 Jan 2010 22:31 2518 14
Altium Designer Computer Controls
  • #1
    alfam17
    Level 19  
    Bardzo bym prosił doświadczonych użytkowników o sprawdzenie poprawności mojego schematu.
    Na schemacie znajduje się Atmega8 oraz podłączony układ PCF8583 oraz na tej samej szynie pamięć 24c02
    Do portu B podłączyłem LCD
    Proszę o sugestie co ewentualnie ulepszyć w tym schemacie.

    Poszukuję także:
    1) Sposobu na podtrzymanie bateryjne układu PCF
    2) Sposobu na odczyt temperatury za pomocą termopary.

    Zaznaczam że jestem początkującym w projektowaniu tego typu ukłądów dlatego proszę wszystkich o wyrozumiałość i życzliwą pomoc.

    Układ mam zamiar oprogramować w Bascomie bo jest chyba łatwy do nauczenia się
  • Altium Designer Computer Controls
  • #2
    mirekk36
    Level 42  
    Szyna I2C ok - chociaż ja bym dał rezystorki 4,7K albo nawet 5,6K

    podłączenie LCD - ZONK - bo chyba się pomyliłeś - jeśli już któryś z sygnałów sterujących na stałe podłącza się do GND to pin R/W wyświetlacza a nie pin E - tak jak to zrobiłeś u siebie na schemacie.

    zasilanie bateryjne do PCF'a jest banalne - bierzesz dwie diody żeby odseparować bateryję powiedzmy 3V od napięcia zasilania VCC a połączone katody tych 2 diod dajesz na nogę VCC układu PCF. Czyli jedna anoda do VCC a druga anoda do +3V Bateryjki. Diody najlepiej jakieś shottky o niskim spadku napięcia
  • #3
    marco47
    Level 41  
    Witam kolegów
    Kolego alfam17
    Staraj się na przyszłość rysować schematy z pewną dozą logiki .
    Zasilanie +5V rysuj do góry , a GND znacznikiem na dół , tak jak przy ATmega8 .
    Resztę wyjaśnił kolega mirekk36
  • Altium Designer Computer Controls
  • #4
    alfam17
    Level 19  
    Witam Panów
    Rozbudowałem troszkę swój układ z Atmegą.
    Dodałem:
    -sterowanie przekaźnikiem
    -podtrzymanie bateryjne dla PCF'a
    -układ MAX6675 (posłuży on do obsługi termopary), zrezygnowałem z wzmacniaczy operacyjnych na rzecz tego scalaka.

    oraz ogólne poprawki.

    Proszę oczywiście o kolejne podpowiedzi jeśli coś było by nie w porządku.
  • #5
    mirekk36
    Level 42  
    Zasilanie bateryjne dodałeś OK

    ale układ resetu do procka - to jakaś pomyłka genetyczna. Wywal ten konensator 10uF albo jak już to zamień go co najwyżej na 100nF

    ciekawi mnie dlaczego z takim uporem unikasz kondensatorów 100nF przy nogach zasilania każdego ze scalaków za to nie wiedzieć czemu dałeś kondensator 100nF pomiędzy kolektorem tranzystora sterującego przekaźnikiem a GND (on w zasadzie jest zbędny)

    a na marginesie to najbliżej przy nogach VCC oraz GND każdego scalaka warto dać parę kondensatorów, jeden tak jak wyżej mówiłem 100nF a drugi jakiś mały elektrolicik nawet kilka uF przy pamięci EEprom i PCF a przy procku 47uF

    Kolejna rzecz - kiedyś się strasznie przejedziesz jeśli będziesz pozostawiał wiszące nogi procka takie jak AGND czy AVCC. Toż to są nogi zasilanie i ZAWSZE ale to zawsze muszą być podłączone - każde nawet jeśli jest ich jeszcze więcej np w obudowie TQFP (ale nie chce mi się już strzępić języka dlaczego trzeba - sam się tym zainteresuj)

    Sam przycisk RESET , który sobie chcesz wyprowadzić - czy to całe urządzenie ma być jakąś płytką testową? czy ma gdzieś tam sobie pracować jak normalne urządzenie??? - jeśli tak? - to po choinkę ci ten przycisk ??? Układy tego typu tak się projektuje i tak się pisze programy żeby on nigdy nie był potrzebny

    I jeszcze jedno takie pytanie na koniec? po co ci ta zewnętrzna pamięć EEPROM???? (nie mówię, że nie może jej tam być - tylko czy świadomy jesteś tego że masz taką samą pamięć wbudowaną w procek i o wiele wygodniej się z niej korzysta ???? - może nie wiesz? dlatego o tym piszę

    Dodano po 5 [minuty]:

    aha - jeszcze jedno - nie wiedzieć po co - podłączyłeś pod zasilanie bateryjne także tę zewnętrzną pamięć EEPROM - to jest niestety bez sensu. Zasil ją normalnie z 5V jak już.
  • #6
    alfam17
    Level 19  
    Zasilanie bateryjne dodałeś OK
    mirekk36 wrote:

    ale układ resetu do procka - to jakaś pomyłka genetyczna. Wywal ten konensator 10uF albo jak już to zamień go co najwyżej na 100nF


    Czemu sądzisz że to pomyłka genetyczna. Akurat ten pomysł zaczerpnąłem z książki "Projektowanie układów mikroprocesorowych". Może akurat źle dobrałem wartość kondensatora ale już zmieniam go na 100nF

    mirekk36 wrote:

    ciekawi mnie dlaczego z takim uporem unikasz kondensatorów 100nF przy nogach zasilania każdego ze scalaków za to nie wiedzieć czemu dałeś kondensator 100nF pomiędzy kolektorem tranzystora sterującego przekaźnikiem a GND (on w zasadzie jest zbędny)

    To nie mój upór to raczej brak doświadczenia lub wiedzy. A co do tego kondensatora obok przekaźnika to już go usuwam.

    mirekk36 wrote:

    a na marginesie to najbliżej przy nogach VCC oraz GND każdego scalaka warto dać parę kondensatorów, jeden tak jak wyżej mówiłem 100nF a drugi jakiś mały elektrolicik nawet kilka uF przy pamięci EEprom i PCF a przy procku 47uF


    Kondensator daje się w szereg z zasilaniem czy łączy się nim zasilanie i masę bo akurat tego nie wiem

    mirekk36 wrote:

    Kolejna rzecz - kiedyś się strasznie przejedziesz jeśli będziesz pozostawiał wiszące nogi procka takie jak AGND czy AVCC. Toż to są nogi zasilanie i ZAWSZE ale to zawsze muszą być podłączone - każde nawet jeśli jest ich jeszcze więcej np w obudowie TQFP (ale nie chce mi się już strzępić języka dlaczego trzeba - sam się tym zainteresuj)


    AGND fakt wisiała w powietrzu i już podłączyłem ją do masy. Ale AVCC? Przecież jest podłączone.

    mirekk36 wrote:

    Sam przycisk RESET , który sobie chcesz wyprowadzić - czy to całe urządzenie ma być jakąś płytką testową? czy ma gdzieś tam sobie pracować jak normalne urządzenie??? - jeśli tak? - to po choinkę ci ten przycisk ??? Układy tego typu tak się projektuje i tak się pisze programy żeby on nigdy nie był potrzebny


    Układ ten jest narazie powiedzmy czymś w rodzaju płytki testowo szkoleniowej. W przypadku gdyby udało mi się to uruchomić i odpowiednio oprogramować to może i znajdzie on swoje zastosowanie w praktyce ale puki co uczę się;)

    mirekk36 wrote:

    I jeszcze jedno takie pytanie na koniec? po co ci ta zewnętrzna pamięć EEPROM???? (nie mówię, że nie może jej tam być - tylko czy świadomy jesteś tego że masz taką samą pamięć wbudowaną w procek i o wiele wygodniej się z niej korzysta ???? - może nie wiesz? dlatego o tym piszę

    Odpowiedź padła powyżej, poprostu chcę nauczyć się obsługiwać zewnętrzną pamięć pomimo czy będzie ona miała praktyczne zastosowanie w tym układzie czy nie.

    mirekk36 wrote:


    aha - jeszcze jedno - nie wiedzieć po co - podłączyłeś pod zasilanie bateryjne także tę zewnętrzną pamięć EEPROM - to jest niestety bez sensu. Zasil ją normalnie z 5V jak już.


    Tutaj akurat nie zauważyłem błędu ale już poprawiłem.

    Kolego mirekk36 bardzo dziękuję za tak dogłębne zainteresowanie tematem.
  • #7
    mirekk36
    Level 42  
    Kondensatory filtrujące (te pary o których pisałem zawsze daje się pomiędzy VCC i GND przy nogach scalaków. Oczywiście podpowiem , że np stabilizator napięcia 7805 to też scalak i takie same zasady obowiązują - tyle że na jego wejściu można dawać jeszcze większy elektrolicik

    jeśli to płytka testowa to oczywiście rozumiem zewn pamięć EEPROM i klawisz do resetu

    odnośnie pomyłki genetycznej - to nie chodzi o jakieś dobieranie kondensatora - tylko trzeba patrzeć na układ resetu jaki stosuje się do danej rodziny procków

    odnośnie wiszącego AGND - to widziałem że masz podłączone AVCC - no ale nie podłączenie w takim wypadku AGND może być bardzo upierdliwe jak nie szkodliwe dla procka, dlatego przy okazji zwróciłem na to uwagę bo niektórzy niefrasobliwie uważając, że skoro nie korzystają z przetwornika ADC w procku to nie muszą podłączać tam zasilania a potem mają ZONKa i dziwią się dlaczego coś tam im nie działa
  • #8
    alfam17
    Level 19  
    Dołożyłem wspomniane kondensatorki filtrujące o których mi radziłeś. Mam nadzieję że zrobiłem to dobrze jeśli nie to proszę o podpowiedź.

    Zrobiłem także gniazdo ISP do programowania w układzie.
  • #9
    mirekk36
    Level 42  
    alfam17 wrote:
    Dołożyłem wspomniane kondensatorki filtrujące o których mi radziłeś. Mam nadzieję że zrobiłem to dobrze jeśli nie to proszę o podpowiedź.

    Zrobiłem także gniazdo ISP do programowania w układzie.


    ale nowej wersji schematu nie widać ;)
  • #10
    alfam17
    Level 19  
    Już powinna być nowa wersja schematu w załączniku.
    Pozdrawiam
  • #11
    atom1477
    Level 43  
    Po co Ci dioda D1? Wystarczy D3.
    Kondensator C1 to ma być trymer 33p. Jeżeli wstawiasz tam kondensator stały to wstaw 22p.
    Pomiędzy linią SO układu MAX6675 a złączem JP2 i procesorem U1 wstaw rezystor 1k. Ewentualnie linię CS podciągnij rezystorem 10k do VCC żeby zdeaktywować linię SO w trakcie programowania.
  • #12
    mirekk36
    Level 42  
    Tak jak kolega wyżej powiedział - Dioda D1 do wywalenia ;)

    dobra też uwaga z trymerem 33pF chociaż ja zawsze daję stały kondek 22pF

    ale kolejna rzecz - wywaliłeś kondensator na kolektorze tranzystora i co???? zwarłeś go do GND ??? ;) no sam zobacz, że to bez sensu - przecież będziesz miał cały czas przekaźnik włączony. Wywal więc to połączenie do GND od kolektora.

    Kolejna rzecz - linie D0..D3 wyświetlacza LCD - te nie używane mają wisieć w powietrzu - nigdy nie łącz ich do GND !!!

    Aha poza tym rezystor R5 na bazie tranzystora może być za duży - ja bym dał 2,2K

    no a reszta zaczyna już być ok ;)
  • #13
    atom1477
    Level 43  
    Jeżeli R5 to również i R4 będzie za duży.
  • #14
    alfam17
    Level 19  
    W jednym z przykładowych rozwiązań jakie znalazłem w sieci oba te rezystory miały po 10k więc to chyba powinno być sprawdzone rozwiązanie. Więc jakie wkońcu dać te rezystory bo teraz troszkę się zdezorientowałem.
  • #15
    mirekk36
    Level 42  
    alfam17 wrote:
    W jednym z przykładowych rozwiązań jakie znalazłem w sieci oba te rezystory miały po 10k więc to chyba powinno być sprawdzone rozwiązanie. Więc jakie wkońcu dać te rezystory bo teraz troszkę się zdezorientowałem.


    tak w ogóle to przywyknij, że te rezystory dobiera się na zasadzie obliczeń na podstawie wzmocnienia tranzystora oraz prądu bazy itd itd - a nie na zasadzie "że gdzieś znalazłem uniwersalne rozwiązanie w jakiejś książce" bo to niestety (nie obraź się) ale bzdura nad bzdurami takie podejście.

    Ja już mówiłem tak na oko dałbym rezystor i to tylko ten jeden R5 o wartości 2,2K i to wsio.

    Dodano po 1 [minuty]:

    No a poza tym to teraz schemaci wygląda "cacuni" ;)

    Dodano po 4 [minuty]:

    aha - jeszcze jedno - tzn to taka sugestia - bo wielu ludzi nie podłącza wyjścia INT układu PCF tzn nie wykorzystuje go - i robi wielki błąd ;) tzn nie żeby to było konieczne.

    Ale .... dzięki temu że ten sygnał podasz z kolei na jakieś wejście INT procesora - to potem możesz ładnie synchronizować za pomocą jednej prostej flagi w przerwaniu - odczyt danych z tego układu - tzn godziny daty itp, żeby wszystko się ładnie wyświetlało - a nie robić jakieś sztuczne kozie opóźnienia w pętli głównej np co 800-900ms i go tak odczytywać .

    No ale jak mówię - to już wg uznania a nie żeby to był błąd ;)