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.

8051 - Układ 8051 z pamięcią zew. i przetwornikiem A/C

bjeda 09 Sty 2014 11:06 3423 6
  • #1 09 Sty 2014 11:06
    bjeda
    Poziom 5  

    Witam,
    Mam problem z projektem, celem projektu jest zapisywanie danych przekazywanych przez mikrokontroler 8051 na zewnętrzną pamięć danych złożoną z kości 64kB. W układ mam również wpiąć przetwornik A/C. Prosiłbym o weryfikacje poniższego schematu, głównie o podpięcie samego przetwornika A/C i czy poprawnie zrealizowałem przełączanie miedzy kośćmi 32kB. Zastanawia mnie również (i wydaje mi sie że ułatwiło by to sprawę), aby zamiast 2 kości podpiąć jedną 64kB pamięć SRAM ale nie wiem czy to jest możliwe do zrealizowania.
    W projekcie mam zrealizować również podłączenie dekodera adresowego, ale nie za bardzo wiem w które miejsce go podłączyć. Skoro na początku układu jest przetwornik A/C który nam zamieni sygnał analogowy na cyfrowy, to po co później miałbym ten sygnał odkodowywać?

    8051 - Układ 8051 z pamięcią zew. i przetwornikiem A/C

    Z góry dziękuje za pomoc.

    0 6
  • #2 09 Sty 2014 11:22
    BlueDraco
    Specjalista - Mikrokontrolery

    Zwarcie linii danych uniemożliwia korzystanie z pamięci. Skąd ten uC ma pobierać program?
    Inne kwestie proponuję rozstrzygnąć ramach konsultacji z prowadzącym zajęcia. Rozumiem, że chodzi o przedmiot "historia mikrokontrolerów" i przerabiacie właśnie okres lat 1980-tych?

    1
  • #3 09 Sty 2014 16:23
    Marek_Skalski
    Moderator Projektowanie

    BlueDraco:
    Tu nie ma zwarcia. Pamięci są wybierane przez !CEx i zawsze tylko 1 jest aktywna.
    Na schemacie jest oznaczenie AT89S51, więc to może być druga połowa lat 90-tych :)
    Historia też jest potrzebna, inaczej grozi nam powtarzanie błędów z przeszłości ;)

    bjeda:
    Biedny ten Twój schemat.
    0. Zdecyduj się czy to ma być AT89S51 czy jakiś goły 80C51. To naprawdę jest istotne.
    Jeżeli to jest AT89S51 to:
    1. Nie ma złącza do programowania. Wniosek: Nie można zaprogramować uC.
    2. Pin !EA wiszący w powietrzu jest ściągany do masy przez wewnętrzny pull-down, czyli procek będzie szukał programu w pamięci zewnętrznej. A takiego podłączenia tutaj nie widzę. Wniosek: Nie wykona programu.
    3. Brak wartości elementów na schemacie. Zbędne rezystory przy liniach danych dla "drugiej" pamięci.
    4. ADC...
    4.1. Co ten przetwornik będzie przetwarzał, jeżeli wejście przypiąłeś do zasilania?
    4.2. Zamiast przypiąć go do szyny danych, to zmarnowałeś cały port P1. Można, ale po co?
    4.3. Przypuszczam, że bez sygnału zegarowego nie wykona żadnej konwersji.
    4.4. VREF przez filtr.
    4.5. !BUSY do !INT0 - dobrze.
    5. Przełączanie pamięci SRAM w przestrzeni adresowej jest dobre, ale tylko jeżeli masz te 2 kości. Można dać pamięć 64KiB, ale to pewnie wzbudzi sprzeciw prowadzącego, który najwyraźniej jeszcze żyje w innej epoce. (Tylko mu tego nie mów, bo nie zaliczysz kursu.) :D
    6. Dekoder adresowy adekwatny do tego rozwiązania to pewnie 74LS138 albo 74LS139. Poszukaj dokumentacji do tych układów i zastanów się co to ma wspólnego z ADC MAX160. O dziwo ma, tylko zupełnie inaczej niż Ci się wydaje. Vide 4.2.

    Jak będziesz robił następnego screen'a, to w ten sposób: Mikrokontrolery

    Dodano po 1 [godziny] 38 [minuty]:

    Panowie, przyznaję rację i przepraszam.
    Padłem ofiarą przyzwyczajenia i schematów myślowych.
    Widziałem zestaw rezystorów do linii danych, a przecież tutaj jest ewidentne zwarcie wszystkich linii danych.

    0
  • #4 11 Sty 2014 21:52
    bjeda
    Poziom 5  

    Witam,

    po skontrolowaniu układu z Waszymi uwagami wprowadziłem poprawki. Wyrzuciłem płytkę zatrzaskową ponieważ szyny danych przepiąłem od razu do pamięci RAM. (Płytka byłaby zbędna jeżeli dobrze rozumuje). Dodałem zegar i pozmieniałem podpięcie wyjść ALE, EA i RD z ADC podpiąłem od razu do RAM`u. Dalej nie do końca rozumiem idee dekodera w układzie, przeszukałem pół internetu ale nie znalazłem nic co by rozjaśniło nieco moje wątpliwości. Czy ten dekoder działa tutaj w jak multiplekser? Nie dodawałem złącza do programowania bo prowadzący zaznaczał iż nie trzeba go uwzględniać na schemacie. Przepraszam za brak wartości na schemacie ale program odmawia mi posłuszeństwa.
    8051 - Układ 8051 z pamięcią zew. i przetwornikiem A/C

    0
  • #5 11 Sty 2014 22:39
    Marek_Skalski
    Moderator Projektowanie

    Masz tutaj tyle błędów, ze nie wiem od czego zacząć.

    bjeda napisał:
    celem projektu jest zapisywanie danych przekazywanych przez mikrokontroler 8051 na zewnętrzną pamięć danych złożoną z kości 64kB

    Jak to u Ciebie wygląda? Jakie dane może przekazać uC do pamięci zewnętrznej?
    Żadnych.
    Usunąłeś ze schematu zatrzaski, które są konieczne do prawidłowego adresowania pamięci. Nawet jeżeli zmusisz ADC do wystawienia danych i SRAM do ich wczytania, to jaki pożytek z danych umieszczonych w pamięci, której nie możesz odczytać? Zastanawiam się czy połączenie !WE SRAM i !RD ADC było celowe i świadome czy to przypadek?
    Dlaczego nie podłączyłeś !CS ADC? Jeżeli pozostanie w powietrzu to nic nie odczytasz z układu. Akurat ten pin powinien być podłączony do wyjścia dekodera adresowego, pozostałe do !CS każdej kości pamięci. W tej kwestii przeszukaj pozostałe "pół internetu" i na pewno coś znajdziesz ;)
    Co podasz na wejście przetwornika? Będziesz łowił szumy elektromagnetyczne z otoczenia? Schemat powinien być kompletny.
    Z jaką częstotliwością ma pracować CPU? Zastosowanie bramki NAND 4011 nie pozwoli uzyskać więcej niż kilka MHz. Teoretycznie i praktycznie układy CMOS z rodziny 4000 są zbyt powolne do takich zastosowań. Jeżeli użyjesz dekodera, to nie potrzebujesz żadnej takiej bramki.
    Co to znaczy, że program odmawia posłuszeństwa? Nie pozwala edytować wartości elementów? To chyba jakiś żart?
    Masz kilka błędów czysto edycyjnych:
    - zwarcie na rezystorze w układzie zegarowym ADC
    - brak węzła w układzie resetu uC
    - jakieś dziwne łuki, np. łączące piny pamięci z magistralą. Przesuń układ albo magistralę i rysuj jak należy, czyli odcinkami.
    Zdecyduj się ile masz tego zasilania? +10V i +5V rozumiem, a VCC to które z nich i dlaczego wprowadzasz dodatkowe oznaczenia, które są zbędne i mogą być mylące?
    No i ten piękny zasilacz? Jak to ma działać?? :D
    Jak się podłącza mostek Graetz'a, skąd bierzesz +10V?

    0
  • #6 12 Sty 2014 17:08
    bjeda
    Poziom 5  

    Okej, wydaje mi się że wyeliminowałem większość błędów, przynajmniej mam taką nadzieję. Mam pewien pomysł co do tego dekodera, ale nie mogłem w programie znaleźć takiego który by mi odpowiadał, albo po prostu źle ogarnołem temat. Wydaje mi się że powinienem mieć dekoder 16 wejść podpiętych do wyjściach adresowych A0...A15, z jednym wyjściem Y0 i jego negacja Y1, wyjścia podpięte tak jak wspominałeś do !CS i CE zewnętrznej pamięci. !CS ADC popiąłem narazie do GND bo wyczytałem z dokumentacji że jeżeli zbyt długo będzie stan niski na !CSie to przłączy się na tryb obsługi pamięci ROM zamiast RAM.
    8051 - Układ 8051 z pamięcią zew. i przetwornikiem A/C

    0
  • #7 12 Sty 2014 18:26
    Marek_Skalski
    Moderator Projektowanie

    Wróciłeś do pierwszej wersji i dodałeś zasilacz. No to się napracowałeś.

    bjeda napisał:
    celem projektu jest zapisywanie danych przekazywanych przez mikrokontroler 8051 na zewnętrzną pamięć danych złożoną z kości 64kB

    Jeżeli dobrze to rozumiem, to tych kości po 64kB może być kilka, tak? I właśnie ze względu na ograniczenie przestrzeni adresowej C51 do 64kB potrzebujesz dekoder adresowy.
    Weź np. 74LS138. Jego wejścia podłącz np. do portu P1, a wyjścia dekodera do wejść !CS każdej z kości pamięci (bez większej różnicy czy to 32kB czy 64kB). Do jednego z wyjść dekodera (pierwsze lub ostatnie) podłącz !CS ADC. Poza tym połącz wszystkie !RD lub !OE do !RD CPU, !WR lub !WE do !WR CPU oraz linie danych pamięci i ADC do Port 0 CPU i adresy identycznie dla każdego układu i tyle.
    BTW. Gdzie dają takie zadania? To jakieś technikum?

    0
  Szukaj w 5mln produktów