                            SIMTEL


Dovendo mettere a punto una apparecchiatura telefonica  e non potendo per
ovvi motivi tenere impegnato il telefono di casa per ore ho pensato di
sviluppare il circuito qui presentato .

Svolge la funzione di simulare le temporizzazioni prodotte  da una centrale
telefonica (numerica) nelle seguenti condizioni :
1) quando si solleva la cornetta
2) quando il numero chiamato risulta libero
3) quando il numero chiamato risulta occupato
4) quando la centrale va in timeout
inoltre e' possibile
5) generare dei toni casuali
6) comporre in DTMF un I  numero (lunghezza Max. 19 cifre)
7) comporre in DTMF un II numero (lunghezza Max. 17 cifre)
8) riprogrammare i parametri dei toni generati ed i numeri da comporre
Ogni funzione si attiva chiudendo il relativo interruttore (uno solo)

                   IMMAGINE EEPROM
 Tutti i tempi sono espressi in msec.  la frequenza in Hz.
 ogni parametro e' una word

Indir.    Dato    Hex    Funzione

00        200     C8     Toff1 tono di centrale  LOW    200msec
01        0       00     Toff1                   HIGH
02        200     C8     Ton1                    LOW    200msec
03        0       00     Ton1                    HIGH
04        169     A9     Freq                    LOW    425Hz
05        1       01     Freq                    HIGH
06        88      58     Ton2                    LOW    600msec
07        2       02     Ton2                    HIGH
valore fisso             Toff2                          1000msec

08        160     A0     Toff  tono di libero    LOW    4000msec
09        15      0F     Toff                    HIGH
10        232     E8     Ton                     LOW    1000msec
11        3       03     Ton                     HIGH
12        169     A9     Freq                    LOW    425Hz
13        1       01     Freq                    HIGH

14        244     F4     Toff  tono di occupato  LOW    500msec
15        1       01     Toff                    HIGH
16        244     F4     Ton                     LOW    500msec
17        1       01     Ton                     HIGH
18        169     A9     Freq                    LOW    425Hz
19        1       01     Freq                    HIGH

20        200     C8     Toff  tono di anomalia  LOW    200msec
21        0       00     Toff                    HIGH
22        200     C8     Ton                     LOW    200msec
23        0       00     Ton                     HIGH
24        169     A9     Freq                    LOW    425Hz
25        1       01     Freq                    HIGH

Da ind. 26 a 44    I Numero
le cifre  da  0 a 9                  codificate con 0,1,2,3,4,5,6,7,8,9
il * (asterisco)                     codifcato con 10
il # (cancelletto)                   codifcato con 11
le lettere da A a D                  codifcate con 12,13,14,15
la sequenza NON DEVE superare i 19 caratteri e terminare con 255 (FF)

Da ind. 46 a 62     II Numero
le cifre  da  0 a 9                  codificate con 0,1,2,3,4,5,6,7,8,9
il *  asterisco                      codifcato con 10
il #  cancelletto                    codifcato con 11
le lettere da A a D                  codifcato con 12,13,14,15
la sequenza NON DEVE superare i 17 caratteri e terminare con 255 (FF)

                  PER MODIFICARE PARAMETRI

La comunicazione avviene a 2400 baud , no parita', 8 bit , 1 stop bit
utilizzando il segg. protocollo :

Il codice ASCII Y (59) fornisce una copia di tutte le 64 locazioni della
eeprom espresse in decimale e seguite dal ritorno a capo (CR)
aggiunge un ulteriore valore che rappresenta l'XOR di tutti i dati
trasmessi (escluso i CR)

Il carattere ASCII Z (5A) avvia la programmazione di una locazione eeprom
deve essere seguito dall'indirizzo che si vuole programmare (in HEX) ,
da uno spazio , dal dato che si vuole scrivere (in HEX) e deve
terminare con ritorno a capo (CR)
Quando il PIC ha terminato la scrittura del byte trasmette il carattere
ACK (06)  ed e' possibile procedere con un altro dato .

Qualunque altro carattere restituisce la stringa "Err." ed esce  dalla
procedura di programmazione ; se l'interruttore di programmazione e'
ancora chiuso il programma rientra nella procedura .

Per semplificare queste operazioni conviene usare il programma TELSIM.EXE
che permette di variare le impostazioni di default (del file TEL.SIM) e
trasferirle tramite linea seriale (COM1 o COM2) alla eeprom del PIC.
Il programma va eseguito in una finestra DOS di Windows e deve trovare
nella directory corrente il file TEL.SIM .
Nella fase di editing dei parametri sono abilitati i tasti di movimento
cursore,ins,del,home,end,page up,page down,enter,esc
enter sull'ultimo campo termina l'editing ed esc lo termina immediatamente
Non viene effettuato nessun controllo sui valori immessi quindi attenersi
ai valori consigliati per ogni parametro . Quando si avvia il programma
SIMTEL deve gia' essere collegato alla linea seriale (COM1 o COM2) e
predisposto per la programmazione (relativo interruttore chiuso)
Per il collegamento sono necessari solo 3 fili (Tx,Rx,Gnd)


                       File forniti

SIMTEL.txt      questo file

SIMTEL.sch      schema elettrico in formato circad

SIMTEL10.hex    eseguibile PIC16F84 versione con quarzo a 10MHz

SIMTEL04.hex    eseguibile PIC16F84 versione con quarzo a 4MHz
N.B. questa versione NON e' stata provata ma si e' solamente ricompilato
il programma per questa frequenza . Dovrebbe funzionare esattamente come
quella a 10MHz ma avere una distorsione maggiore nella generazione delle
frequenze e dei toni DTMF

TELSIM.exe      programma DOS per riconfigurare i parametri nella eeprom

TEL.sim         parametri di default della eeprom
                assolutamente necessario a TELSIM.exe

    N.B. nell'hex  sono gia' inseriti i parametri della eeprom per cui
    una volta programmato il PIC e' gia' pronto per funzionare .

