× MSP430, Microcontrollori 16 bit Ultra Low Power

PCF8574A controllato da MSP430

12 Anni 6 Mesi fa #1 da borelg
PCF8574A controllato da MSP430 è stato creato da borelg

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.

  • borelg
  • Avatar di borelg
  • Elite Member
  • Elite Member
Di più
12 Anni 6 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: PCF8574A controllato da MSP430
Ciao,

non ho visto i singoli bit ma ti dico che tra gli esempi di Code Composer Studio per MSP430G2xx3 c'e' proppio un programma essenziale per PCF8574. Leggge 4 bit in ingresso e li rispedisce in uscita agli altri 4 bit.

Usa quello come esempio. Il programma e' compilabile sia per CCS che IAR quindi lo puoi riciclare completamente.
Per accedere all'esempio scarica l'ultima versione di CCS 5.2.
Vai al menu Help-> Welcome to CCS
Poi seleziona MSP430Ware nel Packages nella finestra che si apre.

Vai a device, seleziona MSP430G -> Code Examples -> MSP430G2x53

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 5 Mesi fa #3 da borelg
Risposta da borelg al topic Re: PCF8574A controllato da MSP430

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.

  • borelg
  • Avatar di borelg
  • Elite Member
  • Elite Member
Di più
12 Anni 5 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: PCF8574A controllato da MSP430
Ciao,

vorrei in primo luogo considerare la libreria esatta.

hai costruito l'hardware su millefori?

Potresti testare con PIC18 e la libreria per C18 che il tuo hardware funziona correttamente?
Attento alle due versioni di PCF8574A e non A.

Una volta che funziona con la libreria C18, sappiamo che l'hardware e' coretto.

Purtroppo fare un debug con nuovo hardware e software e' sempre complicato.

Se apri la libreria che ho scritto vedi anche la sequenza corretta per comunicare in lettura e scrittura con il PCF8574.

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 5 Mesi fa #5 da borelg
Risposta da borelg al topic Re: PCF8574A controllato da MSP430
Per un po' non mi potrò alzare da letto quindi l'hardware non posso provarlo... mi sono rotto una gamba :(
Comunque può darsi che l'errore sia nella procedura di comunicazione. Infatti nel datasheet c'è scritto:

I2C communication with this device is initiated by a master sending a start condition, a high-to-low transition on
the SDA I/O while the SCL input is high. After the start condition, the device address byte is sent,
most-significant bit (MSB) first, including the data direction bit (R/W). This device does not respond to the general
call address. After receiving the valid address byte, this device responds with an acknowledge, a low on the SDA
I/O during the high of the acknowledge-related clock pulse. The address inputs (A0–A2) of the slave device must
not be changed between the start and the stop conditions.
The data byte follows the address acknowledge. If the R/W bit is high, the data from this device are the values
read from the P port. If the R/W bit is low, the data are from the master, to be output to the P port. The data byte
is followed by an acknowledge sent from this device. If other data bytes are sent from the master, following the
acknowledge, they are ignored by this device. Data are output only if complete bytes are received and
acknowledged. The output data will be valid at time, tpv, after the low-to-high transition of SCL and during the
clock cycle for the acknowledge.
A stop condition, a low-to-high transition on the SDA I/O while the SCL input is high, is sent by the master.

Cioè basta mandare lo start condition, l'indirizzo con il bit R/W appropriato e se sono in write spedire le uscite, altrimenti aspettare che lui mi spedisca gli ingressi.
MI sbaglio?
Il fatto di utilizzare le porte come ingressi implica che prima io debba impostarli a livello logico "1" vero? A me sembrava che questa inizializzazione avvenisse di default all'accensione del componente, avevo capito male?
Grazie :)

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

  • borelg
  • Avatar di borelg
  • Elite Member
  • Elite Member
Di più
Moderatori: Mauro LaurentiMatteo Garia

Registrati al sito

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

Registrati al sito LaurTec.

Login