sabato 31 Ottobre 2020
Breaking News
Home > Tech > KEYER PER CW CON PIC

KEYER PER CW CON PIC

Il microchip PIC 16F84 è stato progettato come microcontroller a memoria flash per programmare servomeccanismi e piccoli robot. Tuttavia, negli ultimi anni, ha avuto anche un impiego illegale, facilmente intuibile, che esula dalla presente trattazione.

Trovare una utilizzazione per scopi radioamatoriali del suddetto chip è stato sempre un aspetto oscuro per me fino a quando ho scoperto un progettino di EI9GQ, al secolo E. Skelton, pubblicato sul suo sito (www.homepage.tinet.ie/ei9gq). Quello che mancava, forse perché ritenuto ovvio ai più, era la procedura di programmazione del chip in questione. Con il mio articolo ho voluto colmare questa lacuna.

Al progetto ho apportato delle semplici modifiche per adattarlo anche alla telegrafia con il tasto verticale tradizionale e dotarlo di un elementare sidetone composto da un buzzer a 12 V, sempre utile per ascoltare la propria manipolazione. Ovviamente ho provveduto a ridisegnare il circuito stampato per ridurre le dimensioni in modo da poter inserire il keyer nei ricetrasmettitori homebrew.

Lo schema si commenta facilmente perché tutto è configurato attorno al chip dove sono montati pochissimi componenti. In particolare il condensatore C3 provvede a generare la base dei tempi e P1 regola la velocità di manipolazione. La generazione della sequenza dei punti e delle linee avviene con un paddle (nella foto uno autocostruito donatomi da IW9ATY, Roberto).

Dal piedino 6 del chip il segnale commuta in conduzione Q1 che aziona il PTT del trasmettitore. Tramite il tasto telegrafico e la resistenza R8 la tensione manda in conduzione il transistor permettendo di comandare il TX. Il diodo D1 evita un ritorno di tensione che potrebbe danneggiare il 16F84.

Il circuito stampato è molto semplice e il progetto si appronta in poco tempo. Seguire la disposizione dei componenti.

La sezione software dedicata a questo progetto in apparenza sembrerà complicata ma vi assicuro che, una volta compreso il meccanismo, sarete in grado di risolvere il problema.

Preciso che le operazioni che andrete ad eseguire non hanno niente di illegale per cui potete stare tranquilli.

Innanzitutto occorre procurarsi i necessari programmi, tutti scaricabili dalla rete usando un qualsiasi motore di ricerca. Personalmente, oltre ad un normale word processor ( Word, Wordpad ecc ), ho usato i seguenti programmi:

– MPASM v. 01.50 scaricabile gratuitamente dal sito www.microchip.com
– PIC 24C13 v. 1.10

Preciso che quest’ultimo software lavora in DOS e non gira con il sistema operativo Windows XP per il quale è consigliabile usare il PICPROG che si presenta con una diversa interfaccia ma con le stesse peculiarità.

Inoltre è necessario l’uso di un programmatore di chip. Io ho realizzato un programmatore chiamato Ludipipo il cui progetto si trova facilmente in rete.

Ecco la sequenza da seguire per la programmazione:

1. Create e date un nome (es. KEYER) a una nuova cartella sul vostro computer;
2. Copiate i due software (MPASM e PIC 24C13) nella cartella KEYER;
3. Trascrivete, con il programma di word processing il listato della figura 2 facendo attenzione a non modificare le istruzioni o sbagliare qualche carattere e salvatelo in formato testo (.txt), con un nome a vostro piacimento ( es. jambic ), nella cartella precedentemente creata;
4. Lanciate il programma MPASM e aprite il file jambic.txt. Cliccare su ASSEMBLE: il programma genererà quattro file: jambic.cod, jambic.lst, jambic.err e jambic.hex che si trascriveranno in modo automatico nella cartella;
5. Inserire il chip PIC16F84 nel programmatore prestando attenzione alla piedinatura e lanciare il programma PIC 24C13;
6. Settare il programma selezionando, in OPTIONS il tipo di programmatore (Ludipipo), la porta COM (COM1, COM2 ecc) sulla quale è inserito e verificare (TESTHARDWARE) che tutto sia “ visto “ dal computer;
7. Selezionare DEVICE e successivamente, nella finestra, PIC16F84;
8. Selezionare FILE e nella finestra LOADHEX il file jambic.hex;
9. Selezionare ACTION e poi PROGRAM;

A questo punto si aprirà una finestra nella quale un cursore indicherà lo stato di avanzamento della programmazione alla fine della quale potrete estrarre il chip e inserirlo nello zoccolo del circuito stampato del keyer.
Per testare il corretto funzionamento del keyer, prima di collegarlo al trasmettitore, occorre inserire un buzzer a 12 V (lo stesso che si utilizzerà successivamente per il sidetone) così come indicato dalla parte tratteggiata dello schema in figura 1. Manipolare il paddle e controllare che la durata dei caratteri e delle sequenze sia corretta. Con l’interruttore S2 si potrà escludere il buzzer del sidetone. Se il lavoro è stato compiuto bene si avrà a disposizione un preciso ed economico keyer.

G.Lorenzi

 

Lista dei componenti

RESISTENZE
R1 = 1.2 kohm
R2 = 5.6 kohm
R3 = 100 kohm
R4 = 100 kohm
R5 = 4,7 kohm
R6 = 4.7 kohm
R7 = 4.7 kohm
R8 = 2,2 kohm
R9 = 2.2 kohm
P1 = 22 k kohm Potenziometro

CONDENSATORI
C1 = 100 mF Elettrolitico
C2 = 47 mF Elettrolitico
C3 = 470 pF Ceramico a disco
C4 = 10 nF Ceramico a disco
C5 = 10 nF Ceramico a disco

CIRCUITI INTEGRATI
IC1 = PIC 16F84
IC2 = 78L05 Regolatore di tensione

TRANSISTOR
Q1 = BC108
Q2 = BC108

VARIE
D1 = 1N4148
BUZZER 12 V

 

 

 

LIST P=16F84
	

	__CONFIG 0x3FFB		;RC, NO WDT,  PWR-UP, NO CP.

RA	EQU	05H		;PORT A
RB	EQU	06H		;PORT B
COUNT1	EQU	0CH		;COUNT FOR DELAY LOOP
COUNT2	EQU	0DH		; "
FLAG	EQU	0EH		;USER FLAGS

DIT_FLG	EQU	00H		;DOT FLAG
DIT_SW	EQU	00H		;DOT SWITCH (ON PADDLE KEY)
DAH_SW	EQU	01H		;DASH SWITCH (ON PADDLE KEY)
KEY	EQU	00H		;KEYING OUTPUT

	ORG	00H		;PROGRAM EXECUTION BEGINS FROM HERE
	GOTO	START

DAH	MOVLW	0x1E		;MAIN DOT/DASH DELAY LOOP
	GOTO	CONT
DIT	MOVLW	0x0A
CONT	MOVWF	COUNT1
LP2	MOVLW	0x6E
	MOVWF	COUNT2
LP1	DECFSZ	COUNT2,1
	GOTO	LP1
	DECFSZ	COUNT1,1
	GOTO	LP2
	RETLW	0		;END OF DELAY

START	BSF	3,5		;SWITCH TO F REGISTER PAGE 1 	
	MOVLW	0FFH		;PORT A ALL INPUTS
	MOVWF	RA
	MOVLW	00H		;PORT B ALL OUTPUTS
	MOVWF	RB
	BCF	3,5		;SWITCH TO F REGISTER PAGE 0 
	
	MOVLW	0
	MOVWF	RB		;MAKE SURE TX IS NOT KEYED ON POWER UP
	MOVWF	FLAG		;CLEAR DOT AND DASH FLAGS

NEXT	BTFSS	RA,DIT_SW	;IS THE DIT PADDLE PRESSED?
	GOTO	DOT
	BTFSS	RA,DAH_SW	;IS THE DAH PADDLE PRESSED
	GOTO	DASH
	GOTO	NEXT		;LOOP UNTIL NEXT PADDLE PRESS

DOT	BTFSS	RA,DAH_SW	;ARE BOTH PADDLES PRESSED
	GOTO	IAMBIC		;YES	
DOT2	BSF	RB,KEY		;KEY TRANSMITTER		
	CALL	DIT		;DELAY FOR 1 DOT LENGTH
	BCF	RB,KEY		;UNKEY TRANSMITTER
	CALL	DIT		;DELAY FOR 1 DOT LENGTH
	BSF	FLAG,DIT_FLG	;LAST MORSE ELEMENT SENT WAS A DOT (FOR IAMBIC ACTION)
	GOTO	NEXT		;BACK AND WAIT UNTIL NEXT PADDLE PRESS

DASH	BTFSS	RA,DIT_SW	;ARE BOTH PADDLES PRESSED
	GOTO	IAMBIC		;YES	
DASH2	BSF	RB,KEY		;KEY TRANSMITTER		
	CALL	DAH		;DELAY FOR 1 DASH LENGTH (3 DOT LENGTHS)
	BCF	RB,KEY		;UNKEY TRANSMITTER
	CALL	DIT		;DELAY FOR 1 DOT LENGTH
	BCF	FLAG,DIT_FLG	;LAST MORSE ELEMENT SENT WAS A DASH (FOR IAMBIC ACTION)
	GOTO	NEXT 		;BACK AND WAIT UNTIL NEXT PADDLE PRESS

IAMBIC	BTFSC	FLAG,DIT_FLG	;CHECK TO SEE IF LAST CHAR SENT WAS A DOT OR A DASH
	GOTO	DASH2		;IT WAS A DOT, SEND A DASH
	GOTO	DOT2		;IT WAS A DASH, SEND A DOT 
	
	END

Check Also

Alcuni esperimenti con la SLP-30

Ho pensato di mettere a disposizione degli altri radioascoltatori alcuni appunti sulla SLP-30 che dopo …

Copy Protected by Chetan's WP-Copyprotect.