logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zbudować generator sinusoidalny z ROM w PSPICE?

mastif 26 Cze 2004 20:06 1644 10
REKLAMA
  • #1 712853
    mastif
    Poziom 11  
    Posty: 7
    Witam wszystkich
    szukam schematu do zbudowanaia generatora sinusoidalnego z pamięcia ROM
    od prowadzącego dostałem następujące wytyczne
    digclock->licznik 8b->pamięć ROM->przetwornik AC-> wyjscie gdzie mamy "wspaniały" przebieg sinusoidalny
    na razie jestem na etapie podłączania liczników do pamięci i zatrzymałem sie
    dodam że chodzi o symulację w programie PSPICE a wykorzystałem nast elementy digclock, liczniki-2szt 74393 oraz pamięć ROM 32xk8break
    czy ktoś potrafi mi pomoc w dokończeniu tego projektu, chodzi mi o sposób zasterowania pamięciom ROM oraz sposobem wpisania do ROM danych z liczników no i pózniej z rom do przetw AC
    z góry dzięki za odpowiedź :D :D :D
  • REKLAMA
  • #2 718940
    PiRoman2
    Poziom 20  
    Posty: 337
    Pomógł: 22
    Ocena: 15
    Z przedstawionego opisu wynika, że powinieneś podłączyć wyjścia licznika pod wejścia adresowe pamięci. Sygnały OC OE podłączasz do "0". Linie danych podajesz na przetwornik CA. Po wpisaniu do ROM-u kolejnych "próbek" uzyskasz dowolny przebieg.
  • REKLAMA
  • #3 719826
    mastif
    Poziom 11  
    Posty: 7
    tak tez zrobiłem doszedłem do tego po paru próbach ,podłączyłem wyjścia z liczników do romu wolne wejścia pamięci połączyłem ze stanem LO tak samo wejście OE i na wejściu są sygnały po zamodelowaniu takie jak byc powinny a na wyjściu ROM ćma cały czas zero
    pytałem się prowadzącego to mi podpowiedział że w jakiś sposób należy wprowadzićdo pamięci ROM "funkcję" która umożliwi odpowiednie szczytywanie sygn wejściowych A0-A7
    i na tym sie wyłożyłem i nie potrafie ruszyć :cry:
    czy może wiesz jak to zrobić aby uzyskać przebieg sinusidalny tylko taki mnie interesuje 8) :o a jaki przetw CA zastosować na wyjściach z ROMU tak z ciekaowści pytam dodatkowo
    podrawiam i dzięki za wskazówki
  • #4 728195
    mastif
    Poziom 11  
    Posty: 7
    OJOJ czy nikt sie tutaj nie zna na tej części elektroniki
    nikt nie może mi pomóc :cry: a może jednak ktoś wie jak to zrobić
    bo mnie to dalej nie wychodzi
  • #5 728213
    Kuba_eM
    Poziom 24  
    Posty: 654
    Pomógł: 36
    Ocena: 77
    Heja!
    Schemat czegoś podobnego, jest gdzieś na Elektrodzie. Chyba to jest genergator funkcyjny: sinus, trójkąt i prostokąt. Przebieg był generowany z tablic umieszczonych w EPROMie. O ile się nie mylę, była to czyjaś praca dyplomowa :)
    Pozdrawiam
    Kuba
  • REKLAMA
  • #6 728264
    KKK
    Poziom 31  
    Posty: 1367
    Pomógł: 152
    Ocena: 62
    U=Uo*sin(2πft+φ1) - wzór na wartość chwilową napięcia powinieneś znać!
    φ1 w tym pomiń, oblicz wartości całkowite dla np. 255 kolejnych próbek pamiętając o offsecie (sinus daje wartości +-1).
    Nie znam PSPICE więc nie wiem jak to zasymulować.
  • #7 730568
    mastif
    Poziom 11  
    Posty: 7
    Kuba_eM napisał:
    Heja!
    Schemat czegoś podobnego, jest gdzieś na Elektrodzie. Chyba to jest genergator funkcyjny: sinus, trójkąt i prostokąt. Przebieg był generowany z tablic umieszczonych w EPROMie. O ile się nie mylę, była to czyjaś praca dyplomowa :)
    Pozdrawiam
    Kuba

    Sprawdziłem w dziale prace dyplomowe niczego takiego tam nie ma albo ja tego nie widzę. a może spotkałeś się z tym na którymś z tematów forum ,tylko na którym :?: może jakaś mała podpowiedź bo ja szukałem 2 godziny i nie znalazłem ?? :) będę wdzięczny za odpowiedź
    pozdrawiam
  • #8 767724
    mastif
    Poziom 11  
    Posty: 7
    HM widzę że ten temat nie jest zbyt popularny na elektrodzie , czy ktos zna może opis wprowadzania danych do pamieci w modulacji Pspicem jeżeli tak to czy może mi przesłać materiały dotyczące tego tematu z gory dziekuję za ewentualną pomoc
    pozdrawiam
    :lol:
  • REKLAMA
  • #9 968135
    mastif
    Poziom 11  
    Posty: 7
    częśc wszystkim to ja
    po przerwie
    dalej pracuję nad projektem tego generatora
    mam już wiedzę w jaki sposób wprowadzić do modelu dane mogące zasymulować przebieg odczytywany z pamięci
    natomiast mam problem ponieważ pamięć w psice jest programowana w kodzie szesnastkowym
    i ja nie za bardzo potrafię rozpisać w tablicy rozpisać: od 00 do 0F w wierszach oraz 00 do f0 w kolumnach, wartości tak aby uzyskać przebieg sinusoidalny ?? ktoś potrafi mi w tej materii szybko pomóc ??? na razie uzyskuję przebiegi pilokształtne a to i tak metodą prób i błędów a nie obliczeń
    pozdrawiam
    z góry dziękuję za każdą odpowiedź
    aha dysponuję rozpisaną o której pisałem dla przykładu przebiegu piłokształtnego :) ktoś chce to mogę podesłać
  • #10 969830
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 690
    Obliczanie zawartości pamięci EPROM

    for i:=0 to 255 do
    begin

    wartosc=128+Round(126*sin(360*i/256));

    { 128 ofset, 126 amplituda sinusa}

    kolumna:=i div 16;
    wiersz:=i mod 16; {Reszta z dzielenia przez 16}

    end;

    Przetwornik można zastosować typu DAC08 (8 bitowy).

    Częstotliwość wyjściowa generatora to

    FWY=FCLOCK/256;

    Jeżeli zapiszemy więcej niż jeden okres w pamięci to:

    FWY=N*FCLOCK/256;

    Gdzie N ilość okresów w pamięci i N<128.

    Generator ze zmienną częstotliwością taktowania ma podstawową wadę ponieważ wymaga na wyjściu przestrajanego ostrego filtru strojonego
    na 0.4-0.5 fclock. Filtry takie robi firma Maxim to układ MAX 293 jest to filtr 8-go rzędu o częstotliwości granicznej przestrajanej częstotliwością sygnału zegarowego (fgr=fclock/100);

    http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1443

    Inny układ można zrobić przez zmianę sposobu adresowania pamięci.

    Wpisujemy np. do pamięci przebieg sinus rozłożony na 4096 adresów (12 bitów adresowych).

    Fwy=fclock/4096

    jeżeli układ adresowy będzie odczytywał np. co n-tą próbkę to uzyskamy

    fwy=N*fclock/4096

    przykładowo dla stałej częstotliwości fclock=40960 kHz

    uzyskamy:

    fwy=N * 10 Hz

    teoretycznie maksymalna częstotliwość wyjściowa
    maksymalna częstotliwość wyjściowa to 20480 Hz (jeżeli w pamięci zapiszemy przebieg cosinus tzn dla adresu 0 -> +1 a dla 2048 ->-1

    Jednak ze względów realizowalności filtru na wyjściu przyjmuje się

    fmax=0.4 fclock czyli fmax=0.4*40960=16380 Hz (zaokrąglone);

    Adresowanie robi się rejestrem sprzężonym z sumatorem dodającym liczbę N do adresu próbki.

    Na wyjściu pamięci EPROM trzeba dać rejestr 8 bitowy np HC374 dla wyrównania czasów ustalania sygnałów na wyjściach poszczególnych bitów.
    Czyli na zboczu narastającym zegara modyfikujemy adres w pamięci a na opadającym zatrzaskujemy w rejestrze wyjściowym stan ustalony na wyjściu EPROMU.

    I tyle !
  • #11 976062
    _jta_
    Specjalista elektronik
    Posty: 48808
    Pomógł: 3197
    Ocena: 4182
    mastif napisał:
    pytałem się prowadzącego to mi podpowiedział że w jakiś sposób należy wprowadzićdo pamięci ROM "funkcję" która umożliwi odpowiednie szczytywanie sygn wejściowych A0-A7

    Jaki to ROM? Czyzby jakis, ktory wymaga wpisywania czesci adresu?

Podsumowanie tematu

✨ Dyskusja dotyczy budowy generatora sinusoidalnego w symulacji PSPICE wykorzystującego licznik 8-bitowy, pamięć ROM oraz przetwornik cyfrowo-analogowy (DAC). Projekt opiera się na podłączeniu wyjść liczników (np. 2x 74393) do wejść adresowych pamięci ROM (np. 32xk8), gdzie linie OE i OC są ustawione na stan niski. Kluczowym problemem jest wprowadzenie do ROM danych reprezentujących próbki przebiegu sinusoidalnego, które następnie są odczytywane i przetwarzane na sygnał analogowy przez DAC. Wskazano, że dane do ROM należy obliczyć według wzoru U=U0*sin(2πft), z przesunięciem offsetu, aby wartości mieściły się w zakresie 0-255 (dla 8-bitowego DAC). Przykładowy algorytm generowania zawartości ROM w kodzie szesnastkowym obejmuje iterację po 256 próbkach, z obliczeniem wartości jako 128 + Round(126*sin(360*i/256)). Częstotliwość wyjściowa generatora jest związana z częstotliwością zegara taktującego licznik (FWY=FCLOCK/256). Jako DAC rekomendowany jest układ DAC08. Wskazano również na problem konieczności stosowania filtrów dolnoprzepustowych, np. typu MAX293 firmy Maxim, w celu wygładzenia sygnału wyjściowego. Dyskusja porusza także trudności z programowaniem pamięci ROM w PSPICE oraz formatem danych w tablicach szesnastkowych. Nie znaleziono gotowych schematów w dostępnych zasobach, ale zasugerowano poszukiwanie podobnych projektów na forach i w pracach dyplomowych.
Wygenerowane przez model językowy.
REKLAMA