Nummerpresentatör
Nummerpresentatör
Tänkte jag skulle ta och bygga mig en nummerpresentatör som extrauppgift i kursen Signaler och System genom att koda en egen dtmf-avkodare.
Visserligen finns det fina färdiga kretsar för sånt men nu går ju uppgiften ut på signalbehandling så jag tänkte jag skulle avkoda signalen i en atmega.
Goertzels algoritm som jag hittade i en annan tråd här på forumet verkar ytterst lämplig för detta. Beräkningarna blir nog inga problem att hinna med då atmegan går i 16Mips och klarar 16*16 bitars multiplikation på 2 cykler om jag inte missminner mig.
Har gjort en första simulering av algoritmen i matlab (spelade in tonerna från min mobiltelefon):
http://www.student.itn.liu.se/~frejo242 ... ertzel.gif
Här syns tydligt att första tonen är siffran 1 då den består av just 697Hz och 1209Hz enligt http://www.celticrover.com/bgtt/dtmf.asp
Nederst gjorde jag en fft mest av nyfikenhet (0-2KHz). Kan tillägga att fft:n tog 12ms medans Goertzel tog enligt matlab 0ms (upplösningen på tic/toc är inte bra nog)
Innan jag kopplar in någon display eller liknande tänkte jag debugga via hyperterminal. Har sett något om att det finns lite vettigare hyperterminaler än den i windows, nån som har ett bra förslag?
Ska försöka hinna med att koppla ut atmegan i helgen eller så och se om det går att få igång hyperterminalen.
Visserligen finns det fina färdiga kretsar för sånt men nu går ju uppgiften ut på signalbehandling så jag tänkte jag skulle avkoda signalen i en atmega.
Goertzels algoritm som jag hittade i en annan tråd här på forumet verkar ytterst lämplig för detta. Beräkningarna blir nog inga problem att hinna med då atmegan går i 16Mips och klarar 16*16 bitars multiplikation på 2 cykler om jag inte missminner mig.
Har gjort en första simulering av algoritmen i matlab (spelade in tonerna från min mobiltelefon):
http://www.student.itn.liu.se/~frejo242 ... ertzel.gif
Här syns tydligt att första tonen är siffran 1 då den består av just 697Hz och 1209Hz enligt http://www.celticrover.com/bgtt/dtmf.asp
Nederst gjorde jag en fft mest av nyfikenhet (0-2KHz). Kan tillägga att fft:n tog 12ms medans Goertzel tog enligt matlab 0ms (upplösningen på tic/toc är inte bra nog)
Innan jag kopplar in någon display eller liknande tänkte jag debugga via hyperterminal. Har sett något om att det finns lite vettigare hyperterminaler än den i windows, nån som har ett bra förslag?
Ska försöka hinna med att koppla ut atmegan i helgen eller så och se om det går att få igång hyperterminalen.
Tanken är väl att senare bygga ut det med USB genom att nyttja t.ex. igorplug. Sen kan man ha ett program på datorn som visar både namn, adress och karta. Inte för att det är så nödvändigt utan mest för att det gårIcecap skrev:Sånt finns redan, avsedd åt kontor. När numret är inne slås i en databas med alla nödvändiga och onödvändiga upplysninger så man kommer ihåg färgen på båten osv.
Dekoda DTMF'en, skicka på serieport t.ex. (kanske via PIC eller AVR) och ha ett program i datorn som kör ytterligare behandling.
Tackar, plockade ner term20041226.zip. Får se om det blir lite meck i helgen.
Har hittat en trafo också för anpassningen mot telenätet, så det blir väl att ansluta oscilloskopet också för att se lite hur signalen ser ut när det ringer.
Nu har jag lödit ihop en början till det hela:
Serieinterfacet är uppe och snurrar med en simpel kommandoprompt för att skicka kommandon till atmegan.
Nästa steg blir att sätta upp signalanpassningen på den tomma ytan på kortet med en linjetrafo samt ev. en op då jag antar att signalen behöver lite förstärkning.
Serieinterfacet är uppe och snurrar med en simpel kommandoprompt för att skicka kommandon till atmegan.
Nästa steg blir att sätta upp signalanpassningen på den tomma ytan på kortet med en linjetrafo samt ev. en op då jag antar att signalen behöver lite förstärkning.
Jo det gick bra, gjorde en prototyp på experimentkort som jag tänkt göra ett riktigt kort till men det har inte blivit av...
Hela rapporten finns här
Anpassningen var inga problem, använde en linjetrafo från elfa, 27:- tror jag den kostar, sen kopplade jag enligt databladets anvisningar för svenska telenätet.
Hela rapporten finns här
Anpassningen var inga problem, använde en linjetrafo från elfa, 27:- tror jag den kostar, sen kopplade jag enligt databladets anvisningar för svenska telenätet.