COMBINATORE TELEFONICO

2 Anni 2 Mesi fa #36 da FABRIZIO
Risposta da FABRIZIO al topic COMBINATORE TELEFONICO
Buongiorno a tutti. Sono riuscito a trasmettere da Terminal verso il PIC, ma non riesco a trasmettere col PIC e ricevere con Terminal; quindi credo che i baud, cioè la velocità di comunicazione è a posto; ma perchè non ricevo alcun carattere su Terminal trasmesso dal PIC?

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • FABRIZIO
  • Avatar di FABRIZIO
  • Elite Member
  • Elite Member
Di più
2 Anni 2 Mesi fa #37 da Mauro Laurenti
Risposta da Mauro Laurenti al topic COMBINATORE TELEFONICO
Suggerisco un passo in dietro e creiamo un punto di partenza aggiornato.

Devi spiegare con maggior chiarezza il tuo setup.
Mostra lo schema e il software lato PIC.
Il software deve essere base.
Mostra i collegamenti dello schema e schede.
Come colleghi le schede ricattatrici?
Come imposti il software dal lato PC?

Quali test hai fatto, quali funzionano e quali no?

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
2 Anni 2 Mesi fa #38 da FABRIZIO
Risposta da FABRIZIO al topic COMBINATORE TELEFONICO
Allora il mio PIC16F690 è gestito dal clock interno a 8 MHz, riesco a ricevere il carattere inviato da Terminal e lo verifico perchè avevo creato un pezzo di programma che se ricevo 65, cioè la lettera A, mi setta un'uscita che mi fa scattare un relè nella scheda e mi accende un led; viceversa ho impostato un altro numero che, digitando la corrispondente lettera, mi spegne il led e scatta il relè. Il collegamento è esattamente quello che hai scritto a pag. 8 del PROTOCOLLO RS232 da te creato. Seguendo il tutorial di Renato Ferrero riesco a dialogare col sim900 tramite Terminal; quello che non riesco è inviare il numero 65 a Terminal e vedermi apparsa nella finestra di ricezione la lettera A. Quest'operazione mi servirà per inviare comandi AT al modulo tramite PIC. Uso MPLABX e compilatore XC8 ver. 2.10
Il listato del mio programma:

//Fusibili di configurazione (disabilitato BORDIS e PWRDIS)

#pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register)
#pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
#pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN = OFF // Brown-out Reset Selection bits (BOR disabled)
#pragma config IESO = OFF // Internal External Switchover bit (Internal External Switchover mode is disabled)
#pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled)
#define _XTAL_FREQ 8000000 //Oscillatore impostato a 8 MHz

#include <xc.h>
#include <pic.h>



int tempo = 0; //Routine per ritardo
int Routine_Ritardo(int func); //Ritardo per pause e antirimbalzo
int Convertitore(int numerico);
int ValoreRicevuto;
unsigned char pippo[22] = "ATD+391234567890;<CR>"; //Col numero giusto serve a far suonare il
//mio cellulare mediante PIC



//Input

#define Rx RB5 //Pin di ricezione da porta modulo GSM

//Output
#define ComandoSlave RC6 //Comando inviato a scheda SLAVE antifurto
#define Interruttore RB4 //Interruttore di accensione-spegnimento modulo GSM
#define Tx RB7 //Pin di trasmissione a porta modulo GSM


//

void __interrupt()intervallo(void) //Interrupt di TIMER0 settato a 1 ms
{
//RICEZIONE mediante interrupt (verifica ogni millisecondo)
while (RCIF) {ValoreRicevuto = RCREG;} //Se buffer ricezione pieno
//e assenza di trasmissione passa valore

if (T0IF) //Se overflow
{


//
T0IF = 0; //Reset
}

if (tempo != 0)
{
tempo--; //Decremento
}
T0IF = 0; //Reset
}

//
//Funzione di ritardo (ogni oscillazione è uguale a 1 ms)

int Routine_Ritardo(func)
{
tempo = func;

while (tempo != 0)
{
asm("nop");
}
return 0;
}

/*
PER IL MOMENTO NON USATA

unsigned char Trasmissione(valore) //Gestione informazioni
{

Routine_Ritardo(100); //Assestamento linea
RCIE = 0; //Disabilitazione interrupt ricezione
TXEN = 1; //Abilitazione trasmissione seriale
Routine_Ritardo(50); //Assestamento linea

while(TXIF == 0)
{
Routine_Ritardo(10);
TXREG = 'U';
}
Routine_Ritardo(50); //Assestamento linea

//FINE TRASMISSIONE

//SETTAGGIO RICEZIONE
TXEN = 0; //Disabilitazione trasmissione seriale
Routine_Ritardo(50); //Assestamento linea
RCIE = 1; //Abilitazione interrupt ricezione
return 0;
}
*/
//

void main(void)

{

// INIZIALIZZAZIONE HARDWARE

ANSEL = 0x00;
ANSELH= 0X00; //Esclusione porte analogiche, tutto digitale i/o

// PORT A
TRISA = 0b11111100; //Port A tutto IN

// PORT B
TRISB = 0b01101111; //Port B tutto IN tranne bit 4, 7

// PORT C
TRISC = 0b10111111; //Port C tutto IN tranne bit 6

// Oscillatore impostato a 4MHz

OPTION_REG = 0b10000010; //Prescaler e disabilitazione Pull-up
INTCON = 0b11100000;
OSCCON = 0b01110000; //Settaggio oscillatore interno a 8 MHz
TMR0 = 6; //Caricamento TIMER0 a 1 ms

TXEN = 1; //Abilitazione della trasmissione
//RCIE = 1; //Interrupt ricezione abilitato
SYNC = 0; CREN = 1; SPEN = 1;//Settaggi per ricezione
BRGH = 1; BRG16 = 0; SPBRG = 51;//Settaggio per velocità di comunicazione (9600 baud rate)

PORTA = 0X00; PORTB = 0X00; PORTC = 0X00; //Reset delle porte

Routine_Ritardo(100);
//

while (1)
{


while (TXIF == 1)
{
Routine_Ritardo(50);
TXREG = 65;//A
}

Routine_Ritardo(50); //Assestamento linea
}
}

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • FABRIZIO
  • Avatar di FABRIZIO
  • Elite Member
  • Elite Member
Di più
2 Anni 2 Mesi fa #39 da FABRIZIO
Risposta da FABRIZIO al topic COMBINATORE TELEFONICO
Tengo precisare che se stacco i fili di trasmissione e ricezione dal pic e li cortocircuito, quello che scrivo su Terminal nella finestra di trasmissione, lo ricevo nella ricezione, quindi posso dedurre che la scheda di interfaccia e la porta seriale funzionano.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • FABRIZIO
  • Avatar di FABRIZIO
  • Elite Member
  • Elite Member
Di più
2 Anni 2 Mesi fa #40 da FABRIZIO
Risposta da FABRIZIO al topic COMBINATORE TELEFONICO
E' tutto giusto, funziona tutto, adesso che ho cambiato il pic :( era guasto

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • FABRIZIO
  • Avatar di FABRIZIO
  • Elite Member
  • Elite Member
Di più
Moderatori: Mauro LaurentiStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login