SPI interfac εξωτερική ΕΑΒ

A

amyle

Guest
Γεια σε όλους,

Προσπαθώ να επεμβαίνω εξωτερικό ADC με SPI του MSP430F1611 του.

Έχω γράψει τον κώδικα για την προετοιμασία του SPI (δει κάτω), αλλά εγώ τώρα θέλω να δοκιμάσουν Init_SPI μου γράφοντας ορισμένα στοιχεία για να το σχολαστικά και να χρησιμοποιείτε το πεδίο για να δείτε ότι έχω γράψει δεδομένα σε αυτό.

Τελικά, θα ήθελα να λάβετε δεδομένα από μια εξωτερική ADC χρησιμοποιώντας SPI και το αποθηκεύσει στη μνήμη.

Μπορεί κάποιος μου προς τη σωστή κατεύθυνση;

Σας ευχαριστώ πολύ!Much appreciated.

- Amy==================== INIT_SPI =========================

void Init_SPI (void)
(
P3SEL | = 0x3f? / / Επιλέξτε P3.0, 1,2,3,4,5
P3DIR | = 0x0B? / / Επιλέξτε P3.1, 3 ως τις κατευθύνσεις εξόδου
P3OUT & = ~ 0x01?
ME1 | = USPIE0? / / Δυνηθεί USART0 SPI
UCTL0 | = CHAR SYNC MM? / / 8-bit δεδομένων, SPI λειτουργία
UTCTL0 | = CKPH CKPL SSEL1? / / Inv.delay, ACLK
UBR00 = 0x2A? / / Ρυθμός Baud = 115200
UBR10 = 0x0?
UMCTL0 = 0x0? / / Χωρίς Modulation
UCTL0 & = ~ SWRST? / / Initialize USART κρατική μηχανή

/ / _BIS_SR (LPM3_bits GIE)? / / Enter LPM0 w / διακοπή

) / / Τέλος Init_SPI

===============================================

 
Είναι απλό.Υποθέτω ότι χρησιμοποιείτε IAR.Σε init λειτουργία που

Δηλ. τα 1 | = UTXIE0 | URXIE0?
__enable_interrupts ()?

Θα σας δώσω μερικά στοιχεία για να γράψει ένα buffer δεδομένων των πάγιων μέγεθος:

κηρύξει μια παγκόσμια εμβέλεια μεταβλητή πτητικές σύντομο sizetx
κηρύξει μια παγκόσμια array char πεδίο (buffertx)
κηρύξει ένα παγκόσμιο δείκτη του πεδίου εφαρμογής για να char (pointertx)

προετοιμάσει την buffertx
που sizetx μεταβλητή (ο αριθμός των byte για τη μετάδοση)
που pointertx ίσο με buffertx
αρχίσετε την tx γράψετε στο U0TXBUF μητρώο του πρώτου byte δεδομένων (buffertx [0])

γράψτε το tx διακόπτουν handler
# pragma vector = USART0TX_VECTOR
void TxInt (void)
(
εάν (- sizetx)
(
U0TXBUF =*( pointer)?
)
)

να rx δεδομένα:
# pragma vector = USART0RX_VECTOR
void RxInt (void)
(
αν (sizerx)
(
* pointerrx = U0RXBUF?
pointerrx ?
sizerx -?
)
)

Όταν θέλετε να ενεργοποιήσετε RX που απλά sizerx με τον αριθμό των byte που αναμένεται και pointerrx να καταστήσει το σημείο για την άμβλυνση προορισμό.pointerrx και sizerx πρέπει να δηλώνονται ασταθείς.

Αυτό σας βοηθάει;

SimNav

 
Hi SimNav,

Ευχαριστώ για την απάντηση.

Είμαι ακόμα αρκετά συγκεχυμένη πώς μπορώ να λαμβάνουν τα στοιχεία από εξωτερικές ADC78H90 μου (σκλάβος), επειδή το ADC χρειάζεται ένα ειδικό πρωτόκολλο για να μου στείλει τα στοιχεία του.

Σημειώστε ότι για το έργο μου, η UC SPI είναι ο πλοίαρχος και η εξωτερική ADC είναι ο σκλάβος.Έτσι, το SPI και ADC διαμορφώσεις καρφίτσα είναι:

Master: Slave:
-----------------------
STE -------> SCB
SCLK ------> UCLK
Dout ------> Somi
Din <------- SomiΤώρα, για την εξωτερική ADC να μου στείλει τα στοιχεία του, θα πρέπει να κάνετε τα εξής:
1) Σετ SCB χαμηλά
2) Να UCLK
3) Στείλτε το ADC τόπο
4) Πάρτε ADC παραγωγή και αποθήκευση σε buffer SPI, τότε αποθηκεύει δεδομένα στη μνήμη RAM.Έτσι, υποθέτω σύγχυση μου, εγώ δεν γνωρίζουν καν πώς να πάρει την εξωτερική ADC μιλάμε για MSP430F1611 SPI μου.

Φαίνεται σαν να μπορεί να πάρει εξωτερική ADC μου να μιλήσω για το UC με χτυπάς λίγο από το GPIO, αλλά το SPI είναι εκεί για ένα σκοπό και θέλω να το χρησιμοποιήσετε.Αλλά δεν ξέρουν καν πώς να ρυθμίσετε SCB χαμηλά.

Κάθε αναλάβουν αυτό;Ευχαριστώ.

- Amy

 
Βλ. διάγραμμα 1 στο δελτίο ADC78H90.

Το UC έχει να παρέχει 16 SCLK όσπρια με το ADC για να μετατόπιση των δεδομένων του έξω.
Αυτό γίνεται με τη σύνταξη μιας λέξης 16-bit ή δύο bytes από το MSP430F1611 να
το ADC (DIN).Δεν είμαι εξοικειωμένος με τις UC έτσι δεν ξέρω αν μπορεί να γράψει 16 bits σε
φορά.Συχνά μπορεί κανείς να ορίσετε τη θύρα SPI σε διάφορους τρόπους.

Τρία από τα bits είναι τα bits διεύθυνση που επιλέγουν ποια είναι η συνεισφορά mux να διαβάσετε.
Τα υπόλοιπα είναι ανδρείκελο bits (DO NOT CARE).

Το σήμα CS, πρέπει να παρουσιαστεί χαμηλό για το ADC να απαντήσει.Αν είναι το μόνο SPI
συσκευή με το λεωφορείο, μπορεί να συνδέεται μόνιμα στο έδαφος.

Έτσι, όταν έχετε γράψει το 16 bit η 12-bit δεδομένα από το ADC θα είναι
μεταφέρονται αυτόματα στο μητρώο των εισροών SPI.Είναι τόσο απλό.

Ξεκινήστε γράφοντας 0000h στο ADC να διαβάσετε AIN1.Όταν τα έργα που μπορείτε να
αρχίσει να αλλάζει τα bits διεύθυνση για να διαβάσετε άλλες εισόδους.

 

Welcome to EDABoard.com

Sponsor

Back
Top