18f4550 e USART

9 Anni 6 Mesi fa #1 da velvettiere
18f4550 e USART è stato creato da velvettiere
Ciao a tutti,

sto passando ore d'inferno senza riuscire a far andare i comandi at della mia scheda gsm.



Questo sono i punti salienti del codice


#include <usart.h>

#pragma config FOSC = HSPLL_HS
#pragma config PLLDIV = 5
#pragma config CPUDIV = OSC1_PLL2
#pragma config USBDIV = 2




OpenUSART( USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH, 129);


Ho messo 129 perchè mi esce dal brgh1 e Fosc a 20 MHz ma secondo me non va bene prorpio questa temporizzazione,,,,non capisco se il mio pic va a 48 o 20 mhz


Ecco poi il codice dove invio i dati...




while (BusyUSART());


data = 0x41;
// Invio il dato A
WriteUSART(data);
while (BusyUSART());


data = 0x54;
// Invio il dato T
WriteUSART(data);
while (BusyUSART());


data = 0x44;
// Invio il dato D
WriteUSART(data);
while (BusyUSART());

data = 0x33;
// Invio il dato 3
WriteUSART(data);
while (BusyUSART());


data = 0x33;
// Invio il dato 3
WriteUSART(data);
while (BusyUSART());


data = 0x33;
// Invio il dato 3
WriteUSART(data);
while (BusyUSART());

data = 0x33;
// Invio il dato 3
WriteUSART(data);
while (BusyUSART());


data = 0x33;
// Invio il dato 3
WriteUSART(data);
while (BusyUSART());


data = 0x33;
// Invio il dato 3
WriteUSART(data);
while (BusyUSART());


data = 0x33;
// Invio il dato 3
WriteUSART(data);
while (BusyUSART());


data = 0x33;
// Invio il dato 3
WriteUSART(data);
while (BusyUSART());


data = 0x33;
// Invio il dato 3
WriteUSART(data);
while (BusyUSART());


data = 0x33;
// Invio il dato 3
WriteUSART(data);
while (BusyUSART());


data = 0x3B;
// Invio il dato ;
WriteUSART(data);
while (BusyUSART());


data = 0x0D;
// Invio il dato CR
WriteUSART(data);
while (BusyUSART());






la scheda non mi chiama....

Quale potrebbe essere il problema? Grazie.

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

  • velvettiere
  • Senior Member
  • Senior Member
Di più
9 Anni 6 Mesi fa #2 da alfa75
Risposta da alfa75 al topic 18f4550 e USART
ciao velvettiere
che valore hai sul quarzo esterno 20MHz?

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

  • alfa75
  • Avatar di alfa75
  • Platinum Member
  • Platinum Member
Di più
9 Anni 6 Mesi fa #3 da velvettiere
Risposta da velvettiere al topic 18f4550 e USART
Sì proprio 20 MHZ. Perchè?? Grazie mille ciao ciao

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

  • velvettiere
  • Senior Member
  • Senior Member
Di più
9 Anni 6 Mesi fa #4 da alfa75
Risposta da alfa75 al topic 18f4550 e USART
te lo chiedo perchè vedo dai fuses che hai attivato il PLL dell'oscillatore quindi logicamente non andrà a 20MHz
Ringraziano per il messaggio: velvettiere

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

  • alfa75
  • Avatar di alfa75
  • Platinum Member
  • Platinum Member
Di più
9 Anni 6 Mesi fa #5 da velvettiere
Risposta da velvettiere al topic 18f4550 e USART
Il problema infatti è proprio che nello schema di temporizzazione del pic non c'è il modulo usart e non capisco da dove questo prende la temporizzazione. Ho necessità di lasciare attivo il PLL perché devo andare a 48 MHz per massimizzare la velocità dell'usb. Proprio per questo ho provato a calcolarmi e ad usare anche il valore relativo a quella frequenza che mi viene 77 ma non funziona uguale....non vorrei che ci siamo più errori in contemporanea compresa l'inizializzazione....Grazie dell'aiuto

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

  • velvettiere
  • Senior Member
  • Senior Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

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

Registrati al sito LaurTec.

Login