
|

29-10-2010, 12.18.27
|
Nuovo robottaro
|
|
Data registrazione: 29-10-2010
Residenza: pistoia
Età : 35
Messaggi: 12
Potenza reputazione: 0
|
|
comunicazione dsp pic
Ciao a tutti, avrei bisogno di un piccolo aiuto..
Al momento ho un dsp utilizzato in un altro progetto non mio, su cui è presente un informazione ( che altro non è che un numero che varia nel tempo) che devo trasferire ad un pic per un mio progetto..
Posso modificare il programma che gira sul dsp, aggiungendo il codice necessario a trasferire l'informazione, però, poichè appunto questo dsp è usato per un altro progetto, ho a disposizione solamente un pin..
Considerando il fatto che come programmazione su dsp sono a zero, mi sapete indicare una via, non troppo complessa, per risolvere il mio problema??
Perchè ho dato un occhiata a qualche protocollo ma necessitano di più di un pin e dato che non conosco i dsp non vorrei perdere tempo su un qualcosa di complicato, quando magari potrei ricorrere ad una soluzione più semplice...
Grazie per l'aiuto...
|

29-10-2010, 17.01.37
|
 |
Robottaro master
|
|
Data registrazione: 06-07-2009
Residenza: Roma
Età : 40
Messaggi: 263
Potenza reputazione: 146
|
|
Con un solo pin (più la massa ovviamente) ti potresti inventare un qualunque protocollo per trasferire, comunque però un pic potente come quello ha a disposizione sia USART che I2C, che sono entrambi dei bus di comunicazione.
Ad esempio nell'I2C l'indirizzamento è ad 8 bit, questo vuol dire che potrebbero usare quello stesso I2C 256 diversi dispositivi, quindi probabilmente puoi usare uno dei bus del PIC.
|

29-10-2010, 17.54.50
|
Nuovo robottaro
|
|
Data registrazione: 29-10-2010
Residenza: pistoia
Età : 35
Messaggi: 12
Potenza reputazione: 0
|
|
con pic intendi il dsp, giusto?
Comunque ho dato un occhiata al datasheet del dispositivo ,che è il tms320f2808, ed effettivamente c è l' i2c.. Inoltre ho visto che ci sono anche:
- Serial Peripheral Interface (SPI) Modules (SPI-A, SPI-B, SPI-C, SPI-D)
- Serial Communications Interface (SCI) Modules (SCI-A, SCI-B)
che dovrebbero essere sempre delle seriali.. sai mica che differenza c'e tra le tre??
|

30-10-2010, 07.13.31
|
 |
Robottaro sostenitore
|
|
Data registrazione: 23-04-2004
Residenza: Roma
Età : 67
Messaggi: 1,418
Potenza reputazione: 350
|
|
Citazione:
Orginalmente inviato da 1q2w3e4r
con pic intendi il dsp, giusto?
Comunque ho dato un occhiata al datasheet del dispositivo ,che è il tms320f2808, ed effettivamente c è l' i2c.. Inoltre ho visto che ci sono anche:
- Serial Peripheral Interface (SPI) Modules (SPI-A, SPI-B, SPI-C, SPI-D)
- Serial Communications Interface (SCI) Modules (SCI-A, SCI-B)
che dovrebbero essere sempre delle seriali.. sai mica che differenza c'e tra le tre??
|
L'I2C è un bus a tutti gli effetti che gestisce più dispositivi, però ha bisogno di 2 fili: clock e dati, SDA e SCL. L'SPI ha bisogno di tre fili: clock, in e out (SCK, SDO e SDI), più un pin di chip select per ogni dispositivo in più, se il device è uno solo possono bastare tre fili. Ognuno ha le proprie caratteristiche di velocità, distanza e gestione master-slave, il modulo HW all'interno della tua MCU si occupa della gestione dei livelli secondo le caratteristiche specifiche di ogni bus, il tuo SW si deve occupare della gestione del protocollo a livello superiore.
Se i dati che ti servono sono solamente in uscita dalla MCU, l'unica soluzione è quella di usare una seriale classica, un modulo UART, come probabilmente è quello che chiami SCI. Usi solo il pin TX ed invii i dati in uscita senza alcun protocollo bidirezionale.
Questo sempre che i pin della tua MCU siano rimappabili e ti permetta di attivare la seriale ma usare il pin RX (che a te non serve in questo caso) per un'altra funzione.
|

30-10-2010, 10.13.05
|
Nuovo robottaro
|
|
Data registrazione: 29-10-2010
Residenza: pistoia
Età : 35
Messaggi: 12
Potenza reputazione: 0
|
|
ok, sono un pò a digiuno su questo argomento, ma adesso, grazie a voi, ho un minimo di inizio da seguire... Adesso devo solo sentire quale soluzione posso usare visto che il dispositivo è già usato per un altro progetto. Grazie di nuovo.. ciao...
|

02-11-2010, 20.35.25
|
Nuovo robottaro
|
|
Data registrazione: 29-10-2010
Residenza: pistoia
Età : 35
Messaggi: 12
Potenza reputazione: 0
|
|
ciao a tutti di nuovo... allora per la comunicazione dsp-pic uso i moduli uart.. Ho scritto una bozza di programmma da fare girare sul pic, il problema è che non so come fare sul dsp, avete per caso una bozza di programma, tanto per avere una linea guida??
|

03-11-2010, 12.07.15
|
 |
Robottaro master
|
|
Data registrazione: 06-07-2009
Residenza: Roma
Età : 40
Messaggi: 263
Potenza reputazione: 146
|
|
Specifica meglio di quale dsp si tratta: marca, modello, prestazioni, descrivi poi anche l'applicazione generica che vuoi realizzare, le specifiche di comunicazione sul bus, insomma se non dici che tipo di dsp devi programmare è dura aiutarti, nn credi?
|

03-11-2010, 13.38.44
|
Nuovo robottaro
|
|
Data registrazione: 29-10-2010
Residenza: pistoia
Età : 35
Messaggi: 12
Potenza reputazione: 0
|
|
si, hai ragione  ..
il dsp è il tms320f2808, questo è il datasheet:
http://focus.ti.com/lit/ds/symlink/tms320f2808.pdf
il programma dovrebbe dovrebbe trasferire un dato dal dsp al pic, tramite uart, in modalità asincrona alta velocità, dato di 8 bit..
tanto per darvi un idea, nel pic ho impostato i seguiti registri..
Codice:
#define BAUD 9600 //velocità a 9600 bit al secondo
#define FOSC 20000000 //quarzo a 20MHz
SPBRG = ((int)(FOSC/(16 * BAUD) -1))
//Registro RCSTA
RCSTAbits.SPEN=1; //abilita la porta seriale
//Registro TXSTA
TXSTAbits.TXEN=1; //abilita la trasmissione
TXSTAbits.SYNC=0; //modalita USART asincrona
TXSTAbits.BRGH=1; //modalità asincrona alta velocità
e questa funzione per leggere il dato (tramite un interrupt)
Codice:
unsigned char leggi() {
// recupero il byte ricevuto
while(!RCIF) // rimango in attesa finche il bit RCIF non è settato
continue;
return RCREG;
}
come ho detto mi basterebbe anche una bozza di codice tanto per capire come andare avanti...
grazie..
|
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
|
|
Strumenti discussione |
|
Modalità visualizzazioe |
Modalità lineare
|
Regole di scrittura
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Il codice HTML è Disattivato
|
|
|
Tutti gli orari sono GMT. Adesso sono le: 02.54.56.
Realizzazione siti web Cobaltica Foligno
|

|