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.

ATmega32 i zwilokrotnienie I/O

demoh 10 Wrz 2007 22:47 2141 14
  • #1 10 Wrz 2007 22:47
    demoh
    Poziom 19  

    Elementy odpowiedzialne za zwiekszanie lini wejscia/wyjscia to multipleksery? Dobrze wyczytalem i zrozumialem?

    Wiem ze sa troche zakrecone bo jest duzo typow.

    Chcial bym zwiekszyc ilosc wejsci I/O, 8 dodatkowych linii wejscia i 8 dodatkowych linii wyjscia czesci cyfrowej. W jakims temacie widzialem nawet nawe ukladu ale nie moge go od godziny znalec :/ nie pamietam nawet tytulu :(

    Chcial bym tez do jednego ADC podlaczyc dwa termistory gdzie bym je miedzy soba przelaczal.


    Bym byl wdzieczny za jakies nazwy lub rodziny tych elementow bo jestem zielony w tym :/ a niechcial bym zrobic jakiejs glupoty :(

    Z gorzy dziekuje za odpowiedzi!

    0 14
  • #2 10 Wrz 2007 23:24
    Warhard
    Poziom 12  

    Witam kolego.

    Ciebie chyba interesuje układ PCF8574 - z szyny i2c na szyne 8bit wte i wewte :)

    Philips posiada całą gamę ciekawych układów opartych na szynie i2c
    Szukać ogólnie układów PCF

    pozdrawiam

    0
  • #3 10 Wrz 2007 23:34
    markosik20
    Poziom 33  

    Polecam PCF8574 na I2C. Jest to 8bitowy port I/O lub na wejście dać np: 74HCT251 a na wyście 74HCT259, no oczywiście do tego potrzebny odpowiedni program i dodatkowo potrzebujesz 6pinów żeby obsłużyć te dwa układy.
    A tak nawiasem co masz podłączone do Atmegi32 że Ci pinów zabrakło??

    0
  • #4 11 Wrz 2007 00:53
    owurac
    Poziom 15  

    Zamiast pcf'ów na i2c mogę zaproponować ds2408 1-Wire 8-Channel Addressable Switch. Jest to 8 bitowy port i/o na magistralę 1-wire. Wykorzystujesz więc tylko jeden pin uC, a możesz tego podłączyć ile tylko chcesz.

    0
  • #5 11 Wrz 2007 08:58
    Ch.M.
    Poziom 27  

    Witaj
    Po pierwsze dlaczego termistory? zakres? cena?
    Swój problem możesz rozwiązać stosując ADC na szynie i2c- zabierasz 2 wyprowadzenia procka a zyskujesz duzo wiecej I/O.
    Termistor to na prawde niezbyt elegancki i trudny pomiar temperatury, a dodatkowo niedokładny.
    Właśnie rozpracowałem ta magistralę po sporych perypetiach i juz mi się zaczyna podobać :)

    Prosisz o nazwy:
    PCF8574P
    UKŁAD SCALONY PCF8574P PORT I/O I2C
    Ekspander magistrali I2C
    Cena brutto
    6.00 PLN (AVT)

    MCP9800
    2-Wire High-Accuracy Temperature Sensor
    • Temperature-to-Digital Converter
    • Accuracy with 12-bit Resolution:
    - ±0.5°C (typ.) at +25°C
    - ±1°C (max.) from -10°C to +85°C
    - ±2°C (max.) from -10°C to +125°C
    - ±3°C (max.) from -55°C to +125°C
    • User-selectable Resolution: 9 – 12 bit
    • Operating Voltage Range: 2.7V to 5.5V



    Pozdrawiam

    0
  • #6 11 Wrz 2007 10:03
    pgp
    Poziom 19  

    Opisz dokładnie swój układ - co ma robić i jak masz wszystko popodpinane. Zawsze można dac jakies bufory z chip selectami.

    0
  • #7 11 Wrz 2007 11:29
    220048
    Użytkownik usunął konto  
  • #8 11 Wrz 2007 15:07
    demoh
    Poziom 19  

    Chce miec 2 termometry a najlepiej trzy do pomiaru temperatury na radiatorach od mostka H i stabilizatorow napiecia od tego mostka i stabilizatorow dla czesci logicznej.

    Zabraknie mi poprostu pare pinow w tej ATmega32 a ona mi najlepiej pasuje :) bo nie ma az tyle nozek do lutowania jak wieksze modele a chce ja wykozystac w wersji smd.

    Pinami chce wlaczac czujnik podczerwieni i wylaczac. Potrzebne sa dwa piny na pare by moc wlaczac i pobierac stan logiczny. Mozna zrobic by zawsze byly wlaczone ale beda za duze zaklocenia od innych par czujnikow i w dodatku chce zminimalizowac pobor pradu.

    Czujnikow IR ma byc 16 par czyli 32 piny.

    Maja to byc czujniki odleglosci typu jest cos lub nie ma niczego oraz czujniki czarnej linii. Chce zeby pojazd nie mail rozroznialnego tylu i przodu :)

    Chyba juz wiecie o co mi chodzi :) Moj wymog to to by szybko dzialalo i potrzebowalo malo nozek :)


    Dziekuje za odpowiedzi :)

    0
  • #9 11 Wrz 2007 17:52
    220048
    Użytkownik usunął konto  
  • #10 11 Wrz 2007 21:43
    demoh
    Poziom 19  

    Czytam PDF od PCF8574 i natrafilem na 2 rzeczy:

    DC output current 25mA << max obciazenie na nozke?

    Supply current 100mA << max obciazenie ukladu?

    Bo 100mA to jakos duzo jak na zwykly pobor :/ ale jak to max to jest ok.
    I nie potrafie rozszyfrowac skrotu DC :(

    0
  • #11 11 Wrz 2007 21:57
    Jdsoul
    Poziom 23  

    Jak zrozumiałem dopuszczasz tryb multipleksowy analizy czujników, czyli omiatanie po kolei :) wiec nic nie stoi na przeszkodzie, żeby wykorzystac dwa multipleksery 4051 analiza 16 czujników zajmie ci w sumie 8 linii procesora. BCD, CS1 ,CS2, OUT1 i OUT2

    Zaimplementuj licznik BCD i możesz przemiatać najpierw pierwszy potem drugi multiplekser, multipleksery wybierasz CS-ami , a analizujesz wyjścia zgodnie ze stanem licznika. Dość proste w działaniu i oszczędza energię baterii, prawie radar podczerwieniowy i mało angażuje procesor, no chyba że będzie działał w sposób ciągły.

    Co do pomiaru temperatury to Atmega ma kilka przetworników AC, więc zamiast termistora zastosuj złącze kiepskiego tranzystora p-n w kierunku zaporowym lub jakiś termometr temperatura-napięcie z typoszeregu LM, znów duża oszczędność energii w baterii.

    Podsumowując masz procesor Atmege32 , masz do "przylutowania dwa scalaki CMOS 4051 i masz "klasyczny" termometr półprzewodnikowy.

    Jak mniemam robisz coś w rodzaju robota więc każdy WAT energi w baterii akumulatorów, jest na wagę złota i dobrze byłoby stosować elementy energooszczedne i możliwie bezawaryjne, dodatkowo możesz "usypiać" procesorek.

    Dodano po 6 [minuty]:

    Do pawelwiniarski0

    Co do dążenia do minimalizacji. To rzeczywiście upakowuje się coraz więcej ukłądów w jednym chipie , ale to nie zawsze sprzyja lepszej jakości. Patrz jak skomplikowane jest zasilanie części analogowej przetwornika analogowo-cyfrowego wbudowanego w uprocesor . Właściwie uzyskanie pełnej rozdzielczości jest możliwe tylko przy potraktowaniu tej części jako odrębnego układu dodaniu filtrów itd. itd.

    Czy nie byłoby jednak łatwiej poprostu odsunąć część analogową od części cyfrowej :) :) :) nawet ocipinkę dalej niż w jednym chipie :) :) :)

    0
  • #12 12 Wrz 2007 09:30
    PiotrPitucha
    Poziom 33  

    Witam
    Trochę przesadzasz z tymi liniami, do 16 czujek potrzebujesz 4 lini do sterowania i 4 lini do odbioru sygnału, np. 74154 do sterowania, w drugą stronę musisz poszukać bo mi nic do głowy nie wpada :) , a co do przepinania termistorów to jestem sceptyczny, nie ma kluczy o zerowej rezystancji, najbliższe ideały byłyby kontaktrony, ale to się kłóci z Twoim założenim zmniejszania poboru prądu, jeśli już miałbyś przepinać to zrób kilka gałęzi termistor + rezystor lub źródło prądowe i przepinaj mierzone napięcie, ale jak uwolnisz się z pomysłu bezpośredniego strowania czujek IR to i tak zostaną Ci wolne wejścia ADC
    Piotr

    0
  • #13 12 Wrz 2007 16:43
    demoh
    Poziom 19  

    W 74HC4051 moze byc tylko zalczony jeden pin naraz czy jak to jest zrobione?

    I napotkalem maly problem :/ Bo jak wejscie ENABLE jest zalaczone na stan niski to wejscie 0 przy We1 = 0, We2 = 0, We3 = 0.

    Ale chyba to juz nie bedzie wikszym problem, bardziej mi chodzi jak sie steruje ? Mozna niezaleznie wlaczac i wylaczac bo za Chiny Ludowe nie czaje :/

    Atmega jak startuje to ma wszystkie piny ustawione jako wejscia bez podciagania do Vcc. Chcial bym by muliplekser przy takich stanach na pinach mikroukladu mial wszystkie wyprowadzenia w stanie niskim by mi nie wysadzilo stabilizatora. Dlatego chce wlaczac pokoleji czujniki :)

    Dziekuje za odpowiedzi :)

    0
  • #14 12 Wrz 2007 17:37
    Jdsoul
    Poziom 23  

    Ta zabawka jest niczym innym jak przeźroczystym multiplekserem[przełącznikem] :) tzn. przełącza wejście/wyjście Y na jedno z 8 Wyjść / Wejść, pozostałe są nie związane z wyjściem do czasu przełączenia - izolacja. co do ich stanu to zależy od INH (bodajrze to ty masz schemat)

    Sterowanie wykonujesz kodami w systemie BCD na wejścia ABCD układu 4051. TZn.
    jeśli podasz 001 na CBA to przyłączasz wejście nr 1 z wyjściem Y i taki stan jaki podasz na wejscie taki masz na wyjściu 1, oczywiście dwukierunkowo. co do pozostałych wyjść to masz zera lub jedynki twój wybór pullupy.

    Potem bierzesz Atmegę pół portu np. A i liczysz 0,1,2,3,4,5,6,7 i znów od 0 a z tego liczenia wychodzą liczby 001, 010, 011, 100, 101,110,111, co się objawia stanami na połówce portu przyłączonego do wejść CBA 4051.

    Jak doliczysz do 7 to kasujesz i znów liczysz do 7. W tym czasie ustwiasz stany na nadajnikach podczerwieni.

    W drugą stronę wykorzystujesz 4051 jako 8 wejść przełączalnych na 1 wyjście i możesz korzystać z tej samej magistrali CBA, ale zabierasz jeszcze pin dla podłączenia CS lub EA (nie pamiętam :) )

    i tak na raz masz włączony jeden nadajnik i jeden odbiornik :) jak odbiornik odbierze wystarczajacą ilość podczerwieni od przeszkody to poda stan wysoki jak za małą to niski masz dwuwymiarową promieniową analizę otoczenia :) [kąt odbioru zależy od zastosowanego fototranzystora i okładu optyki]

    Pamiętaj na raz działa tylko jedna ta sama para więc nie powinno być zakłóceń od innych nadajników, a omiatanie warto zrobić możliwie szybkie, tyle tylko czasu na jeden tor, ile potrzebujesz na pewne zadziałanie czujnika podczerwieni :) oczywiście podaje rozważania teoretyczne, warto to zbadać doświadczalnie.

    Co ciekawe tor przełączający przepuści również sygnał modulowany więc możesz się pokusić o pomiar dopplerowski :)

    Fajne jest to że masz jedno wejście do próbk
    owania - ta sama procedura i osiem wejść do zaanalizowania.

    Jak rozwiąrzesz czujnik to twoja sprawa :)

    Dajesz na obsługę każdego czujnika odpowiednią ramkę czasową, a jak stwierdzisz że masz jeszcze miejsce to możesz zostawić wolne ramki na zabawę atmegi samą sobą :)

    Dodano po 2 [minuty]:

    Jak 4051 dostanie 7 czyli 111 to poprostu włączy ci wejście nr 8 i masz włączoną jedną parę nadajnik i odbiornik na początku, więc stabilizator będzie bezpieczny :).

    0
  • #15 12 Wrz 2007 20:43
    demoh
    Poziom 19  

    Dzieki za pomoc :)

    Troche te zakrecona jest obsluga multipleksera :P Ale z czasem sie przyzwyczaje bo tak chlodnym okiem to trudne nie jest lecz takie niestandardowe jak na moj rozum lecz czesto wykorzystywane :)

    Chyba sie pokusze o zmiane ATmega32 na ATmega128 i bede miec 32 porty :)

    Chce czujnik rozwiazac tak:
    -Wlaczam nadawcza IR kiedy chce, jedna noga dla niej
    -Fototranzystor na 940nm jest caly czas wlaczony i wpiety do pinu, druga noga

    A pomiar chce rozwiazac tak:
    -Przy wylaczonej diodzie nadawczej sprawdzam stan na fototranzystorze czy nie ma jakis zaklocen ktore wywoluja stan wysoki
    -Jesli nie ma zaklocen to wlaczamy diode nadawcza IR

    0 - nic nie ma
    1 - stan niekreslony, zaklocenia, uznajemy ze cos tam moze byc
    2 - stan wysoki na wejsciu z czujnika, cos jest przed nami


    Ile taki fototranzystor zjada pradu? Pewnie mniej niz 1mA ? Ale to musze chyba sprawdzic dla konkretnego modelu. Fototranzystor chce podlaczyc przez wzmacniacz operacyjny ale ile on bedzie pobierac pradu?

    Wlasnie ide szukac tych 2 informacji ale jak by ktos wiedzial juz teraz to prosze o mala pomoc :)

    0