# Συζήτηση Κυκλωμάτων > Ψηφιακά Κυκλώματα > Γενικά >  >  SD Card SPI

## ALAMAN

Θέλω να κάνω μια σύνδεση ενός μικροελεγκτή με sd card, μέσω SPI
Ποιά η διαφορά να συνδέσεις την κάρτα απευθείας στον μικροελεγκτή από τα module που πουλάνε στο ebay?
Απ' όσο έψαξα υπάρχει standar pinout για το SPI.

----------


## bchris

Τι modules ειναι αυτα?
Δωσε κανα link.

Μηπως αυτα ειναι uart ή κατι αλλο?

----------


## andrewsweet4

Το pinout ειναι οντως στανταρ, απλα να ξερεις οτι οι SD δουλευουν με 3,3v logic και αν ο μικροελεγκτης σου δουλευει στα 5, τοτε θα χρειαστεις καποιο level shifting ενδιαμεσα  :Wink:

----------


## _pike

Εχω 2 modules και εχω παιξει αρκετα με αυτα.Η διαφορα ειναι οτι αυτα modules σου δινουν την βαση της καρτας και τις pull up που χρειαζονται για να δουλεψει η καρτα.Κοιτα εγω δεν εχω παλμογραφο και παιδευτικα πολυ στο να την κανω να δουλεψει.....Χρησιμοποιησα δικο μου κωδικα και ηταν ακομη πιο δυσκολο.Με τα modules apo to ebay η καρτα δεν μου απανταγε παντα...Κοιταζοντας λοιπον το pcb διαπιστωσα πως δεν εχουν συνενδεμενα καποια πιναουτ της καρτας οπως και αλλες τιμες στις αντιστασεις... θα σε συμβουλευα να υλοποιησεις αυτο το σχεδιο http://hades.mech.northwestern.edu/i...ital_(SD)_card  οπου εγω δεν συναντησα κανενα προβλημα στις δοκιμες μου αντι να αγορασεις απο το εβαυ οχι θεμα τιμης απλα εχουν κατα την γνωμη μου bug.

----------


## ALAMAN

Μπορώ να κάνω την ίδια σύνδεση και για τις micro sd?

Πού μπορώ να βρώ την βιβλιοθήκη με την sdcard για το proteus?

----------


## _pike

Δες εδω για τα πιναουτ  http://elasticsheep.com/2010/01/read...-an-atmega168/   Για το eagle εχουν σιγουρα βιβλιοθηκες το προτεους δεν το εχω ακουσει δεν το ξερω καν.Αλλα και την βιβλιοθηκη να βρεις θα πρεπει να αγορασεις απο την ιδια κατασκευαστρια εταιρια για να ταιριαζει στο pcb.

----------


## ALAMAN

> Δες εδω για τα πιναουτ  http://elasticsheep.com/2010/01/read...-an-atmega168/   Για το eagle εχουν σιγουρα βιβλιοθηκες το προτεους δεν το εχω ακουσει δεν το ξερω καν.Αλλα και την βιβλιοθηκη να βρεις θα πρεπει να αγορασεις απο την ιδια κατασκευαστρια εταιρια για να ταιριαζει στο pcb.



Το proteus το χρησιμοποιώ για προσομοίωση. Την κατασκευή θα την κάνω με altium designer.
Τώρα ψάχνω τι χρειάζεται από hardware για να δουλέψει η μνήμη και μετά θα ασχοληθώ με το software.

Αν και εξετάζω το ενδεχόμενο να μην χρησιμοποιήσω sdcard αλλά κάποια flash με συνδεσιμότητα SPI.
Την θέλω για data logging...

----------


## matthew

Δεν ξέρω αν βοηθάει παιδιά, δείτε & αυτό http://elm-chan.org/docs/mmc/mmc_e.html για το σετ εντολών του SPI.

----------


## ALAMAN

Από hardware τί θα χρειαστώ;
Σίγουρα κάποιον level translator. Τί άλλο;
Επειδή θέλω να το προσθέσω πάνω σε μία κατασκευή και θα το κάνω απευθείας σε πλακέτα θέλω να τελειώσω με το hardware και μετά να παίξω με το software.
Ξέρω πως υπάρχουν πολλές λύσεις και σχέδια αλλά ρωτάω για μια επαλήθευση, μη παραλείψω τίποτα και μετά ψάχνω να δω πώς θα προσθέσω τίποτα άλλο στην πλακέτα.

----------


## manolena

H πιο ασφαλής και δοκιμασμένη λύση:

i2c-level-shift-mosfet.png

http://playground.arduino.cc/Main/I2...alLevelShifter

----------


## ALAMAN

Ωραιο. Σ ευχαριστώ. Αλλά γιατί Όχι κάποιο ολοκληρωμένο;

----------


## manolena

Δεν είναι απαραίτητο για τόσο απλή δουλειά, εκτός και αν έχεις πολλές γραμμές για shifting. Υπάρχουν ολοκληρωμένα της
Texas:

http://www.ti.com/logic/docs/transla...t=3.3#voltintf με 2, 4 ή 8 κανάλια, αλλά που να τα βρείς;

----------


## ALAMAN

> Δεν είναι απαραίτητο για τόσο απλή δουλειά, εκτός και αν έχεις πολλές γραμμές για shifting. Υπάρχουν ολοκληρωμένα της
> Texas:
> 
> http://www.ti.com/logic/docs/transla...t=3.3#voltintf με 2, 4 ή 8 κανάλια, αλλά που να τα βρείς;



Μ'αρέσει να είναι embedded  :Rolleyes:

----------


## ALAMAN

βρήκα διάφορους level translators άλλα όλοι χρειάζονται εξωτερική reference για να λειτουργήσουν.
Ψάχνω κάποιον να δουλεύει με μια τάση τροφοδοσίας 5V

----------


## ALAMAN

Λέω να βάλω αυτό.
http://www.ti.com.cn/cn/lit/ds/symlink/sn74lvc4245a.pdf

μαζί με ένα LDO regulator για να κατεβάσω τα 5V στα 3,3V

----------


## manolena

Τον LDO για ποιόν λόγο να τον βάλεις; Το ολοκληρωμένο με αναφορά και τροφοδοσία στα 5V και είσοδο σε κάθε bit μέχρι και 5.5V δίνει έξοδο σε κάθε bit μέχρι 3.6V. Δεν υπάρχουν απαιτήσεις ισχύος στον bus έτσι κι αλλιώς.

----------


## ALAMAN

> Τον LDO για ποιόν λόγο να τον βάλεις; Το ολοκληρωμένο με αναφορά και τροφοδοσία στα 5V και είσοδο σε κάθε bit μέχρι και 5.5V δίνει έξοδο σε κάθε bit μέχρι 3.6V. Δεν υπάρχουν απαιτήσεις ισχύος στον bus έτσι κι αλλιώς.



Θέλει και αναφορά στα 3.3 απ ότι βλέπω.
Πώς αλλιώς θα ρίξουμε την τάση από τα 5 στα 3.3 για να τροφοδοτήσουμε το chip? Μόνο διαιρέτη, zener, και regulator μπορώ να σκεφτώ.
Η zener και ο LDO νομίζω πως παίζουν κοντά σε τιμή μεταξύ τους.
Έχει Vcca και Vccb για 5V και 3.3V αντίστοιχα.

----------


## manolena

Έχεις απόλυτο δίκαιο, χρειάζεται 2 γραμμές τροφοδοσίας.

----------


## ALAMAN

> Έχεις απόλυτο δίκαιο, χρειάζεται 2 γραμμές τροφοδοσίας.



Για μια στιγμή με τρόμαξες, νόμιζα δεν είδα σωστά και λέω, τί δεν βλέπω καλά...  :Lol: 
Για τον LDO τί λες; Θα βάλω κάποιον με το χαμηλότερο ρεύμα εξόδου. Για να έρθει και σε μικρότερο κόστος και μέγεθος. Νομίζω 0.3Α ήταν το μικρότερο που βρήκα.
Επίσης μετά σκεφτόμουν ότι αν βάλω έναν μεγαλύτερο, πχ έναν που βρήκα στα πρόχειρα και νομίζω πως είναι και αρκετά γνωστός... 
http://www.st.com/web/en/resource/te...CD00000544.pdf
Θα μπορώ να τον χρησιμοποιήσω και για άλλες τροφοδοσίες που θέλουν 3.3V

----------


## ALAMAN

Τώρα που το σκέφτομαι δε νομίζω να φανεί και τόσο χρήσιμο.
Έχει γραμμή ελέγχου DIR. Θα πρέπει να ελέγχεις τη γραμμή DIR παράλληλα με το SPI για να διαβάζεις τη μνήμη.
Δεν ξέρω πόσο εύκολο και πόσο πρακτικό θα είναι αυτό

----------


## ALAMAN

Νομίζω πως θα χρειαστώ open drain εξόδους

----------


## picdev

δεν νομίζω να χρειάζεσαι logic level converter, οι είσοδοι σχεδόν πάντα έχουν esd protection και το Vhigh του μΕ με το 3.3v είναι πάνω απο το όριο.
Tώρα γιατί να χρειάζονται pull up, αφού οι έξοδοι είσοδοι δεν ειναι open drain? νομίζω ότι το spi δεν χρειάζεται

----------


## ALAMAN

> δεν νομίζω να χρειάζεσαι logic level converter, οι είσοδοι σχεδόν πάντα έχουν esd protection και το Vhigh του μΕ με το 3.3v είναι πάνω απο το όριο.
> Tώρα γιατί να χρειάζονται pull up, αφού οι έξοδοι είσοδοι δεν ειναι open drain? νομίζω ότι το spi δεν χρειάζεται



Από τη στιγμή που το SPI παίζει σε επίπεδα 0-5V χρειαζόμαστε level translator για να πάρουμε 0-3.3V
Δεν είμαι σίγουρος αν η sdcard έχει προστασία για τάσεις πάνω από 3.3V νομίζω πως δεν έχει.
Τα ολοκληρωμένα που παίρνουν τάση reference για μετάφραση επιπέδου και δίνουν απευθείας έξοδο, έχουν γραμμή DIR που στο SPI δεν πρέπει να έχει.
Κάποια άλλα translators είναι απλά open drain και συνδέεις pull-up με το επίπεδο που θέλεις, και απλά υλοποιείται εσωτερικά το κύκλωμα που έδειξε ο Μάνος με τα mosfet.

----------


## manolena

Γιώργο, απο ό,τι καταλαβαίνω πρόκειται να οδηγήσεις μόνο την SD. Χωρίς να
ταλαιπωρηθείς λοιπόν, κάνε τον shifter με τα μικρά mosfetάκια και ξεμπέρδεψες.
Είναι δοκιμασμένο και απόλυτα αξιόπιστο για το δίαυλο SPI.

----------


## ALAMAN

TXS0101
Με εσωτερικές pull-up
http://www.ti.com/lit/ds/symlink/txs0101.pdf

----------


## ALAMAN

> Γιώργο, απο ό,τι καταλαβαίνω πρόκειται να οδηγήσεις μόνο την SD. Χωρίς να
> ταλαιπωρηθείς λοιπόν, κάνε τον shifter με τα μικρά mosfetάκια και ξεμπέρδεψες.
> Είναι δοκιμασμένο και απόλυτα αξιόπιστο για το δίαυλο SPI.



Μάνο, δες το προηγούμενο πόστ μου, είναι το ίδιο κύκλωμα υλοποιημένο σε ένα package.  :Smile: 
Τελικά, απ' ότι είδα γιαυτές τις δουλειές θέλει τέτοιο κύκλωμα. για να είναι αυτόματα αμφίδρομο χωρίς dir line.

----------


## ALAMAN

Έχω μια απορία, το TXS0101 λέει ότι μπορεί να συνδεθεί ως open drain ή ως push pull. Στο datasheet αναφέρει ότι εσωτερικά έχει pull up αντίσταση 10kΩ. Οι συνδεσμολογίες open drain, push pull είναι για να τις υλοποιήσεις εξωτερικά;

----------


## bchris

> Έχω μια απορία, το TXS0101 λέει ότι μπορεί να συνδεθεί ως open drain ή ως push pull. Στο datasheet αναφέρει ότι εσωτερικά έχει pull up αντίσταση 10kΩ. Οι συνδεσμολογίες open drain, push pull είναι για να τις υλοποιήσεις εξωτερικά;



Πιστευω πως ναι.
Στην figure 1 (page 9) σου δειχνει πως ειναι μεσα η συσκευη.

----------


## ALAMAN

Πήρα το modulaki από ebay.
Υπάρχει κάποιο example για απλά read/write bytes?

----------


## ALAMAN

Απ ότι βλέπω υπάρχει μια βιβλιοθήκη FATFS η οποία μας δίνει τη δυνατότητα να δημιουργήσουμε, να διαβάσουμε και να γράψουμε txt αρχεία.
Έχει χρησιμοποιήσει κανείς τέτοια βιβλιοθήκη; Νομίζω πως θα είναι ευκολότερο παίζοντας με αρχεία.

----------

NOE (16-12-14)

----------


## NOE

Σε ποιον compiler δουλευεις ? θα με ενδιέφερε μία βιβλιοθήκη όπως αυτή που περιγράφεις, δεν έχω ασχοληθεί ακόμα με SD card αλλά το έχω στο υπόψη.

----------


## ALAMAN

> Σε ποιον compiler δουλευεις ? θα με ενδιέφερε μία βιβλιοθήκη όπως αυτή που περιγράφεις, δεν έχω ασχοληθεί ακόμα με SD card αλλά το έχω στο υπόψη.



Atmel Studio 6.2 Τώρα άρχισα να το ψάχνω με την sd card. Δυστυχώς δεν εχω πολύ χρόνο να αφιερώσω τη μέρα και ασχολούμαι 2-3 ώρες μόνο. Αν βρώ κάτι θα ενημερώσω. Είναι πολύ ενδιαφέρον πάντως να διαχειρίζεσαι την κατά με file system. Είναι ένας τρόπος για άμεση ανάγνωση από υπολογιστή. Αλλά Απ'ότι βλέπω είναι λίγο περίπλοκο.

----------

NOE (16-12-14)

----------


## alefgr

Δουλεύω την SdFat του William Greiman εδώ και ένα χρόνο. Έχει πλήρη υποστήριξη ακόμα και filedate.

----------


## ALAMAN

Βρήκα μια FATFS βιβλιοθήκη αλλά δουλεύει με GPIO PINS.
Ξέρει κανείς πού μπορώ να βρώ με SPI?

----------

