Vai al contenuto
PLC Forum


Salvataggio Su Sd Con Pic - Salvare file excel o testo


Grandegiove

Messaggi consigliati

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!!!

Modificato: da Grandegiove
Link al commento
Condividi su altri siti


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

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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...

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...