walterword Inserita: 19 agosto 2004 Segnala Inserita: 19 agosto 2004 uso i Pcf per fare pratica con I2C , e poi per lasciare le porte tranquille nel senso che una porta puo avere la seriale , oppure un pwm , oppure un ingresso veloce quindi mi troverei ad avere poche possibilita di avere tutti gli 8 bit della porta a disposizione Lo so che si puo scrivere un byte sulla porta e mascherare i bit interessati , ma .......e' una fissa che io Certo non e' un discroso commerciale il mio , se dovessi stare negli spazi e nei costi usereile porte del micro fino all'osso , ma per didattica e anche perche avevo un paio di pcfxxxx a lazzaronare in giro per i cassettini della roba elettronica ho voluto usarli PORCA miseria , per il Driver enable ho usato l'uscita PG6 che nella demoboard e' utilizzata dal led , posso farlo ??e poi se le uscite sono a 3.3 V come posso dare i +5V al DE del max485 ???
dlgcom Inserita: 19 agosto 2004 Segnala Inserita: 19 agosto 2004 e poi se le uscite sono a 3.3 V come posso dare i +5V al DE del max485Tranquillo Bro' , le entrate del max 485 sono cmos compatibili ovvero lavorano da 2volt in su'.E le entrate del rabbit sono 3,3v ma compatibili con 5v quindi sei a posto.Per il led non hai problemi , non assorbe corrente , quindi puoi usarlo ti fa anche comodo per sapere quando trasmetti.
walterword Inserita: 19 agosto 2004 Segnala Inserita: 19 agosto 2004 si Luca in effetti un led per la trasmissione ed 1 per la ricezione non guastano fiiiiiiiiiiiuuuuuuuuuuuumeno male , allora finisco di saldare i componenti fissi , a vita , sulla motherboard e poi vedo di far girare il programmino esempio Rs485master.cMagari lo schiaffo in un bel costate (di filetto ) , ed in un altro costate (di manzo ) ci piazzo il ciclo while che aspetta i byte di ritorno dallo chiavo PIC
walterword Inserita: 19 agosto 2004 Segnala Inserita: 19 agosto 2004 ho finito il montaggio piccoli problemi , un paio di cortocircuiti , risolti ho caricato un programma adesso sto adeguando , in base alla libreria I2C.lib del Rabbit , quella che avevo scritto per il PICi led sono accesi tutti e 8 , i dip collegati , il bus I2c non e' piu in corto e il max485 e' li che aspetta bene
walterword Inserita: 20 agosto 2004 Segnala Inserita: 20 agosto 2004 (modificato) E' CON GRANDE GIOIA CHE ANNUNCIO LA BUONA RIUSCITA DELLA PRIMA FUNZIONE SU I2C write_PCF8574(0x00,valore);funziona che e' una meraviglia l'ho scritta in modo speciale per scrivere su PCF8574 , linkandomi alla libreria gia fatta del Rabbit I2C.lib , bene bene bene ciao a tutti walter Modificato: 20 agosto 2004 da walterword
dlgcom Inserita: 20 agosto 2004 Segnala Inserita: 20 agosto 2004 Studiando il Rabbit , ho scoperto con disappunto... che ha un sacco di seriali , ma tutte uguali .. o quasi.Per esempio il PIC 16f877 876 , ha un modulo hardware per comunicare via I2C e SPI.Invece il Rabbit ha solo spi , ma I2C e' solo via software ..... visto che c'erano......
walterword Inserita: 20 agosto 2004 Segnala Inserita: 20 agosto 2004 saltan fuori gli altarini bisogna quindi analizzare bene i modi di utilizzo in I2C , ho modificato la libreria , e devo dire che non fa una piega Comunque credo prima di usufruire a pieno del Rabbit passi un po di tempo ma vedremocia walter
dlgcom Inserita: 20 agosto 2004 Segnala Inserita: 20 agosto 2004 Walter hai visto che c'e' gia' una libreria in modbus per Rabbit?Penso che non sia difficile far comunicare insieme Rabbit e Pic.
walterword Inserita: 21 agosto 2004 Segnala Inserita: 21 agosto 2004 no , questa libreria non l'ho ancora vista se riesco vorrei nel week end a far comunciare il rabbit con i 2 slave PIC anche semplicemente giusto per provare la comunicazione poi al limite implementare il modbus si puo fare , e' questione di processare i buffer ric e trasm.devo ancora finire la libreria per I2C per leggere dal PCF8574ciao walter
walterword Inserita: 22 agosto 2004 Segnala Inserita: 22 agosto 2004 signori L' I2C e' nelle mie mani leggo e scrivo da Rabbit il device PCF8591 ( 4 in analog + 1 out analog)e leggo e scrivo da Rabbit il device PCF8574 (8 output digital oppure 8 input digital oppure misti )domani provo l'RS485 tra Rabbit e 2 PIC , poi sbatto dentro il tcp\ip tra Rabbit & PC e dichiaro concluse le mie prove , nonche il mio mini progetto "estivo " Cosi , tra un lavoro e l'altro , potro dedicarmi nei particolari di rabbit e PIC , e vi annuncio che gia c'e' qualcosa che bolle in pentola ciao walter
bigalex Inserita: 22 agosto 2004 Segnala Inserita: 22 agosto 2004 Ciao Walter ,sto seguendo questa discussione da "esterno" poichè ho cominciato da poco ad approcciare i microprocessori e permettimi di farti i complimenti per la tua costanza e forza di volontà nel perseguire gli obiettivi che ti sei prefisso.A ferragosto mi sono collegato al forum e ho visto sia te che Dario attivi in una giornata insolita per le attività di concetto .Ho una (ne avrei molte) domanda da farti e cioè è stato difficle implementare la libreria per il bus I2C o meglio l'hai dovuta scrivere integralmente oppure avevi già qualcosa a livello di struttura software per poterla scrivere ?Il bus I2C mi sembra qualcosa di veramente interessante per interfacciare i micro con l'esterno e ho inoltre visto che c'è una ampia gamma di integrati che mettono a disposizione funzioni di I/O veramente potenti .Per una serie di motivi stò sperimentando (o meglio cercherò) di interfacciare su I2C un micro Atmel serie AVR (8 bit) con chip per ottenere delle funzioni di I/O analogico ed spansione di I/O digiltale e quindi mi interessa la tua esperienza su questo tipo di bus .Dario mi a sconsigliato di intraprendere l'argomento micro vista la mia inesperienza sull'argomento , apprezzo il consiglio ma volevo comunque verificare se sono ancora in condizioni cerebrali per poter apprendere un argomento nuovo, tenuto conto che riuscissi ad imparare solo il 5% di quello che hai imparato tu dovrei ruscire nell'impresa.Grazie per ogni tuo suggerimento e consiglio .bigalex
Dario Valeri Inserita: 22 agosto 2004 Segnala Inserita: 22 agosto 2004 ciao volevo solo dire che bisogna cominciare dall'inizioper quanto concerne i2bus e' molto semplice leggere e scrivere .scaricando il pdf di qualche chip e2bus trovi tutte le info che ti servono.qualche micro ha gia' dei pin dedicati a questo ed i registri adeguati dentro a se'.io per la mia scheda ho preferito svilupparmi la routin da solo .ciaodariop.s. che tools usi per atmel??
walterword Inserita: 22 agosto 2004 Segnala Inserita: 22 agosto 2004 (modificato) ciao a tutti x bigalex : ho iniziato circa un mese questa avventura coi Micro , iniziando con PIC e poi Rabbit del quale avevo acquistato il kit completo l'anno scorso .Ho faticato molto e dedicato motle ore a questo progetto , studiando , girando in internet ectHo iniziato a tribulare sul come caricare un programma nel Pic , poi la seriale che mi ha assillato tutta la settimana di ferragosto , poi I2c ect ect I2C : trovi le specifiche del protocollo in alcune versioni di studi scolastici superiori o universitari anche in italiano ouure puoi scaricarti tranquillamente le specifiche complete in inglese Ogni device che supporta tael protocollo (bus) ha comunque nel suo datasheet una tetica ma chiara spiegazione sui passaggi e su come gestire il tutto .I micro hanno gia delle librerie per poter utilizzare le funzioni di base , scl_high() , start() che non e' altro che unasequenza di scl_high() , sda_high ()Il prtocollo ti dice praticamente tutto Se guardi la libreria del Rabbit relativa al I2C potrai renderti conto di come scrive le funzioni di start(), di linea_clock o dati alta p bassa ect Poi in base al device devi mettere insieme queste funzioni ottenendo il risultato della tua bella funzione finale richiamabile da codice .ti posto un esempio grezzo delle libreria che ho scritto per il PIC #define SDA_PIN 0x07.4#define SDA_DIR 0x87.4#define SCL_PIN 0x07.3#define SCL_DIR 0x87.3void i2c_high_sda(void){ // scritta in assembly per fare un po di pratica #asm BSF SDA_DIR #endasm }void i2c_low_sda(void){ //qua setto la direzione della porta precedentemente assegnata da macro (in alto ) e l'uscita #asm BCF SDA_DIR BCF SDA_PIN #endasm delay_10us(5);}void i2c_high_scl(void){ // settando cosi la direzione setto un'alta impedenza #asm BSF SCL_DIR #endasm // delay_10us(5);}void i2c_low_scl(void){ #asm BCF SCL_DIR BCF SCL_PIN #endasm // delay_10us(5);}void i2c_start(void){ i2c_low_scl(); // lo start consiste nel portare bassa la linea clock , i2c_high_sda(); //alta la linea dati i2c_high_scl(); //alta la linea clock i2c_low_sda(); // bassa la dati i2c_low_scl(); // bassa la clock , cosi il device remoto (slave) riconosce lo start da parte del master //cosi come da grafici del protocollo }byte i2c_in_arrivo(void){ byte i_byte, n; i2c_high_sda(); for (n=0; n<8; n++) { i2c_high_scl(); if (input(PIN_C4)==1) { i_byte = (i_byte << 1) | 0x01; //qua vado a generare il byte in base ad ogni bit che ricevo durante } // lo stato alto della linea di clock else { i_byte = i_byte << 1; } i2c_low_scl(); } return(i_byte); // e lo restituisco }i dati sono ritenuti buoni quando la linea di clock e' alta , non a caso e' un protocollo seriale sincrono cioe sincronizzato dalla linea di clock Poi ci sono altre informazioni che noterai dalle specifiche Insomma piu facile a farsi che a dirsi Spero di aver reso l'idea ciao walter Modificato: 22 agosto 2004 da walterword
walterword Inserita: 23 agosto 2004 Segnala Inserita: 23 agosto 2004 (modificato) x Lucasembrerebbe che ci sia anche la possibilita di conflitti tra la porta parallela A ed F Consigliano di configurare la porta A come ingressi per poter usufruire delle piene funzionalita della porta F ..se ho captio bene senti ma quella libreria del modbus dove l'hai trovata ? in the folder samples i didn't found that sample Che compilatore hai ?io sono rimasto al Dynamic C Special Edition V 7.33TSE3hai per caso il V8.1 ? ciao walter Modificato: 23 agosto 2004 da walterword
bigalex Inserita: 23 agosto 2004 Segnala Inserita: 23 agosto 2004 Grazie Walter, intanto vedo di comprendere quello che mi hai gentilmente postato e di documentarmi doverosamente sulle specifiche di protocollo, infatti di documentazione (in inglese) su I2C ne ho trovata in quantità industriale .Nello specifico dispongo di una scheda con interfacce ethernet e seriale a bordo, che mette a disposizione dei pins di I/O (15) che possono essere gestiti dall'utente andando ad integrare in assembler del codice per usufruire di queste risorse .Il micro dispone di 8KB di memoria programma , ma solo 1KB è disponibile all'utente poichè i primi 7KB sono già occupati dalla gestione della porta ethernet (protocolli HTTP SMTP etc.).Il software di sviluppo deve generare il file assembler e passa attraverso un compilatore che devo ben comprendere inquanto tutta la documentazione è in inglese e non sempre chiara a livello procedurale, ma credo che occorra appendere le routine software utente (in assembler) per poter fruire del micro .La mia idea è quella di poter leggere/scrivere dal campo quache I/O , ma poichè le funzioni analogiche non ci sono volevo passare al bus I2C per estendere gli I/O del micro digitali e/o analogici .Ho visto sommariamente la struttura del micro Atmel serie AVR (AT90S8515) e mi pare potente (esecuzione di ogni istruzione in un solo ciclo macchina) sia dal lato hardware che software , è sempre un RISC ma ha comunque un set istruzioni completo .Mi permetto di seguire comunque questa discussione come "esterno" e vi ringrazio per la vostra disponibilità .bigalex
walterword Inserita: 23 agosto 2004 Segnala Inserita: 23 agosto 2004 (modificato) tieni in considerazione che la libreria I2C che ho scritto non usufruisce di alcuna seriale sincrona hw , ma software .quindi puoi usare i pin che vuoi a prescindere da quelli predisposti per la sua gestione hw.La stessa cosa dicasi per la seriale rs232Se il micro dispone di una gestione hw , interrupt ect , puoi anche qui gestirla via software con i pic che vuoi basta che ti leggi le specifiche rs232 per sapere le tempistiche per trasmettere un bit piuttosto che riceverlo se e' il bit di start o un bit dato .Certo se lo fa l'hw e' meglio , anche per un discroso di risorse ciao walter Modificato: 23 agosto 2004 da walterword
dlgcom Inserita: 23 agosto 2004 Segnala Inserita: 23 agosto 2004 Ciao Walter ,Complimenti per i risultati.Io ho aggiornato il C alla versione 8.61 disponibile sul sito ufficiale .Anche la libreria la trovi nel forum ufficiale , ma te la sto' mandando per e-mail.Non e' per rabbit 3000 ma facilmente adattabile.Per la porte A F c'e' un bug che ne impedisce il corretto funzionamento , ma solo in certe condizioni, pero' devo rileggere il manuale per sapere quali sono.
walterword Inserita: 23 agosto 2004 Segnala Inserita: 23 agosto 2004 ciao fratelloho dato un'occhiata al sito del rabbit solo che c'e' un po di confusione , come del resto nei file pdf della guidacioe dici che allora si puo scaricare tranquillamente la versione aggiornata avendo la v.7.33 ??? se ti va postami il link esatto che lo scarico subito ciao e graziewalter
walterword Inserita: 23 agosto 2004 Segnala Inserita: 23 agosto 2004 ok ho trovato il sito giusto nel momento in cui mi chiede la mia attuale versione , vedo nella list box arrivare fino alla 7.31 mentre io ho la 7.33 del dynamic C special edition Comunque ho scaricato lo stesso i 15 mega e passa della versione V8.61 attendo ulteriori info , Luca, non vorrei combinare qualche stronzata per i manuali pdf , quali mi consigli ?ma il file v8.61 , cioe lo lancio tranuillamente e lui si installa tenendo in considerazione la versione vecchia?oppure e' libero ?
walterword Inserita: 23 agosto 2004 Segnala Inserita: 23 agosto 2004 ho spedito adesso il talloncino che era nella scatola del kit con i niei dati , oltre alla registrazione on-lineConoscendo le poste italiane mi sa che non arrivera nemmeno a milano Ho messo anche il francobollo giusto tutto questo perche non ho il codice che mi chiede in fase di installazione
dlgcom Inserita: 23 agosto 2004 Segnala Inserita: 23 agosto 2004 Nella scatola del kit c'era un cartoncino arancio evident dove c'e' scritto il serial number del compilatore.Con quello puoi aggiornare alla versione nuova , pero' io avevo gia la versione 8 quando ho comprato il kit..Non so' se lo stesso codice della 7 funziona...
walterword Inserita: 23 agosto 2004 Segnala Inserita: 23 agosto 2004 io ho trovato un cartoncino bianco , prefrancobollato per gli States , da affrancare in caso contrariodove chiedevano gli interessi e le applicazioni e dove era stato acquistato il kit sopra c'e' scritto di spedirlo per eventuali aggiornamanti boh
dlgcom Inserita: 23 agosto 2004 Segnala Inserita: 23 agosto 2004 Anche nel mio c'era questo cartoncino , ma anche quello arancio che ti dicevo.Non so' se la versione SE era libera e la 8 invece no' .Confermo che per installare la 8 mi chiedeva questo codice e con lo stesso ho installato la nuova versione.Un appunto , la nuova versione si installa senza cancellare la vecchia , io per un po' ho lasciato le due versioni nel pc per poi disinstallare la 8.31 .
walterword Inserita: 23 agosto 2004 Segnala Inserita: 23 agosto 2004 piu che altro per l'editor magari la V 8 .xx era piu dinamica La V7.33 ti sembra di lavorare con il block notes di windowsnon puoi nemmeno usare la rotellina del mouse per scorrere e i comandi copia & incolla sono solo via tastieraCioe il CCs PCM e' molto meglio come editor va be ...pazienza bisognerebbe vedere quanto costa e quali sono le prassi di installazione della versione 8.31 per poi arrivare alla V8.61 , non so se mi spiego ciao walter
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora