ADS7835 SPI con PIC18F2550

10 Anni 5 Mesi fa #1 da Fausto
ADS7835 SPI con PIC18F2550 è stato creato da Fausto
Ciao a tutti, mi sono dedicaato a cercare di comunicare ancora una volta con la SPI del convertitore ADS7835.




da quello che posso capire, quando CS passa a 0, il convertiore passa dalla stato di sample a quello di hold. il dato mi viene fornito dal secondo clock in poi, quindo il dato che ricevo con il primo cklok dovrei buttarlo.

la ho provato tutti i casi (i 4 modi della SPI piu' i due casi del bit SMP, ma nulla: a tensione negativa mi restituisce risultati poco sensati.
Per qualsiasi suggerimento ringrazio anticipatamente.
cosa sbaglio? questo è il mio programma:

#include <p18f2550.h>
#include <delays.h>
#include <stdlib.h>

#include <spi.h>

#pragma config FOSC = HS
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config PBADEN = OFF

#define CS LATBbits.LATB2
#define CLK LATBbits.LATB1
/*
OSC = HS set the oscillaor at high frequency
WDT = OFF disabilito il wdt timer
LVP = OxFF disable programming LVP
PBADEN = disable analog input
*/


void main (void)
{
int i=0, VAL;
unsigned char data=0x80;
unsigned char LSB=0;
unsigned char MSB=0;


//Setting I/O
LATA=0x00;
TRISA=0xFF;


LATB=0x00;
TRISB=0x00;

//RC6 input TX
//RC7 Output RX
LATC=0x00;
TRISC=0x00;

//Slave Select è nel Pin RB2 Output
//SCK Pin RB1 Output (il pic è il master)
//SDI pin RB0 è Input

TRISBbits.TRISB2=0; //Chip Select
TRISBbits.TRISB1=0; //SCK
TRISBbits.TRISB0=1; //SDI


CS=1;

SSPSTATbits.SMP=1;
SSPSTATbits.CKE=1;

//SSPCON1
SSPCON1=0b00000010;//FOSC/64
SSPCON1bits.CKP=1;
SSPCON1bits.SSPEN=1;

//OpenSPI(SPI_FOSC_64,MODE_11,SMPMID);
//OpenSPI(SPI_FOSC_64,MODE_01,SMPEND);
while(1)
{
CLK=0;
//CLK=0;
//con 20MHz 2us
Delay10TCY();

CS=0;

CLK=1;
CLK=0;

while(WriteSPI(data));
while(!SSPSTATbits.BF);

MSB=SSPBUF;

while(WriteSPI(data));
while(!SSPSTATbits.BF);

LSB=SSPBUF;

CS=1;


Delay1KTCYx(10);
}

CloseSPI();
Allegati:

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

  • Fausto
  • Avatar di Fausto
  • Premium Member
  • Premium Member
Di più
10 Anni 5 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic ADS7835 SPI con PIC18F2550
Ciao Fausto,

ti consiglio di fare delle misure con l´oscilloscopio.
Dalle immagini reali si risolve tutto.

Mi e´ capitato di fare il debug per un cliente e dal software si capisce sempre poco.
Con oscilloscopio e scheda tra le mani si e´ visto subito dove stava il problema.
...poi ci e´ voluto ancora del tempo per capire le impostazioni.
I diagrammi dell´oscilloscopio devono essere "uguali" a quelli del datasheet, almeno per quanto riguarda le transizioni.

Saluti,

Mauro
Ringraziano per il messaggio: Fausto

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
10 Anni 5 Mesi fa #3 da Fausto
Risposta da Fausto al topic ADS7835 SPI con PIC18F2550
Grazie Mauro, lo faro' il prima possibile dato che mi manca solo questo.
Ho dubbi sulla saldatura...

Nel caso riuscissi a farlo linko in modo che possa essere utile a qualcuno.

Tschiuss

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

  • Fausto
  • Avatar di Fausto
  • Premium Member
  • Premium Member
Di più
10 Anni 5 Mesi fa #4 da Fausto
Risposta da Fausto al topic ADS7835 SPI con PIC18F2550
avevo commesso un errore hardware...confermo che con l'oscilloscopio è un'altra cosa... da li si capisce anche perchè sul datasheet è consigliato utilizzare una resistenza di pull-down del segnale MISO.
A presto
Allegati:

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

  • Fausto
  • Avatar di Fausto
  • Premium Member
  • Premium Member
Di più
10 Anni 5 Mesi fa - 10 Anni 5 Mesi fa #5 da Fausto
Risposta da Fausto al topic ADS7835 SPI con PIC18F2550

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.

  • Fausto
  • Avatar di Fausto
  • Premium Member
  • Premium 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