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.

[Rozwiązano] Zmiana częstotliwości dźwięku wydawanego przez buzzer w VHDL (Spartan)

bonifacypompka 17 Cze 2018 17:40 195 2
  • #1 17 Cze 2018 17:40
    bonifacypompka
    Poziom 2  

    Witam wszystkich, bardzo proszę o radę :)

    Robię projekt na Spartanie 3E w VHDL, którego celem jest generowanie z buzzera dźwięków o różnych częstotliwościach za pomocą klawiatury matrycowej 4x4. Klawiature mam już zdekodowaną. Na obecnym etapie każdemu przyciskowi przypisana jest inna konfiguracja LED'ów (szereg ledów reprezentuje binarnie numer przycisku który został wciśnięty - żeby zobaczyć czy matryca działa poprawnie). Chciałbym, żeby do kilku przycisków tej klawiatury były przypisane różne częstotliwości wyjściowe buzzera (dźwięki o różnych wysokościach).
    W pojekcie korzystam z wbudowanego generatora sygnału clk o częstotliwości 50MHz. Kiedy podam stan wysoki na buzzer, wydaje on dźwięk o częstotliwości 4.5 kHz. We wskazówkach do obsługi buzzera, napisane jest, że "Sterowanie buzzerem odbywa sie za pomocą linii F8. Głośniczek generuje dźwięk o częstotliwości 4.5 kHz (piszczy). <<Chcąc wygenerować inny dźwięk, należy odpowiednio modulować sygnał kluczujący tranzystor NPN umieszczony przed buzzerem.>>" Poniżej pokazany jest następujący schemat: Zmiana częstotliwości dźwięku wydawanego przez buzzer w VHDL (Spartan)

    Czy w takim wypadku, to znaczy jeśli wysokość dźwięku zmienia się wraz z kluczowaniem, wystarczy że napiszę odpowiednie dzielniki częstotliwości z 50Mhz na niższe? Skoro chodzi o kluczowanie tranzystora to dobrze rozumiem, że należy podać na niego sygnał prostokątny o innej częstotliwości?
    Czy może dźwięk tego buzzera jest skutkiem analogowego sinusa jako po prostu stanu wysokiego i podawanie sygnału prostokątnego zamiast stanu wysokiego po prostu będzie włączać/wyłączać ten buzzer?

    Jeśli jest cały czas stan wysoki i buzzer wydaje dźwięk 4.5 kHz, a sygnał clk jest bezpośrednio z wbudowanego zegara 50MHz, to może powinienem zrobić dzielnik częstotliwości i jako sygnał clk do projektu przypisać wyjście tego dzielnika? Wtedy wystarczy każdemu przyciskowi nadać wartość, do której licznik będzie zliczał.

    Niestety nie mam żadnych więcej informacji odnośnie brzęczyka.

    Bardzo proszę o wskazówki :)

    0 2
  • #2 17 Cze 2018 23:15
    3149400
    Użytkownik usunął konto  
  • #3 03 Wrz 2018 19:13
    bonifacypompka
    Poziom 2  

    Należało napisać dzielnik częstotliwości. Zmiana wysokości dźwięku faktycznie była skutkiem kluczowania sygnałem prostokątnym. W programie każdemu przyciskowi przypisałem zmienne (inty) o odpowiednich wartościach. Licznik zliczał do tych wartości i przy przekręcaniu się wypuszczał jedynkę.

    0