In questo articolo esamineremo le tecniche che permettono di usare le memorie esterne SD con i microcontrollori PIC. Tanti trucchi e segreti per utilizzare al meglio queste schede e memorizzare una grande quantità di dati su vari dispositivi.
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2853 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.
Ciao Giovanni
Come sempre la tua approfondita conoscenza del mondo dei PIC (e non solo) ti permette la scrittura di ottimi articoli.
Quest’ultimo è molto interessante, effettivamente in questo modo la capacità di memoria non è più limitata a quella interna, o a integrati esterni con capacità ridotta.
In più la loro intercambiabilità permette di connettersi poi a un PC senza bisogno di altre interfacce.
Ottima la presenza degli esempi di programma che sono una mano santa, che come dici tu nelle conclusioni permette di meglio comprendere il funzionamento delle varie istruzioni.
Per quanto riguarda l’adattatore, oltre ai due sistemi che hai elencato, proporrei questo:
http://www.robotstore.it/product/208/Adattatore-per-memorie-SD-MMC.html
E’ una via di mezzo, tra quello più sofisticato MikroElektronika, e quello più artigianale del pin strip modificato.
Un saluto
Adriano
Un altro bell’articolo sulle funzionalità disponibili per i PIC di oggi (visto che le SD sono ormai diventate di uso frequente).
Ho sempre lavorato poco con gli strumenti MikroElektronika, ma riconosco che rispetto al classico ambiente MPLAB e relativi strumenti di sviluppo, con essi i tempi di realizzazione sono molto più rapidi.
In Hi-Tech C, ad esempio, non c’è verso di poter disporre di librerie già pronte per la gestione di memorie flash su bus SPI (almeno fino a qualche tempo fa, ora non saprei…), ti dovevi studiare per bene il protocollo SPI e ricorrere ai registri interni del PIC per ogni singola operazione da/verso la memoria.
Altra considerazione importante è il differente range di tensioni di alimentazione (e, di conseguenza, di segnali logici) con cui spesso lavorano PIC e memorie esterne, come appunto le SD. Prima era pressoché scontato dover creare dei partitori di tensione per far scendere i segnali in uscita dal micro a 3.3 V (cosa diversa per quelli in uscita dalla scheda, nel qual caso il micro sa perfettamente riconoscere che un segnale in ingresso a 3.3V corrisponde al livello logico ALTO senza problemi); oggi ci si può semplificare la vita scegliendo semplicemente un micro della serie “LF” che lavora direttamente a tensioni più basse rispetto ai classici 5V, ad esempio 3.3 .
L’adattatore che ha suggerito Adriano lo comprai qualche anno fa. È valido e fá esattamente quello che è stato detto, ovvero da via di mezzo tra una soluzione di “battaglia” come quella che ci hai mostrato ed una più stabile, come quella della MikroElektronika. Personalmente ci avrei messo un jumper estraibile ed i vari partitori di tensione in SMD, così da rendere il modulo un po’ più “intelligente” o quantomeno adattabile. Per il resto mi sembra una valida soluzione, indicata soprattutto per chi deve lasciare la card nel sistema molto a lungo (es. un datalogger)., visto che comunque va montato sul classico strip di contatti femmina e dunque soggetto a “traballamenti” in caso di frequenti estrazioni.
Un saluto
Bellissimo anche questo articolo, complimenti sinceri.
Come ho avuto modo di scrivere anche in altri 3D, non ho ancora avuto la possibilità (leggi tempo libero) di fare esperienze con i PIC, una cosa è certa: terrò a mente questo articolo perchè si rivelerà utilissimo per i miei studi futuri (spero immediati), nel frattempo potrò prenderlo in considerazione come spunto per implementare la memoria del LaunchPad o di Arduino Mega oltre ad una “chicca” che ho in mente e che ancora non so se può funzionare quindi non dico di che si tratta finchè non avrò modo di testarne il funzionamento. Una cosa è certa: se funzionerà sarete i primi a leggerne il risultato 🙂 un’indizio? il vecchio e il nuovo a formare una “novità” curiosa 😀
Ciao
Mario
Ciao Mario
Detto fatto, esiste già in rete fresco di pubblicazione (data 21 dicembre) un articolo dove descrive proprio come interfacciare una memoria SD Card con una scheda Launchpad con un MSP430.
Per il collegamento è già prevista un apposito shield, anche se credo si possa autocostriure, ecco comunque il link
http://store.43oh.com/index.php?route=product/product&product_id=66
Per quanto riguarda il resto dell’articolo mi sembra ben descritto, con tutte le istruzioni compreso l’elenco componenti hardware e Software, connessioni, preparazione dell’hardware, esempio di codice e altro.
Per le indicazioni vedere al link
http://43oh.com/2013/12/interfacing-the-launchpad-to-an-sd-card-a-walkthrough/
Sicuramente possedendo tu la scheda potrai eventualmente fare delle prove e verificare la correttezza del funzionamento.
Spero ti sia utile
Adriano
Grazie Adriano, 😀 come al solito non ti smentisci mai 🙂 un link per ogni evenienza e qui addirittura due link.
Appena ho un attimino di tempo li leggerò con attenzione, è da parecchio che pensavo a qualcosa del genere e visto che è già stata fatta è tutto tempo risparmiato, rimane solo da “inventarsi” un po di tempo libero per fare qualche prova e magari modificare la shield a proprio piacimento per adattarla alle proprie necessità, se si riesce ad autocostruirla è ancora meglio soprattutto per me che sono senza lavoro e spendere per un hobby non mi sembra proprio il caso.
Grazie ancora.:-)
Ciao
Mario
Ottimo articolo !
in passato le ho utilizzate con buoni risultati, bisogna solo assisicurarsi che la libreria utilizzata gestisca le SD tipo SDHC ovvero ad alta capacità (> 2 Gyte) : queste infatti richiedono un indirizzamento a 32 bit, quelle “vecchie” solo di 24 bit (se non ricordo male…). Io non utilizzo la libreria mikroBasic, ma sicuramente gestisce le SDHC.
Grazie,
Massimo