Transceiver powerline ST7540,aiuto urge

ciao,chiedo aiuto a qualcuno che conosca il componente

il diffuso trx nonmi lavora correttamente, su TXout riesco ad avere un pò di segnale,ma mi va continuamente in current limit in concomitanza col livello 0 sul pin TX/RX

in pratica quando il TX è acceso è automaticamente in current limit.A meno che io disalimenti lo stadio di potenza a 12V,allora il segnale su TXout aumenta anche di livello. Altrimenti lo stadio di potenza commuta dal +12 a 0V in sincronia col segnale TX/RX

Faccio presente che questo avviene anche se l'uscita è sospesa in aria,e se l'ingresso dello stadio di potenza è aperto,o collegato a massa invece che a TXOUT.

Ho usato i valori che ci sono nell'AN2451

formatting link

Non ho configurato nessun registro,trasmetto in continuazione un solo char alla volta a 2400bps,ogni 100 ms,abbasso il pin TX/RX circa 5 ms prima di inviare il carattere,e lo rialzo dopo circa 5 ms che tutto il carattere è stato inviato,quindi sono ben lontanto dal Tx timeout. Uso lo stesso segnale TX/RX per resettare il watchdog e ripeto che non ho scritto nessun registro,per cui è tutto come di default La VDC e VDD sono collegate assieme a 5V

grazie per qualsiasi suggerimento

Reply to
blisca
Loading thread data ...

"blisca" ha scritto nel messaggio news:k53ku3$oqp$ snipped-for-privacy@speranza.aioe.org...

era rotto l'IC,probabilment eper cortocircuito in precedenti prove

per rendermene conto ho dovuto sostituirlo,cosa che ho rimandato molto per via della delicatezza del mio PCB fatto con metodo stira e ammira

grazie perl'attenzione

Reply to
blisca

"blisca" ha scritto nel messaggio news:k55v12$6oo$ snipped-for-privacy@speranza.aioe.org...

Che velocita' di trasferimento dati eriesci ad ottenere da trasmitente a ricevente?

Reply to
RobertoA

"RobertoA" ha scritto nel messaggio news:k5dt2g$m98$ snipped-for-privacy@tdi.cu.mi.it...

spero proprio di arrivare ai 4800bps ,mi basta e avanza,e il fatto che l'ST7540 sia usatissimo in contatori di consumo elettrico non mi fa cercare altrove.

purtroppo sono ancora indietro,sono giusto riuscito a buttare fuori qualche dato in seriale e a leggere il contenuto del Control Register

non avendo altre UART ho dovuto buttarmi su SPI e la cosa non è comodissima per leggere

1)L'ST7540 è SPI master 2)invia clock quasi sempre,si blocca solo per un paio di cicli quando commuta REG/DATA o RX/TX per il tempo Tcc 3)a parte il carrier detect non ha un vero slave select

per leggere il Contr Register alla pressione di un pulsante di prova ho fatto così,si potrà fare meglio ,credo

in pratica abilito l'SPI in concomitanza col blocco del clock,appena riparte il clock l'SPI interrupt scatta nell'interrupt routine disabilito l'SPI appena ho letto il numero di byte(3 ) richiesto

vedilo come pseudo codice //******************************************************* void St7540_Init(void) { ST7540_DATA_MODE; ST7540_RX_MODE; SPI0_INTERRUPT_ENA; SPI0_DIS; } //******************************************************* void St7540_ReadControlReg(void) { myrd_spibuf_index =0;//azzero l'indice del buffer per i dati letti da SPI //il pin del clock è ancora un I/O generico ,attendo che commuti a 0 per accendere SPI while(PORTA_5); / /bloccante per un semiperiodo clock:=104 us a 4800 bps ST7540_REG_MODE ; SPI0_ENA; MARK_SPI7540_READ_REQ ; CLEAR_SPI7540_PRINT_REQ; }

//******************************************************* //nell'interrupt SPI //******************************************************* void InterruptSpiST7540(void) { if(SPI0STATUS & 0x80) { //PORTA_0=1; //uso questo pin per prova sync oscilloscopio Status = SPI0STATUS ; //Leggo lo status register if(ST7540_REG1_DATA0)myrd_spiST7540reg [myrd_spibuf_index++] = SPI0DATAREG; //se leggo control reg. else myrd_spibuf[myrd_spibuf_index++] = SPI0DATAREG; //se leggo dati mains }

if(myrd_spibuf_index==3) { SPI0_DIS; //PORTA_0=0; //uso questo pin per prova sync oscilloscopio CLEAR_SPI7540_READ_REQ ; MARK_SPI7540_PRINT_REQ; } } //******************************************************* comunque verificherò meglio cosa si riesce a fare,perchè l'ottimo e collaborativo Enrico Marinoni di Silica,mi ha fatto avere in prova diverse Demoboard ST7540. Tra l'altro è uno appassionato di elettronica,che sulle cose ci smanetta sopra e mi ha dato diverse dritte,oltre a quelle che ci sono sul suo sito

formatting link
,che ,non so come, riesce a trovare il tempo di aggiornare.Per chi non lo conoscesse contiene parecchio materiale su componenti ST,con riassunti ,codice ecc Unico rimpianto è non aver potuto partecipare all'annuale ST Day,anche se essendomi trovato da quelle parti. guardacaso nella pausa pranzo, ho potuto "assaggiare" di cosa si era trattato

Ci dedicherò un pò di tempo questa settimana,se hai domande o prove da suggerirmi...

Reply to
blisca

"blisca" ha scritto nel messaggio news:k5gh5l$3ej$ snipped-for-privacy@speranza.aioe.org...

Dici che si trova installato su molti contatori, ma parliamo di contatore Enel ? Mi interessa molto la cosa perche' a breve dovrei averne bisogno, spero che un progetto che sto seguendo si evolva ed utilizzi come comunicazione il cavo 220 Gia' i 2400/4800 baud potrebbero bastare se la comunicazione si dimostrasse robusta abbastanza specie per trasmissioni su linee disturbate Sito interessante, e nominativo che mi salvo subito Grazie RobertoA

Reply to
RobertoA

"RobertoA" ha scritto nel messaggio news:k5gj6f$g06$ snipped-for-privacy@tdi.cu.mi.it...

con che micro prevedi di usarlo?

Reply to
blisca

"blisca" ha scritto nel messaggio news:k5jolh$1qg$ snipped-for-privacy@speranza.aioe.org...

18F46K22
Reply to
RobertoA

"RobertoA" ha scritto nel messaggio news:k5k4jl$1qe$ snipped-for-privacy@tdi.cu.mi.it...

aahh 18F46,conosco il 18F24 della stessa famiglia e datasheet,ma non ci ho mai lavorato in SPI slave

Reply to
blisca

"blisca" ha scritto nel messaggio news:k5jokh$1o7$ snipped-for-privacy@speranza.aioe.org...

lo dico nel caso ci fosse uno sbadato come me

mi ero sempre dimenticato di una cosa ovvia, e questo fatto pareva non avere effetto finchè non ho provato certe condizioni

se si comunica in SPI,che è per sua natura una comunicazione sincrona,

****ricordarsi di mettere subito a 0 il bit 14 del registro di controllo,cribbio**** perchè altrimenti l'ST7540 per i dati resta in modo asincrono,e succede che il clock si ferma dopo circa 150 ms di trasmissione sulla rete elettrica

lui di default è asincrono,per poter essere utilizzato al volo senza scrivere niente nel control register,ma la comunicazione col control registe è solo sincrona per cui se uno trasmette una breve stringa ogni tanto,magari in concomitanza con un intervento umano,tipo pressione su un pulsante,non se ne accorge ma se si prova a trasmettere la breve stringa ogni 100ms dopo una paio il clock sparisce e riprende dopo circa un secondo,e il povero microcontrollore SPI slave senza clock resta lì ad aspettare

Reply to
blisca

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.