Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Atmega8L] prośba o sprawdzenie układu i kilka podpowiedzi

bleble666 14 Lip 2012 01:10 1824 11
  • #1 14 Lip 2012 01:10
    bleble666
    Poziom 6  

    Witam wszystkich
    jest to mój pierwszy post więc proszę o wyrozumiałość i cierpliwość.

    Jak w temacie proszę o sprawdzenie poprawności wykonanego przeze mnie układu gdyż jest to moje pierwsze spotkanie z atmegą, liczę na sugestie, podpowiedzi inne lepsze rozwiązania.

    Opis:
    - układ jest rozszerzeniem innego termometru (w którym jest tylko 1 termistor), ma mieć docelowo 12 multiplekserów o małym Ron (~100ohm i mniejsze) ponieważ do każdego z wejść będzie podłączony termistor i chcę aby błąd odczytu był jak najmniejszy (100ohm to przesunięcie w odczycie temp o ok 10bitów w ADC). Układ ma co przerwanie INT przełączać kolejne wejście multipleksera 12x8=96 zdecydowałem się na NXP HEF4051BP.652 gdyż jest tani, zasilany od ok 3V do 15V, temp pracy -40 do 85 st C (układ musi pracować przy ujemnych temp) i jest dostępny.
    http://www.nxp.com/documents/data_sheet/HEF4051B.pdf

    - zasilanie bateryjne zupełnie nie wiem jak ugryźć, układ ma być oszczędny więc to co zamieściłem na schemacie odpada 7805, sporo szukałem wiem, że muszę zastosować baterie litowe ze względu na szeroki zakres temp. słyszałem też o przetwornicach zżerających mało prądu (proszę o jakieś przykłady). Myślałem o 2xbateriach litowych 2x3,7V=7,4V

    - programator chcę kupić tutaj http://allegro.pl/programator-usbasp-avr-atmel-isp-tasma-win7x64 czy to co zamieściłem w schemacie wystarczy?

    Moderowany przez Mirek Z.:

    https://www.elektroda.pl/rtvforum/faq.php - p.3.1.18.



    - układ oryginalny co pewien cykliczny czas podaje napięcie 3.5V termistor (dzielnik napięcia) wtedy potrzebuje aby atmega wykryła przerwanie, czy mój pomysł się sprawdzi?
    [Atmega8L] prośba o sprawdzenie układu i kilka podpowiedzi

    Z góry dziękuję za pomoc
    Pozdrawiam
    Mirek

    0 11
  • #2 14 Lip 2012 01:55
    LordBlick
    VIP Zasłużony dla elektroda

    - AREF luzem, nie ma prawa być podłączone do Vcc, grozi to uszkodzeniem wewnętrznego źródła napięciowego.
    - USBasp się sprawdzi jako programator.
    - Jeśli oszczędność energii, to nowszy układ ATmega88A.

    0
  • #3 14 Lip 2012 02:17
    McMonster
    Poziom 32  

    Jest tylko jeden kondensator 100 nF na trzy pary pinów zasilania, powinien być jeden na parę.

    0
  • #4 14 Lip 2012 09:19
    tmf
    Moderator Mikrokontrolery Projektowanie

    LordBlick napisał:
    - AREF luzem, nie ma prawa być podłączone do Vcc, grozi to uszkodzeniem wewnętrznego źródła napięciowego.


    To akurat nie jest prawdą, co jednak nie zmienia faktu, że nie ma sensu łączyć AREF z Vcc, przynajmniej w typowych sytuacjach nie ma to sensu.

    Dodano po 11 [minuty]:

    bleble666: tak jak już ci poradzono zmień MCU na nowszy, coś z serii picoPower. Są też AVRy z wbudowaną przetwornicą, co ułatwia zasilanie z baterii, niemniej nie są dostępne w "sklepie za rogiem". Skoro robisz zasilanie bateryjne na Li-Ion to dodaj jakąś przetwornicę koniecznie, żeby można było zdrenować baterię, jednocześnie przetwornica musi mieć zabezpieczenie przed nadmiernym rozładowaniem co grozi uszkodzeniem baterii. Polecam ci LTC1980, ma tą zaletę, że oprócz przetwornicy step up/down ma także układ ładowania Li-Ion z kontrolą przeładowania, co jest wygodne bo jakoś tą baterię trzeba ładować. Przetwornica ma niestety spory prąd spoczynkowy, ale po dodaniu układu odcinającego napięcie (znajdziesz takie przykłady w archiwum elektrody) nie jest to problemem. Z tej serii firma Linear Technology ma też prostsze przetwornice, które mogą cię zainteresować. Ekspertem w tej dziedzinie jest kolega nsvinc, skontaktuj się z nim na PW to ci pewnie doradzi.
    Kolejna sprawa - po co ci multiplekser analogowy? Przecież wszystkie wyjścia termistorów możesz połączyć razem do wspólnego ADC, a aktywny termistor wybierać poprzez podanie mu np. Vcc lub GND wprost z pinu IO MCU.

    0
  • #5 14 Lip 2012 10:52
    bleble666
    Poziom 6  

    Dziękuję wszystkim za cenne uwagi.

    Jeśli chodzi o kwestię zasilania to nie myślałem o akumulatorku li-ion tylko baterii litowej. Najlepiej było by mi zasilać układ multiplekserów z napięcia wyższego( im wyższe napięcie zasilania tym mniejsze Ron), a uC z niższego.

    Cytat:
    Kolejna sprawa - po co ci multiplekser analogowy? Przecież wszystkie wyjścia termistorów możesz połączyć razem do wspólnego ADC, a aktywny termistor wybierać poprzez podanie mu np. Vcc lub GND wprost z pinu IO MCU.


    Jest to układ zewnętrzny fabryczny posiadający duże możliwości obróbki danych dlatego chcę tylko zwiększyć liczbę termistorów.

    Poniższy obrazek to prezentuję:
    [Atmega8L] prośba o sprawdzenie układu i kilka podpowiedzi

    Jeszcze pytanie czy mogę korzystać z portów MISO, MOSI, SCK jeśli są wykorzystywane przez programator ?

    Pozdrawiam
    Mirek

    0
  • Pomocny post
    #7 14 Lip 2012 12:26
    tmf
    Moderator Mikrokontrolery Projektowanie

    bleble666 napisał:

    Cytat:
    Kolejna sprawa - po co ci multiplekser analogowy? Przecież wszystkie wyjścia termistorów możesz połączyć razem do wspólnego ADC, a aktywny termistor wybierać poprzez podanie mu np. Vcc lub GND wprost z pinu IO MCU.


    Jest to układ zewnętrzny fabryczny posiadający duże możliwości obróbki danych dlatego chcę tylko zwiększyć liczbę termistorów.


    Zobacz na twój schemat - jeśli połączysz termistory równolegle, tyle, że zamiast masy połączysz je z kolejnymi pinami IO to będziesz miał właśnie multiplekser - niski stan wyjścia IO włącza dany termistor i umożliwia pomiar jego oporu, stan HiZ go wyłącza.

    0
  • #8 14 Lip 2012 18:47
    bleble666
    Poziom 6  

    Dzięki tmf bardzo mi pomogłeś to rozwiązanie zdecydowanie eliminuje większość moich problemów, a czy nie będzie problemu jeśli połączę masę oryginalnego ukł. i mojego czy lepiej nie zwierać tylko czy to zadziała wtedy ? znajdę tylko uC który będzie miał min 96 I/O i po sprawie.

    Pozdrawiam
    Mirek

    0
  • Pomocny post
    #9 14 Lip 2012 19:26
    tmf
    Moderator Mikrokontrolery Projektowanie

    Masy muszą być połączone, inaczej to nie zadziała. Problemów z tym nie powinno być żadnych, chyba, że urządzenia są zasilane sieciowo bez izolacji galwanicznej. Co do IO - możesz zastosować proste ekspandery SPI, albo rejestry, np. xx573, xx574 itd.

    0
  • #10 14 Lip 2012 21:32
    bleble666
    Poziom 6  

    Jeszcze raz wielkie dzięki, a orientujesz się może jaka jest rezystancja takich układów przy stanie "0" w specyfikacji multiplekserów jest taka informacja tzn Ron a w expanderach nie widziałem ?

    Pozdrawiam
    Mirek

    0
  • #11 14 Lip 2012 22:10
    tmf
    Moderator Mikrokontrolery Projektowanie

    Zależy od rodziny jaką wybierzesz. W technologii MOS to może być nie więcej niż kilkadziesiąt omów. Pośrednio o tym wywnioskujesz na podstawie maksymalnego prądu wyjściowego pinu. Ale to bez znaczenia - do jednego z wyjść możesz podłączyć rezystor wzorcowy i na tej podstawie kalibrować. Rezystancje drenu poszczególnych buforów wyjściowych w ramach jednej struktury scalonej będą praktycznie identyczne. Z drugiej strony termistory powiedzmy mają tolerancję 5%, przy 10k daje ci to +/-500 omów, znacznie więcej niż opór bufora.

    0
  • #12 15 Lip 2012 23:58
    bleble666
    Poziom 6  

    Myślałem o expanderze MCP23S17 http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf ponieważ nie bardzo wiem jak wykorzystać układy xx573, xx574 w moim przypadku (brak możliwości sterowania poszczególnymi pinami) jest natomiast inny problem w expanderze, a mianowicie nie wiem jak pozbyć się wpływu pozostałych expanderów na tego który jest konkretnie wykorzystywany, myślałem o wciśnięciu im resetów, aby był stan wysokiej impedancji ale nie wiem ile będzie wtedy pobierał prądu. Nie będe im ustawiał stanów wysokich ponieważ układ fabryczny włącza 3.5V na dzielnik tylko przez 232ms (zmierzone oscyloskopem) a potem jest stan niski i może płynąć prąd w drugą strone.

    Pozdrawiam
    Mirek

    0