Oktober 2018
S M T O T F L
30 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3

Luk dig ind

Projekter

CTCSS Generator, Opdateret 20 Januar 2015

 

CTCSS Generator.

CTCSS

Endelig et projekt der kan bygges alene med komponenter fra OZ6FRS Lager.

Egenetlig var det Allan OZ9AWA, der skulle bruge nogle generatorer til eftermontering ude i radioklubben i Jægerspris. Jeg foreslog Allan at finde noget på indernettet, og det lykkedes – et nydeligt projekt bygget over en ATMEL processor – i løssalg 36 kr før afgifter mm.

Projektet er nu redefineret til at kunne køre i klubbens PIC16F676 og PIC16F630 (samme model, 630 har blot ikke nogen ADC). I forbindelse med omlægningen er 1R2 Dgital Analog converteren reduceret fra16 bit til 9 Bit. Ummidelbart – på ujusteret prototype - er alle uønskedede signaler under 10-20 dB eller over de 3KHz som en almindelig FM sender lukker gennem Modulatoren. Ved at forbedre impedanstilpasningen (Buffer OPAMP), og andre tiltag kan de 10 dB nok forbedres.

Omlægningen har resulteret i en ny Kildekode (C program) som kan hentes og modificeres.

Så hvordan virker den.

I PIC processoren er etableret en kurvetabel (i dette tilfælde Sinus), bestående af de værdier der skal udlæses på de 9 bits fordelt på port B og C. Tallene er lavet med et regneark og så overført til kildekoden i programmet. Der til en hel periode 72 værdier, og derefter startes forfra.

PIC processoren har et Krystal (vi fandt en del 11.0592 MHz på lageret), således at der er en stabil reference at arbejde med. Der er i programmet en Timer rutine, når den specificereder tid er gået sættes den næste værdi fra tabellen til output.

Hvis du sætter en frekvenstæller på vil du se at ikke alle frekvenserne rammer "spot on", typisk lidt lavere (1 % eller deromkring).

Når output frekvensen stiger, så skal skifte frekvensen også øges – og for en tabel på 72 værdier og 11 MHz xtal er der en grænse omkring 460 Hz. Over denne grænse vælges kun "hveranden", altså 36 værdier – derefter 24 og 18 (over ca 2KHz).

Jo lavere frekvens, jo flere opdateringer af output væredien per periode – og dermed burde uønskede produkter kunne jages op over 3KHz.

Omstilling af frekvens.

Der er i processoren indlagt en tabel over toner og meningen er at en af disse er aktiv og bliver husket til næste gang der sættes strøm på. PIC MCLR pin er omlagt så den ved kortslutning til stel skifter en tone op, indtil den sidste tone- hovr den nateligvis starter forfra.

Program.

Vi har valgt at lægge programmet på klubbens hjemmeside, både i kildekode (hentes ind i et MPLABX projekt) og som .HEX filer. Når programmet skal puttes i Processoren skal der tilsluttes en programmer (PICKIT3 eller ICD3 – og andre kan sikert bruges), det gøres ved at lodde nogle tråde på midlertidigt.

Orientering omprogram.

Pogrammet er skrevet i C, det giver flere mulighed for at læse, forstå og eventelt lave egne ændringer.

Programmet har 3 hoveddele

A – Initialisering, herunder opsætning af den frekvens der er gemt i EEPROM

B - Interruptstyret tonegenereing, styret af TIMER1

C – main Loop, der ændrer til næste frekvens og gemmer i EEPROM

Iøvrigt gælder den gyldne SW regel – Softwaren fylder al den plads der er tilrådighed !!

Ændringer du selv kan foretage uden større risiko

Toner

tones[] er en tabel over de frekvenser der vælges mellem, her skal frekvensen væere ganget med 10, så 69,4 Hz opgives som 694

Xtalfrekvens

FXTAL konstanen oplyser krystalfrekvensen i Hz, Hvis du ændre denne er det muligt at du også skal justere værdien FREQOFFSET. Jeg vil ikke anbefale at gå under de 11 MHz, men det kan jo være at du har et rodekassextal på 14 MHz...

Hvad kunne det ellers blive til ?

Hvis du er halvhaj til C er der masser af muligheder,

Apollodyt, Send alle CTCSS toner i sekvens (Universalnøgle ??) - det er vel kun fantasien der sætter grænser.

Hardware

Til projektet er lavet et prototype print, som kun indeholder det nødvendigeste for at få testet program og få lyd ud af dyret. Din anvendelse kunne betyde at du måske skal lave et

nyt print så dimsen kan være i din mikrofon eller inde i stationen. Måske vil du forbedre output med en operationsforstærker – eller noget helt andet. Men tag en kopi af Eagle filen og start derfra.

437Hz

 

 

Attachments:
FileDescriptionFile sizeCreatedLast modified
Download this file (CTCSS Generator.zip)Alle filer til projektEagle PCB filer, Beskrivelse, C Program119 kB2015-01-20 08:122015-01-20 08:12
Download this file (main.txt)main.cCTCSS tone generator ed PIC16 (husk at rename til main.c)6 kB2014-10-05 16:492014-10-05 16:50
Download this file (MPLAB X og Omegn.pdf)om MPlabXkort guide til MPLAB X25 kB2014-10-05 18:252014-10-05 18:25