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.

wielokanałowy przetwornik A/C z 8051

marcin_op 04 Gru 2006 15:54 8673 66
  • #1 04 Gru 2006 15:54
    marcin_op
    Poziom 14  

    Witam

    Mam taki problem.
    Muszę wykonać TEORETYCZNIE projekt o następującej treści:

    Wielokanałowy przetwornik A/C komunikujący się z uP.
    Podać schemat układu oraz schemat blokowy programu. (RAM i ROM zewnętrzne)
    Ilość przetwornikó - 4
    czas rejestracji danych dla jednego przetwornika nie mniejszy niż 20sek.
    przetworniki 12 - bit
    Mikroprocesor 8051

    Tak naprawde jestem z tego zielony a muszę wykonać to na zaliczenie a nie wiem od czego zacząć. gdyby ktoś był pomocny to ja byłbym wdzięczny....

    0 29
  • #2 08 Gru 2006 15:25
    marcin_op
    Poziom 14  

    up

    nikt nie ma pomysłu :(

    0
  • #3 12 Gru 2006 18:08
    Łokasz
    Poziom 16  

    Witam. Mógłby Kolega napisać cos więcej co układ ma realizować? Rozumiem, że ma pobierać sygnały analogowe z przetworników i...co dalej? Pozdrawiam. Lukasz

    0
  • #4 12 Gru 2006 18:54
    WaldekPrzybyłek
    Poziom 14  

    Proponuję zacząć od przetwornika np: ADS7841 - z interfejsem szeregowy co chyba da się ładnie obsłużyć programowo , w miarę szybki i dokładny.
    Napisz coś więcej o tym projekcie.
    Pozdrawiam.

    0
  • #5 12 Gru 2006 18:56
    marcin_op
    Poziom 14  

    Hej

    Niestety ja nic więcej też nie wiem, dostałem kartke z tematem na której pisało tylko to co napisałem i nic wiecej... :(

    0
  • #6 12 Gru 2006 19:14
    crazy_phisic
    VIP Zasłużony dla elektroda

    Skoro kolega ma wykorzystać pamięć podłączoną do zewnętrznej magistrali adresowej i danych to aż się prosi o przetwornik z interfejsem równoległym ;). Może to być jeden przetwornik z selektorem wejść lub cztery pojedyncze przetworniki (chyba o tą wersję chodzi w projekcie).
    Aby nie było tak łatwo, kolego marcin_op musisz znaleźć przetwornik z interfejsem równoległym, 12 bitowy i najlepiej aby miał trój-stanowe wyjścia. Później porozmawiamy o połączeniu tego w całość ;)

    Pozdrawiam

    0
  • #7 12 Gru 2006 19:36
    WaldekPrzybyłek
    Poziom 14  

    W takim razie proponuję MAX162.
    Archiwizacja próbek : zakładając , że program nie potrzebuje RAM ( raczej nie możliwe) to podłączając 64k Ram (chyba max dla 8051) dzielimy przez 8 bajtów( 4 kanały po 2 bajty) wyjdzie 8k sampli na kanał. Dzieląc ilość sampli przez min. czas zapisu wyjdzie ok. 400 próbek na sekundę.
    Oczywiście jeśli się nie mylę.
    Co do podłączenia to zapewne znajdzie się chętny by pomóc.
    Pozdrawiam.

    0
  • #9 12 Gru 2006 22:10
    Dyrek
    Poziom 16  

    Witam
    Widzę że masz chyba zajęcia z Wiesiem "Smutnym" i nadal daje te same projekty na polibudzie :D. Najlepiej ustalic z nim na konsultacjach szczegóły projektu żeby potem nie było nieporozumień a i przy okazji może Cię zapamięta że się tematem "interesowałeś" :) Popytaj starszych roczników może miał już ktoś taki projekt (oczywiście mówię o pomocy w wyjaśnieniu a nie o plagiacie :p )

    0
  • #10 12 Gru 2006 23:23
    crazy_phisic
    VIP Zasłużony dla elektroda

    Propozycja kolegi WaldekPrzybyłek jest bardzo słuszna, MAX162 ma tą zaletę że przy rozdzielczości 12 bitów może przesłać informację standardową 8 bitową magistralą, Odpada zatem dodatkowy bufor sterujący.
    Jeśli mamy już przetwornik, kolejnym pytaniem jest rozmiar dołączonej zewnętrznej pamięci RAM i ROM. Logicznie przetworniki ADC zostaną umieszczone w przestrzeni adresowej na "samym końcu" rezerwując po dwa adresy dla każdego z przetworników. Reasumując w takiej konfiguracji mamy 8 adresów pod którymi będą dane z ADC.

    0
  • #11 13 Gru 2006 07:56
    marcin_op
    Poziom 14  

    Wydaje mi się żeby dać max pamieci zewnętrznej czyli:

    pamięć zewnętrzna ROM 64 kB
    pamięć zewnętrzna RAM 64 kB

    0
  • #12 13 Gru 2006 11:04
    marek_Łódź
    Poziom 36  

    WaldekPrzybyłek napisał:
    Archiwizacja próbek : zakładając , że program nie potrzebuje RAM ( raczej nie możliwe) to podłączając 64k Ram (chyba max dla 8051) dzielimy przez 8 bajtów( 4 kanały po 2 bajty) wyjdzie 8k sampli na kanał. Dzieląc ilość sampli przez min. czas zapisu wyjdzie ok. 400 próbek na sekundę.
    To chyba powinno być odwrotnie liczone. Najpierw trzeba założyć częstotliwość próbkowania i czas rejestracji i z tego wyliczyć wielkość pamięci. Do typowej '51 można bezproblemowo podłączyć znacznie większą pamięć (np kość 0,5MByte) wykorzystując kilka dodatkowych linii do jej stronnicowania. Pełny ROM do tego projektu jest zbędny (wystarczy z 8-16kB).
    W przypadku braku pamięci RAM można jeszcze kombinować z upychaniem danych w połówkach bajtu.

    crazy_phisic napisał:
    Logicznie przetworniki ADC zostaną umieszczone w przestrzeni adresowej na "samym końcu" rezerwując po dwa adresy dla każdego z przetworników. Reasumując w takiej konfiguracji mamy 8 adresów pod którymi będą dane z ADC.
    W przypadku MAX162 można tę kość alokować poza obszarem adresowym RAM, wysterowując stosowne linie CS (pamięci bądź przetwornika) z wolnych portów. Pozwoli to uniknąć stosowania dodatkowych elementów w układach adresujących kości.

    0
  • #13 13 Gru 2006 12:21
    Dyrek
    Poziom 16  

    Ok, poznałem troche tego gościa co zadał ten projekt bo sam kiedyś miałem z nim zajęcia więc trochę nakreślę sytuację:

    -pamięć: zapewne zechce żeby była to max wielkość dla ROM i RAM (czyli po 64k), nie ważne dla niego co będzie w niej ale taka ma być :)

    -ilość przetworników AC - wydaje mi się że chodziło mu o ilość kanałów i wystarczy jeden przetwornik 4-ro kanałowy (czasami tak formułuje zadanie że ciężko wywnioskować o co tak naprawde chodzi), ale trzeba to z nim ustalić.

    -czas pomiaru nie mniejszy niż 20s: tu zapewne chodzi mu już o stronę programową i pokazanie jak zrobić długie opuźnienia czasowe (niby banalne ale nie koniecznie dla początkujących a "Smutny" się czesto tego czepiał)

    Czasami też chce żeby urządzenia peryferyjne były podłączone w obszarze adresowym RAM ale wtedy trzeba zastosować mniejszą pamięć. Ale zastosowanie 64k ułatwia sprawę i pozostawia podłączenie przetwornika na pozostałych 2 wolnych portach w dowolny sposób.

    0
  • #14 13 Gru 2006 12:30
    crazy_phisic
    VIP Zasłużony dla elektroda

    marek_Łódź napisał:

    crazy_phisic napisał:
    Logicznie przetworniki ADC zostaną umieszczone w przestrzeni adresowej na "samym końcu" rezerwując po dwa adresy dla każdego z przetworników. Reasumując w takiej konfiguracji mamy 8 adresów pod którymi będą dane z ADC.
    W przypadku MAX162 można tę kość alokować poza obszarem adresowym RAM, wysterowując stosowne linie CS (pamięci bądź przetwornika) z wolnych portów. Pozwoli to uniknąć stosowania dodatkowych elementów w układach adresujących kości.

    Ależ oczywiście masz rację, ale ponieważ kolega marcin_op potrzebuje tego zagadnienia na projekt to lepiej nie uprzedzać dodatkowych pytań prowadzącego o stosowność takiego a nie innego rozwiązania. Łącząc cały układ w myśl zasad panujących w urządzeniach mikroprocesorowych alokujemy przestrzeń adresową dla przetworników i dodajemy prosty dekoder adresu sterujący przetwarzaniem (/CS & /RD). Powinna znaleźć się jeszcze obsługa linii zajętości ale to już taka mała nadgorliwość ;)

    0
  • #15 13 Gru 2006 14:06
    marek_Łódź
    Poziom 36  

    Dyrek napisał:
    -czas pomiaru nie mniejszy niż 20s: tu zapewne chodzi mu już o stronę programową i pokazanie jak zrobić długie opuźnienia czasowe (niby banalne ale nie koniecznie dla początkujących a "Smutny" się czesto tego czepiał)

    Czasami też chce żeby urządzenia peryferyjne były podłączone w obszarze adresowym RAM ale wtedy trzeba zastosować mniejszą pamięć. Ale zastosowanie 64k ułatwia sprawę i pozostawia podłączenie przetwornika na pozostałych 2 wolnych portach w dowolny sposób.
    Podłączenie na wolnym porcie upraszcza sprawę adresowania. Nadal nie rozumiem, co to znaczy czas pomiaru 20s? Próbkowanie co 20 s czy przez 20s???
    Jak szczegółowy ma być schemat blokowy?

    Proponuję zastosować przetwornik wielokanałowy - propozycja AD7862 4 wejścia z pełnym odczytem 12 bitów. Potrzebne będzie 12 linii danych, 3 sterujące (CS,RD,A0) i jedna kontrolna (BUSY).

    0
  • #16 13 Gru 2006 15:37
    marcin_op
    Poziom 14  

    Dzięki wielkie za każdą rade, ale:

    wszystko co jest w temacie musi być, nie wazne ze pamiec nie jest potrzebna zewnętrzna, porwadzący ją chce wiec musi byc.

    I zależy mi tylko na zaliczeniu tego, dlatego chciałbym aby to bylo zrobione jak najprościej, bez dodatkowych komplikacji i dodawania czegoś od siebie.

    Z góry wszystkim dziękuje...

    0
  • #17 15 Gru 2008 21:23
    mafiaboy
    Poziom 9  

    Jeżeli ktoś nadal interesuje się tym projektem, oznajmiam ze takowy posiadam. Zaliczony na 4,5. Kontakt gg 2776427

    0
  • #18 24 Mar 2010 23:29
    zbenek1
    Poziom 10  

    Witam,
    Mam ten sam problem. Jednak jest to inny temat. Mam do skonstruowania licznik energii elektrycznej sieci 3-fazowej. Do swojego projektu potrzebuję przetwornik a/c 6 kanałowy. Ilość próbek na okres około 40. Osobiście znalazłem ADS8558 ale tam jest przetwornik 16 bitowy 730 kS/s. Ma ktoś jakieś propozycje?

    0
  • #19 24 Mar 2010 23:55
    marek_Łódź
    Poziom 36  

    Jeśli nadal trzymasz się dokładności 0,5%, to niezależnie od tego, czy uznamy to za realne (a jest to raczej mało realne), przetwornik musi mieć chociaż z 12 bitów (16 to wypas). Ja osobiście wsadziłbym w taki układ przetwornik szeregowy na SPI (które szczęśliwie jeszcze masz wolne), przykładowo 8-kanałowy MCP3208 + referencja LM285. Stosunkowo proste i tanie rozwiązanie bez kombinowania z układami adresacji i sygnałami dostępów do pamięci (WR/RD).
    A tak na marginesie, to przy takiej dokładności próbkowanie powinno być chyba częstsze(no chyba, że uznamy, że mamy czyste, stabilne sinusoidy).

    0
  • #20 25 Mar 2010 00:05
    zbenek1
    Poziom 10  

    No tak ale tam jest 1,2,4,8 kanałów a ja potrzebuje konkretnie 6 kanałowy. Inaczej to nie przejdzie. A podłączyć go chcę pod port P1. Pod P0 i P2 mam już wyświetlacz LCD i pamięć RAM. Dokładność mierzonej energii do 0,5%. Czy podłączenie go jako układ peryferyjny będzie lepszym rozwiązaniem? Bo raczej tak nie sądze

    0
  • #21 25 Mar 2010 00:15
    marek_Łódź
    Poziom 36  

    Nie ma TECHNICZNYCH przeciwwskazań w zastosowaniu ośmiokanałowego. Jeśli koniecznie ma być 6 kanałów, to zastosuj 3 sztuki dwukanałowe (mogą być pędzone z tej samej referencji), tyle że wtedy masz dodatkowe dwa sygnały CS.

    Co do portu, to piszemy o tym samym. W porcie P1 masz interfejs SPI, na którym możesz podwiesić szeregowe przetworniki ADC (sygnały MISO, MOSI, SCK plus dodatkowo po jednym sygnale selekcji do każdej kości - jedna dla kości ośmiokanałowej lub 3 dla trzech kości dwukanałowych). Tak więc linii wystarcza. Pozostaje tylko zblokować te linie CS na czas programowania przez ISP, jeśli przewidujesz programowanie procesora w układzie). Da się to zrobić rezystorami podciągającymi linie CS do plusa.

    Dostępne przetworniki 6 wejściowe Analog Devices na I2C (możliwa emulacja programowa na liniach P1), ale mają zasilanie do 3,6V . Można też postrzelać do wróbla z armaty np LTC2351, ale to zdecydowana przesada, poza tym to też układ na 3V. Generalnie po przejrzeniu netu takich przetworników 6-chan jest kilka-kilkanaście, ale się słabo komponują w tym układzie. Trzeba by na spokojnie je wszystkie przejrzeć.

    Na stronie analoga masz szukanie parametryczne, zresztą google też coś oddają jak spytasz o ADC 6 inputs

    0
  • #22 25 Mar 2010 00:41
    zbenek1
    Poziom 10  

    Muszę o to zapytać prowadzącego...ale znając życie uprze się na tego 6-kanałowego. Gdyby to na niego padło to czy ten co znalazłem TI 8558 może być? Czy będzie jakiś problem z jego obsługą?

    Szukałem w TI w AD, MC po katalogach...od 12bitowych się zaczynają te 6 kanałowe. Ilość sampli też duża bo od xxxkS/s się zaczynają. Całe popołudnie szukam czegoś rozsądnego.

    Apropo kolegi widzę że interesujesz się miernictwem i automatyką...Może podpowiesz mi jeszcze jak zrealizować podłączenie się do sieci 3 fazowej tym przetwornikiem a/c. Myślałem tu nad przekładnikiem napięciowym dla każdej z faz. Ma on zamieniać 230 V na możliwe wejściowe napięcie dla ADC oraz przekładnik prądowy i jakiś układ który by zamieniał prąd na napięcie nie przesuwając fazy. W ten sposób miałbym dane do policzenia energii poprzez uprocesor.

    0
  • #23 25 Mar 2010 07:45
    marek_Łódź
    Poziom 36  

    Chodzi o ADS8558 ? Może być, chociaż jest przewymiarowany (cenowo pewnie też). Jeśli będziesz korzystał z interfejsu równoległego, może Ci zabraknąć pinów w procesorze.

    Co do obwodów pomiarowych to przy tej dokładności pewnie tylko przekładniki napięciowe i prądowe wysokiej klasy dokładności + wzmacniacze kalibrowane na potencjometrach wieloobrotowych.

    0
  • #24 25 Mar 2010 09:21
    zbenek1
    Poziom 10  

    Tak chodzi tutaj o ADS8558. Co do ceny to sztuka około 20 dolarów. Projekt który wykonuje jest teoretyczny. Układ ten ma 16 pinów(informacyjnych) więc nie ma problemu co do podłączenia pod procek. Dodatkowo kilka sterujących. Dziś go przedstawię prowadzącemu projekt zobaczymy co na to powie...meczy mnie jeszcze zagadka dokładnych przekładników...Mogą to być gotowe układy

    0
  • #25 25 Mar 2010 10:06
    marek_Łódź
    Poziom 36  

    Ja osobiście stosuję układy elektroniczne - w torach napięciowych wzmacniacze optoizolowane, w torach prądowych też, a przy większych prądach scalone czujniki z hallotronami, ale to zupełnie inna klasa dokładności (1..2 %), chociaż niewykluczone że można toto wykalibrować na wzmacniaczach wyjściowych (gorzej z nieliniowością). W skrajnym przypadku, jeśli tory są stabilne, można sobie wyobrazić kalibrację programową przez tablice, przy okazji z kompensacją nieliniowości. Przykładowe układy scalone do pomiarów z izolacją u mnie na stronie:
    http://www.magmaster.elektroda.eu/joomla/index.php/hardware/7-pomiary/5-cursense
    http://www.magmaster.elektroda.eu/joomla/index.php/hardware/9-interfejsy/8-analogopto

    Co do portów, to z twojego rysunku wynika, że niewiele pinów Ci zostało, dlatego pisałem o tym, że wygodniejszy może być transfer szeregowy via SPI, co sugerowany przez Ciebie przetwornik posiada, bo nawet przy pracy interfejsu przetwornika w trybie ośmiobitowym możesz potrzebować jeszcze ze 2-3-4(?) piny sterująco-kontrolne. Ze 4 piny można by wygospodarować z wyświetlacza, ale zdaje się pisałeś, że to też zakazane. Tak więc możliwości tego procesora w tym zestawie pomału się kończą.

    0
  • #26 25 Mar 2010 11:22
    zbenek1
    Poziom 10  

    Szczerze to już mam mętlik w głowie...3 tydzień szukam rozwiązania aby stworzyć schemat blokowy. Mam mieć LCD, RAM zew... do tego układ mierzący napięcie i prąd z 3fazówki. Ma to być tak wykonane alby 8051 mógł swobodnie to obsługiwać(wykrywać przesuniecie fazowe, obliczać moc)....tylko tyle a już 3 tydzień się z tym męczę

    0
  • #27 25 Mar 2010 11:41
    marek_Łódź
    Poziom 36  

    Ideowy? Do tego co narysowałeś dołączasz przez SPI Twój przetwornik i z grubsza masz zamknięty sam miernik (ew. jeszcze RAM). Co do ustrojstwa pomiarowego na przekładnikach to łączysz 3 napięciowe, trzy prądowe (+oporniki na wyjściu) i dajesz jakieś proste wzmacniacze na wyjścia przekładników zgromadzone na wspólnej masie analogowej (przy tym przetworniku ADC wzmacniacze mogą się okazać zbędne). Dalej zostaje kwestia dokładności (nieliniowości, przesunięcia fazowe itp), ale to temat rzeka. Jak dobierzesz elementy najlepsze z możliwych (temat teoretyczny), to może wybronisz te 0,5%.

    A, no i kwestia algorytmu, ale mając "zmontowany" układ, powinno pójść z górki (masz napisać program?)

    0
  • #28 25 Mar 2010 12:03
    zbenek1
    Poziom 10  

    Ogólnie to męczę się nad skonstruowaniem schematu aby to poprawnie działało. Na początku miałem układ działający w oparciu o ad7755 z niego sygnał na procek 8051. Podczas przedstawienia mojej koncepcji prowadzący powiedział, że jest to do kitu ze względu na niskie wykorzystanie procesora. Kazał mi zastosować przetwornik A/C najlepiej 6 kanałowy i to pod procesor. Dodatkowo RAM i LCD zewnętrznie. Uprocesor ma za zadanie sprawdzać fazę i liczyć energię jaka została zużyta z dokładnością do 0,5. I tak od 2 tyg mecze się ze schematem. Na dzień dzisiejszy mam coś takiego:
    LCD
    wielokanałowy przetwornik A/C z 8051

    RAM

    wielokanałowy przetwornik A/C z 8051

    Zostaje jeszcze kwestia dobrania dobrego przetwornika ADC i przekładników jakiś...
    Co do programu nie muszę go pisać. Wystarczą schematy blokowe programu co kiedy i jak ma się wykonywać. Jeśli już będę mieć schemat to połowa sukcesu. Dalej już nie powinienem mieć problemu...największy jest przy schemacie...z resztą nie tylko ja mam problem ze schematem...bo jest nas więcej niż 30

    0
  • #29 25 Mar 2010 15:59
    marek_Łódź
    Poziom 36  

    Generalnie jestem przeciwnikiem umieszczania peryferii w przestrzeni adresowej pamięci (piszę o wyświetlaczU), zwłaszcza w jednorazowych prototypach, bo nigdy do końca nie wiem, czy nie rozłożą ich zależności czasowe. Poza tym masz RAM i display w tym samym obszarze adresowym (zakładan, że oba schematy to ten sam układ). Osobiście dałbym sterowanie displaya z wolnego portu, pozostawiając linie danych tam, gdzie są i uważając by w czasie jego sterowania nie sięgać do pamięci zewnętrznej, przetwornik ADC dołączyłbym do spi (MISO, MOSI, SCK + linie CS itp), dalej kwarc, pojemności i część komputerowa gotowa (czy jeszcze jakiś problem?).

    Po drugiej stronie tak, jak napisałem wyżej (przekładniki wzmacniacze). Czy jeszcze coś pominąłem?

    0
  • #30 25 Mar 2010 16:32
    zbenek1
    Poziom 10  

    Jestem właśnie po rozmowie...nie było za miło heh. Przedstawiłem koncepcje i powiedziałem że pod P1 podłącze przetwornik. Padło pytanie dlaczego...powiedziałem że tak będzie wygodnie bo w jednej przestrzeni adresowej mam już RAM i LCD. No to otrzymałem odpowiedź że przetwornik może też być w zewnętrznej przestrzeni adresowej. Dodatkowo padły pytania dlaczego taki przetwornik, jak będą zmieniane kanały...kiedy co będzie zczytywane. Co do RAM i LCD to jeśli jest to poprawnie to lepiej niech zostanie tak jak jest. Teraz muszę ten nieszczęsny przetwornik zastosować(dobrać go pod względem kryterium). Powoli trace nerwy....

    0