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

ATmega 8 Bascom DTMF out brzmi jakoś dziwnie (nie przypomina DTMF).

fotomh-s 24 Lut 2015 18:23 1350 6
REKLAMA
  • #1 14473247
    fotomh-s
    Poziom 24  
    Posty: 1091
    Pomógł: 10
    Ocena: 315
    Jak w tytule, korzystając z funkcji DTMF out w Bascomie udało mi się wygenerować "jakiś" sygnał.

    Sygnał ten jest raczej daleki od DTMF. Brzmi jakoś dziwnie. Jak programem multipsk chciałem zdekodować to nie dał rady, zamiast 2 tonów analizator widma był cały zaśmiecony wieloma częstotliwościami.
    Podłączyłem jacka do portu przez potencjometr 50KΩ. I właśnie tak to wyglądało. Dodałem elektrolit 1µf i analizator widma wyglądał lepiej, jednak wydaje mi się, że częstotliwość była zbyt niska.

    I tu pytanie. Jak zrobić filtr do "odśmiecenia" tego sygnału i czy muszę coś kombinować z komendą $crystal?

    Mega8 jest taktowana wewnętrznym oscylatorem, fusy nie były zmieniane (fusy ma fabrycznie ustawione, ja tam nic nie grzebałem w fusach).

    W moim programie nie ma żadnej instrukcji $crystal bo nie wiem czy powinna być.
    Podaję kod programu odpowiedzialny za wysyłanie DTMF:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 14473287
    perch
    Poziom 27  
    Posty: 861
    Pomógł: 119
    Ocena: 258
    Ustaw częstotliwość na 4Mhz zarówno w fusebitach jak i $crystal w programie. Na 8Mhz też działa.
    Zerknij do helpa Bascoma, sam testowałem to niedawno i na wewnętrznym oscylatorze efekt był zadowalający.
  • REKLAMA
  • #3 14473313
    fotomh-s
    Poziom 24  
    Posty: 1091
    Pomógł: 10
    Ocena: 315
    A fabrycznie to jak jest ustawione? Nie jest to przypadkiem 8MHz?
    I rozumiem, że jeśli fabrycznie jest 8MHz to $crystal ma być 8000000?

    EDIT. Chyba działa. Tony wydają się brzmieć jak typowy DTMF.
    Dzięki za pomoc.
  • REKLAMA
  • Pomocny post
    #4 14473381
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    fotomh-s napisał:
    A fabrycznie to jak jest ustawione? Nie jest to przypadkiem 8MHz?

    Sprawdź w dokumentacji - notka pod tabelką: Table 88. Fuse Low Byte
  • #5 14473421
    fotomh-s
    Poziom 24  
    Posty: 1091
    Pomógł: 10
    Ocena: 315
    Kurcze, na moje ucho to działa, jednak multipsk nie dekoduje.
    Czy kondensator 1µf jest dobry jako filtr? Czy może lepiej dać coś innego?

    Chyba potrzebny mi filtr dolnoprzepustowy.
  • REKLAMA
  • #6 14474630
    Piotr Piechota
    Poziom 22  
    Posty: 519
    Pomógł: 55
    Ocena: 85
    dondu już wprawdzie napisał ale zacytuję wprost
    Cytat:
    The device is shipped with CKSEL = “0001” and SUT = “10” (1MHz Internal RC Oscillator, slowly rising power).
  • Pomocny post
    #7 14474829
    Konto nie istnieje
    Poziom 1  

Podsumowanie tematu

✨ Użytkownik zgłosił problem z generowaniem sygnału DTMF przy użyciu funkcji DTMF out w Bascomie na mikrokontrolerze ATmega 8. Sygnał był nieprawidłowy, z wieloma częstotliwościami zamiast dwóch tonów. Użytkownik podłączył jacka przez potencjometr 50KΩ i dodał kondensator 1μF, co poprawiło analizator widma, ale częstotliwość nadal była zbyt niska. Otrzymał porady dotyczące ustawienia częstotliwości na 4MHz lub 8MHz w fusebitach oraz w komendzie $crystal. Po wprowadzeniu poprawek, sygnał DTMF zaczął brzmieć poprawnie, jednak nadal występowały problemy z dekodowaniem przez program multipsk. Użytkownik rozważał zastosowanie filtru dolnoprzepustowego.
Wygenerowane przez model językowy.
REKLAMA