Potenziometro digitale

9 Anni 5 Mesi fa #21 da vito1984
Risposta da vito1984 al topic Potenziometro digitale
Ciao a tutti,
utilizzando il potenziometro digitale mcp41010 mi sono accorto che per programmarlo tramite spi occorre un segnale di clock a 16 impulsi, poiché bisogna inviare due byte, uno di comando e uno dati.
Se uso un pic16f877a per pilotare il potenziometro la modalità spi del pic permette di trasmettere 8 bit con un segnale di clock a 8 impulsi. Devo cambiare microcontrollore, utilizzandone uno che supporti la modalità di trasmissione a 16 bit?

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • vito1984
  • Junior Member
  • Junior Member
Di più
9 Anni 5 Mesi fa - 9 Anni 5 Mesi fa #22 da alfa75
Risposta da alfa75 al topic Potenziometro digitale

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • alfa75
  • Avatar di alfa75
  • Platinum Member
  • Platinum Member
Di più
9 Anni 5 Mesi fa - 9 Anni 5 Mesi fa #23 da firstcolle
Risposta da firstcolle al topic Potenziometro digitale
Non si riescono ad inviare 2 byte via SPI in successione? Mandi il primo byte, attendi che venga inviato e mandi il secondo byte...

altrimenti ti puoi fare tu un semplice loop per gestire l'invio in SPI e non usare il protocollo integrato al PIC (se non ricordo male io avevo fatto così per usare i potenziometri digitali)
Ultima Modifica 9 Anni 5 Mesi fa da firstcolle.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • firstcolle
  • Avatar di firstcolle
  • Platinum Member
  • Platinum Member
Di più
9 Anni 5 Mesi fa #24 da vito1984
Risposta da vito1984 al topic Potenziometro digitale
Grazie a entrambi per la risposta,
praticamente ho risolto mandando due byte in successione, con un codice del genere.

spi_start ();
int command_byte = 17;
spi_start ();
int data_out_3 = 4;
spi_write (command_byte);
spi_write (data_out_3);

Così mi funziona...

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • vito1984
  • Junior Member
  • Junior Member
Di più
9 Anni 5 Mesi fa #25 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Potenziometro digitale
Effettivamente per inviare 16 bits basta inviare due byte.

In alcuni casi potrebbe non funzionare, infatti dipende dalla modalità SPI supportata dallo Salve.

In alcuni casi e' necessario portare CS alto, prima di riportarlo nuovamente a livello basso e inviare un nuovo byte (CS attivo basso).

Maggiori dettagli li puoi trovare nel Tutorial sul protocollo SPI .

Saluti,

Mauro
Ringraziano per il messaggio: vito1984

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
Moderatori: Mauro LaurentiStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login