Jump to content
PLC Forum


Sign in to follow this  
Grandegiove

Salvataggio Su Sd Con Pic - Salvare file excel o testo

Recommended Posts

Grandegiove

Buongiorno a tutti,

dovrei realizzare un'applicazione per il quale devo prevedere la possibilità di scaricare una serie di dati che possano in un secondo tempo essere gestiti da un PC.

Le soluzioni possibili sono quindi prevedre il collegamento USB col PC oppure il salvataggio su memoria USB oppure salvataggio su memoria SD o su altro supporto, etc..

Non avendo esperienza nel campo e volendo realizzarlo con un PIC la soluzione più semplice che mi è venuta in mente è quella di utilizzare la libreria di MikroC (o MikroC Pro) per salvare su memorie SD.

Vi chiedo quindi:

- qualcuno ha già operato in tal senso e potrebbe darmi qualche dritta sul come iniziare e soprattutto dirmi se ho optato per la scelta giusta (son sempre in tempo a cambiare) considerando il ristretto tempo che ho a disposizione per lo sviluppo?

- formattare il file salvato in formato excel è molto più complesso rispetto a salvare un .txt o solo questione di formattazione. In termini pratici che bisogna fare?

Qualsiasi opinione o aiuto pratico è ben accetto..

Grazie mille!

Buona giornata!!!

Edited by Grandegiove

Share this post


Link to post
Share on other sites

Grandegiove

Nota: pensavo di utilizzare PIC 18F

Share this post


Link to post
Share on other sites
RealTime

La creazione di un driver basso livello per SD e Micro SD card non è particolarmente difficoltoso. In rete trovi molto codice inerente a questi dispositivi.

Molto più complesso è il discorso del file system.

Se vuoi utilizzare la SD card come semplice memoria RAW per memorizzare uno o più file non hai bisogno di un vero e proprio file system, potresti semplicemente memorizzare i files in indirizzi prestabiliti (Allocazione Statica).

Se intendi creare un file system compatibile, ovvero con la possibilità di leggere le cartucce da PC allora ti devi orientare verso un vero e proprio file-system

Il più appropriato per una SD card è sicuramente il FAT32

In rete ci sono codici per suddetto FS, ovviamente sono abbastanza complessi

RealTime

Share this post


Link to post
Share on other sites
kappa47

Ciao.

Se vuoi interfacciarti con un PC devi per forza utilizzare un file system (FAT16 o 32: vanno bene entrambe).

Sul sito della Microchip trovi le librerie per le SD o MDD valide per PIC18, PIC24, dsPIC e PIC32.

Devi stare attento alle funzioni di base perche' si interfacciano (come collegamento fisico) ad una "PICtail Plus" (e' una demo board).

Se fai tu l'hardware ti basta mantenere gli stessi collegamenti.

Buon lavoro.

Share this post


Link to post
Share on other sites
RealTime

Viste le dimensioni "generose" delle SD Card FAT16 è un po' strettino.

FAT16 ammette un massimo 65525 data clusters per un totale di 33548800 bytes (33MBytes)

Se vuoi utilizzare tutto lo spazio disponibile usa direttamente FAT32

L'utilizzo di una SD Card NON IMPLICA obbligatoriamente l'utilizzo di UN FILE SYSTEM.

La SD Card può essere vista come un qualsiasi altro array di memoria, indirizzabile a piacimento. L'utilizzo di un FILE SYSTEM compatibile offre la possibilità di lettura/scrittura su altri sistemi

RealTime

Share this post


Link to post
Share on other sites
kappa47

Per RealTime.

Curiosità: da dove salta fuori "33548800" ?

Ciao.

Share this post


Link to post
Share on other sites
RealTime

Sì, calcolo errato

65525 = Numero massimo di clusters nella FAT16

65525 * CLUSTER_SIZE (2048/4096/8192)

Con cluster = 2048 Bytes (Tipico)

65525 * 2048 = 134195200 = 134Mbytes

Con cluster = 4096 Bytes

65525 * 4096 = 268390400= Circa 250 Mega

65525 * 8192 = 500Mb

etc ....

Il problema e' che manipolare clusters piu' grandi di qualche Kb e' oneroso per un micro di questa fascia ...

RealTime

Share this post


Link to post
Share on other sites
RealTime

Il calcolo di prima era inerente ad un cluster pari alla dimensione di un settore (512Bytes)

RealTime

Share this post


Link to post
Share on other sites
kappa47

Precisazione: fat16 = 65535 (non 65525).

Ciao.

Share this post


Link to post
Share on other sites
RealTime

No, e' corretto 65525

Agli albori dei tempi la Microsoft aveva lasciato alcuni "codici" speciali per segnalare le varie tipologie di cluster. Valori sopra 65525 non vanno utilizzati

I codici erano riferiti a :

- Cluster non utilizzabile (guasto)

- Cluster riservato ...

- etc ...

RealTime

Share this post


Link to post
Share on other sites
RealTime

... ed ovviamente c'era il codice riservato come marcatore di END-OF-CHAIN della catena dei clusters

RealTime

Share this post


Link to post
Share on other sites
kappa47

Non vorrei innescare una polemica...

I cluster, che tu possa utilizzarli o no, rimangono 65535.

Ciao.

Share this post


Link to post
Share on other sites
RealTime

No, nessuna polemica smile.gif questa e' la specifica FAT16

Anche se i 16 bits della FAT-ENTRY permettono 2^16 = 65535 la Microsoft aveva stabilito alcuni codici particolari per identificare particolari situazioni ed eventuali errori.

Questa e' la tabella come riportato da DOS FAT16 Specification 1981

0000h Available Cluster

0002h-FFEFh Used, Next Cluster in File

FFF0h-FFF6h Reserved Cluster

FFF7h BAD Cluster

FFF8h-FFFF Used, Last Cluster in File

Come vedi i possibili indici clusters vanno da 0002H-FFEFH con una possibilita' di indicizzare un massimo di 65517 clusters. Come tutte le cose, dato che la diffusione della FAT16 e' stata mondiale, si sono formati tutta una serie di dialetti ed errori formali.

L'unica certezza e' che NON E' POSSIBILE utilizzare tutto il dominio numerico di una entry a 16 bits per indirizzare i clusters

RealTime

Share this post


Link to post
Share on other sites
RESNIC

Buongiorno,

Con Microchip esiste la AN1045 che ti permette di creare una base di partenza per il tuo progetto.

Naturalmente è una mbase dio partenza funzionante, poi i ricami li devi mettere tu...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...