Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pic32 Micro e sd
17-01-2013, 11:04 AM, (This post was last modified: 17-01-2013, 03:26 PM by psteve.)
#1
Pic32 Micro e sd
Ciao a tutti,
Sto facendo alcune prove con questa scheda, e iniziano i problemi.

La mia idea era di creare un dalatalogger semplice semplice, che leggesse ogni 5 secondi un valore analogico.

Ho cercato di usare gli esempi ma non ne vengo a capo Huh.


In pratica se carico gli esempi per la funzione cdc, usando Hyperterminal settato a 9600 tutto ok.

Se carico gli esempi olimex per la Sd o quelli che ho trovato sul forum, non ricevo nulla e sulla scheda non viene scritto nulla.

Utilizzo la versione 399 e windows XP.

Qualche idea o esempio sicuramente funzionante???

Inoltre a cosa servono le funzioni debug e serial dell'ide???

Steve
Reply
18-01-2013, 08:28 AM, (This post was last modified: 18-01-2013, 08:29 AM by moreno.)
#2
RE: Pic32 Micro e sd
Ciao

Per prima cosa butta via la versione 3 e passa alla 4 che funziona decisamente meglio.

Il problema e la forza dei Pinguino e che sono polimorfici per cui ne trovi per ogni esigenza, questo però crea un po' di problemi con gli esempi.

Per le mie applicazioni ho ho selezionato appunto il PINGUINO32-MICRO che a prezzi ridicoli mi da una potenza di calcolo spaventosa.
Qui trovi il mio primo programma scritto per tale CPU, proprio un datalogger a 16 canali (usa 2 AD a 8 canali esterni) e trasmette le letture su porta seriale.

Per la SD c'è un po' di confusione fra le 2 schede MICRO e ODT che hanno il PIN di CS in posti differenti.
Al momento sono un po' indietro nel suo uso ma ho scritto questo semplice esempio perfettamente funzionante.

Code:
#define CS_SD_PIN   40

typedef struct
{
  char Valo[16];
} ConfData;

int ReadConfigBin(char * filename,void * Buf,u16 BufSize)
{
  SD_Error err;
  SD_File file;
  u16 LenR;
  
  char Buf1[100];
  
    if (! SD.mount(CS_SD_PIN))
   return (-1);
    if    ( (err = SD.open(&file, filename, FA_OPEN_EXISTING | FA_READ)) != 0)
   {
    SD.unmount();
    return (-2);
   }
  if (file.fsize != BufSize)
   {
    SD.close(&file);
    SD.unmount();
    return (-3);
   }
    err = SD.read(&file,Buf, BufSize, &LenR);
  SD.close(&file);
  SD.unmount();
  if (LenR != BufSize)
   return -4;
  if (err != 0)
   return -5;
  return (0);
}

int WriteConfigBin(char * filename,void * Buf,u16 BufSize)
{
  SD_Error err;
  SD_File file;
  u16 LenW;
  
  char Buf1[100];
  
    if (! SD.mount(CS_SD_PIN))
   return (-1);
    if    ( (err = SD.open(&file, filename, FA_OPEN_ALWAYS | FA_READ | FA_WRITE)) != 0)
   {
    SD.unmount();
    return (-2);
   }
    err = SD.write(&file,Buf, BufSize, &LenW);
  SD.close(&file);
  SD.unmount();
  if (LenW != BufSize)
   return -4;
  if (err != 0)
   return -5;
  return (0);
}





void setup()
{
}


void loop()
{
    int Risu;    
ConfData ConfDataBuf;
char buf[17];

    // wait for RETURN key to start
    CDC.println("Press RETURN to start.");
    while (CDC.getKey() != '\r');
Risu = ReadConfigBin("config.bin",(void *) &ConfDataBuf,sizeof(ConfData));
CDC.printf("Risu=%d\n\r", Risu);
strncpy(buf,ConfDataBuf.Valo,16);
buf[16] = 0;
CDC.printf("Data=%s\n\r", ConfDataBuf.Valo);
ConfDataBuf.Valo[10]++;
if (ConfDataBuf.Valo[10] > '9')
  ConfDataBuf.Valo[10] = '0';
Risu = WriteConfigBin("config.bin",(void *) &ConfDataBuf,sizeof(ConfData));

}

Recentemente ho scritto un paio di programmi che trovi qui e qui che fannp pesante uso dei Timer e degli interrupt che sono IMPORTANTISSIMI per le nostre applicazioni.


Quelle funzioni svolgono lo stesso lavoro di Hyprterminal, funzionavano bene nella versione 3xx ma ora hanno qualche problema.


Ciao Ciao, Moreno
Reply
18-01-2013, 09:48 AM,
#3
RE: Pic32 Micro e sd
Grazie Moreno !!!

Finalmente la sd vive Big Grin.

La X4 l'ho scaricata usando vsn, ma non ho trovato "pinguino exe" quindi ho sovrascritto la x3.

Sembra funzionare, e' corretto?

Ho scelto Pinguino Micro32 per il processore, la sd, le dimensioni e ovviamente il costo Big GrinBig GrinBig GrinBig Grin e grazie ai tuoi esempi, ora comincia il divertimento Smile

Steve
Reply
18-01-2013, 11:04 AM,
#4
RE: Pic32 Micro e sd
Ciao

Ah non saprei mai avuto l'EXE, io lancio sempre pinguino.py.

Vedo che abbiamo avuto le stesse motivazioni nella scelta 8<))) e poi così zoccolato in un attimo si fa lo stampato per qualsiasi applicazione.


Ciao Ciao, Moreno
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)