Pages: [1]   Go Down
Author Topic: Modificare velocità hardware SPI  (Read 551 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 6
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao ragazzi!
 vi chiedo aiuto perchè vorrei riuscire a ridurre il clock della porta SPI hardware su di un arduino uno.
L'uso che ne farei è con la libreria per tlc5940, vorrei abbassare la velocità di comunicazione per avere meno disturbi sul segnale.
In teoria Alex Leone in questo post (http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1218174457/196#196) spiegherebbe di andarsi a vedere la pagina 170 del datasheet (http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf) ma proprio non riesco a capire!!!
vi prego, datemi una mano:)))
Grazie infinite.
Luigi.
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 251
Posts: 21276
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quanto ne so io il TLC5940 non lo colleghi mica sulla porta SPI del ATmega, ma usi un protocollo tutto suo.
Ciao Uwe
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 6
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Intato uwe ti ringrazio come sempre del tuo interessamento smiley-grin

venendo al discorso......mmm..... non è proprio come dici tu, la libreria diciamo standard, usata da tutti (http://code.google.com/p/tlc5940arduino/) solo inizialmente utilizzava il bitbang dei valori (penso voglia dire il modulare direttamente gli output pin dell'arduino).
Ben presto proprio alex leone, lo sviluppatore, modificò la libreria per utilizzare l'hardware spi, ottenendo prestazioni piu elevate.


Nel mio caso ho montato i tlc separati tra loro di circa 1.5m e devo riuscire a farne comunicare 8 senza errori...
I segnali da portare sono 5 piu l'alimentazione, e la banda è nell'ordine dei 15 MHz mi pare.
Io sto facendo diverse prove e ho trovato che:
1) con un cavo semplice a 7 poli (5 segnale + 2 alimentazione) non schermato arrivo a connettere fino a 5 tlc.
2) un cavo a 7 poli intrecciati con schermatura unica intorno mi crea diversi disturbi, connetto solo 2 tlc.
3) un cavo a 7 poli intrecciati e schermati signolarmente mi crea ancora piu disturbi, neanche un tlc funziona.

Visto che sono un ignorante di teoria di segnali e scelta di cavi ho pensato di ridurre semplicemente la velocità ...

Nel link del post precedente lo sviluppatore della libreria  spiega (da quanto ho capito) che c'è un modo di dimezzare la velocità di trasmissione, cioè commentando la riga 327 del file Tlc5940.cpp :
"SPSR = _BV(SPI2X); // double speed (f_osc / 2)"

poi aggiunge che è possiile ridurre ancora la velocità andando ad agire sulla frequenza dello SPI dell'arduino.... ed è qui che mi sono bloccato!

purtroppo sono nel mezzo di un progetto importante e dovrei risolvere velocemente questo problema!
vi prego aiutatemi smiley-grin

PS: qualcuno sa spiegarmi i disturbi che ho riscontrato utilizzando le schermature?
bilanciando i segnali otterrei qualcosa? e che tipo di cavi dovrei usare?

grazie mille!!!
Logged

Pages: [1]   Go Up
Jump to: