|
|
|
![]() |
|||||||
| Arcade | Registrazione | Blogs | Regolamento | Feedback | FAQ | Lista Utenti | Calendario | Segna come Letti |
| Ultimi 5 blog pubblicati su PcTuner Blog | ||||||
|
||||||
![]() |
|
|
Strumenti Discussione | Modalità Visualizzazione |
|
|
#1 |
|
Registered User
|
level shifter 3v3 5v. PROBLEMA
Ciao a tutti.
Avrei bisogno di aiuto. Ho un pic18f4550 e un modulo gsm GM862 della telit. La logica del telit è a 2V8 e quella del pic 5V. Sono collegati tramite usart a 9600 baud. Per trasformare l'uscita dell'usart a 2.8V uso il circuito nello schema allegato e funziona egregiamente. Ma per la direzione inversa, cioè dal telit al pic, il circuito non va perchè il pin della ricezione del pic è alto a 5V. Mi servirebbe di riuscire a mettere a massa il pin della ricezione del pic, quando il segnale in uscita dal telit è basso. Ho fatto mille prove ma senza soluzione perchè non so in che modo vengono calcolate le resistenze collegate al transistor. Se qualcuno avese qualche suggerimento lo ringrazierei infinitamente. Buona serata a tutti. |
|
|
|
| Advertising | |
|
|
|
|
|
#2 |
|
Mod insubrico
|
Ciò che scrivi mi sembra un pò "strano".. Io te la butto giù così.. Ho collegato un ricevitore GPS che va a 3.3V ad un PIC 18F2431 (solo l'uscita NMEA all'entrata RX del PIC) e tutto funziona egregiamente. Infatti a 5V il PIC considera livello alto una tensione superiore a 2.0V. Non vedo dunque il problema.
__________________ |
|
|
|
|
|
#3 | |
|
Registered User
|
Quote:
|
|
|
|
|
|
|
#5 | |
|
Mod insubrico
|
Quote:
Ovvio che il traslatore ti serve dal PIC al telit. Ma anche in quel caso ci sono soluzioni molto più semplici che l'utilizzo di due transistors e diversi componeti passivi.. |
|
|
|
|
|
|
#7 |
|
Registered User
|
No No! Non va. Collegandolo direttamente non funziona. Quando è alto è 5 volt, ma quando è basso arriva a 3.8 volt. Non ce la fa a mandarlo basso. Avevo già provato. E' per questo che cercavo di usare un transistor.
Beh se qualcuno ha altre indicazioni sono ben accette. |
|
|
|
|
|
#10 |
|
Registered User
|
Ho fatto anche una prova con un traslatore di livello, il TXB0104, che funziona solo nel senso dal pic al telit. Quando deve trasformare il segnale a 2,8 in 5 volt, non funzia. Il livello basso rimane a 4.5 volt circa. Poi leggendo a modo il datasheet del TXB0104 mi sono accorto che l'uscita è 50ohm. Forse l'impedenza è troppo bassa per pilotare il carico del pic. Ma non so come adattare le impedenze. Non sono proprio un'esperto di elettronica...
|
|
|
|
|
|
#11 |
|
Registered User
|
E vi descrivo la situazione con il TXB0104.
Qundo il telit trasmette dati al pic, se ci metto la sonda dell'oscilloscopio mi vedo il mio bel segnale che fa bello bello da 0.1 a 5 volt. Se ci collego il max232 sullo schermo mi vedo le mie belle stringhe. Senza errori. Come ho detto prima, se collego il max232 al pic, il mio programma riceve i dati. Ma se collego il TXB0104 al pic... niente. Il segnale rimane sempre alto e quando è basso va giù al massimo di 0.2-0.3 volt dal 5 volt. Mi cadono le braccia. |
|
|
|
|
|
#12 | |
|
Mod insubrico
|
Quote:
Altra possibilità: questa qui.. http://it.emcelettronica.com/gsm-com...62-al-picmicro Ma continuo a sostenere, per esperienza, che mi sembra un over-kill. Ultima Modifica di RockRibelle : 24-11-2009 14.06.25. |
|
|
|
|
|
|
#13 |
|
Registered User
|
Non sarebbe più semplice utilizzare il PIC della serie LF senza tante seghe mentali.
__________________Inoltre tutti i PIC che vanno solo a 5V stanno diventando obsoleti così come molti componenti di contorno.
Camillo
Il VeroProgrammatore può contare fino a 1024 con le dita delle mani. Grazie a .mau. Le donne e i gatti fanno quello che vogliono, gli uomini e i cani dovrebbero rilassarsi e abituarsi all'idea. R.A.Heinlein |
|
|
|
|
|
#14 |
|
Registered User
|
|
|
|
|
|
|
#15 |
|
Mod insubrico
|
Non credo sia un problema di seghe mentali.. Forse qui effettivamente c'é un piccolo errore da qualche parte.. Trovare le risposte credo che sia quasi un dovere per un hobbista.. e motivo di sodisfazione personale.. Dopo si può anche passare anche ad un altro PIC.
__________________ |
|
|
|
|
|
#16 | |
|
Registered User
|
Quote:
Ho provato a mettere la resistenza che dici tra il pic e il txb. ma il meglio che riesco a fare è in uscita dal txb0104 è 0-3v. Tanto vale non usarlo. |
|
|
|
|
|
|
#17 | |
|
Mod insubrico
|
Quote:
|
|
|
|
|
|
|
#19 |
|
Mod insubrico
|
Non capisco.. Se ti chiedo di mettere una resistenza e di misurare ai due capi é per vedere se effettivamente il pin del PIC é programmato correttamente. Se dal lato txb0104vedi un segnale da 0 a 3V e dal lato PIC vedi solo 5V, allora ovviamente il tuo segnale non passa e probabilmente il PIC su quel pin é programmato in uscita...
__________________ |
|
|
|
|
|
#20 |
|
Registered User
|
Codice:
//il pin RC7 è multiplexato. Qui imposto il MUX sul canale 8 e inizializzo l'usart hardware con la libreria usart.h
Set_RS232(8);
while(1){
//CONTROLLA SE é ACCESO IL CELL E SE RISPONDE 0 AL COMANDO AT
WriteUSART('A'); //SCRIVE SU USART
Delay10KTCYx(lag); //PAUSA TRA UN CHAR E L'ALTRO
WriteUSART('T');
Delay10KTCYx(lag);
WriteUSART(0x0D);
while(!DataRdyUSART()); //ATTENDE DATI
data = getcUSART(); //LEGGE I DATI
data = getcUSART();
}
Sotto metto l'apertura dell'usart Codice:
OpenUSART( USART_TX_INT_OFF & //INTERRUPT TX DISABILITATO USART_RX_INT_OFF & //INTERRUPT RS DISABILITATO USART_ASYNCH_MODE & //ASINCRONO USART_EIGHT_BIT & //8 BIT USART_CONT_RX & //RICEZIONE CONTINUA USART_BRGH_LOW, //BASSA VELOCITA' 32 ); // //9600 BAUD |
|
|
|
![]() |
Per le vostre immagini su questo forum potete usare PcTunerUp! Iscriviti gratuitamente alla nostra newsletter. |
| Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 visitatori) | |
| Strumenti Discussione | |
| Modalità Visualizzazione | |
|
|