αλλο λέμε νέστορα , αυτο που λες ειναι ενα έτοιμο προγραμματάκι που εχει μεσα τις εντολές για την επικοινωνια.
Εγώ μιλάω για compiler sdk api Ide κτλ
Printable View
αλλο λέμε νέστορα , αυτο που λες ειναι ενα έτοιμο προγραμματάκι που εχει μεσα τις εντολές για την επικοινωνια.
Εγώ μιλάω για compiler sdk api Ide κτλ
Μπορείς να κατεβάσεις τον CCS (Code Composer Studio) όπου είναι το αντίστοιχο AVR STUDIO ή MPLAB και τρέχεις τον κώδικα με τον CCS Compiler (εάν δεν κάνω λάθος).
Επειδή δουλεύω χρόνια με TI μερικές γενικές παρατηρήσεις :
Το Code Composer Studio ( βασισμένο στο Eclipse ) έχει αρκετές ιδιορρυθμίες που αν δεν το παλέψεις αρκετά θα σου σπάσει τα νεύρα στην αρχή. Όταν φτάσεις κάποια στιγμή να το μάθεις τότε μπορείς να κάνεις παπάδες που λένε.
Για παράδειγμα κάποιες version βιβλιοθηκών δεν παίζουν με κάποιες version compiler/linker. Χρειάζεται να διαβάζεις το documentation πριν κάνεις πχ αναβαθμίσεις στο σύστημα διότι μπορεί να βρεθείς στην φάση να μην γίνεται build το project μετά από αναβάθμιση. Αυτό βέβαια το έχω συναντήσει και αλλού ( λέγε με XILINX ) αλλά είναι άλλου παπά ευαγγέλιο.
Μπορεί να έχεις το ίδιο ακριβώς setup (versions CCS, Compiler, Linker, Libraries) σε Linux και σε Windows και το project να δουλεύει πχ σε Linux αλλά να χτυπάει σε Windows και ο λόγος να είναι η ονομασία των αρχείων διότι σε Linux το OS είναι case sensitive ενώ σε Windows εσωτερικά το OS είναι case insensitive. Ας πούμε ότι έχεις την ίδια ακριβώς βιβλιοθήκη Library.lib. Αυτή το CCS περιμένει να την βρεί με το string "Library.lib". Το Linux την περνάει σωστά ενώ σε Windows αν και το εμφανιζόμενο όνομα αρχείου στον Explorer είναι "Library.lib" το OS θα την περάσει σαν το string "LIBRARY.LIB" προς τον CCS οπότε ο τελευταίος θα χτυπήσει. Έτσι η μεταφορά ενός project σε υπολογιστές που έχουν διαφορετικό OS δεν γίνεται πάντα εύκολα.
Άλλα κόλπα είναι να προσέξεις στις ρυθμίσεις του CCS αν θα έχεις relative ή absolute directory paths.
Προσοχή επίσης σε compiler και linker flags.
Σε κάποιους συνδυασμούς MCU/development kit το πρόγραμμα τρέχει μέσω debugger ενσωματωμένο στο development board το οποίο μιλάει με τον debugger του CCS για να βλέπεις σε (σχεδόν) πραγματικό χρόνο το τι γίνεται μέσα στο chip. Tο υπό ανάπτυξη λογισμικό κατεβαίνει στην RAM της MCU και εκτελείται κατ'ευθείαν από εκεί. Εάν θέλεις να το περάσεις απλά στην Flash για να διατηρείται μετά το power-off και να τρέχει αυτόματα χωρίς να περνάει μέσα από τον debugger με το power-on έχει μια σχετική διαδικασία και δεν γίνεται αυτόματα με το πάτημα ενός κουμπιού.
Απαιτείται διάβασμα τόσο των datasheets με τα σχετικά errata για τα chip/development boards όσο και για τα εργαλεία ανάπτυξης (CCS, Compiler, Liknker, Libraries). ΑΠΑΡΑΙΤΗΤΑ επίσης διαβάζουμε τα release notes σε κάθε έκδοση λογισμικού/βιβλιοθηκών. Στις λεπτομέρειες κρύβεται ο διάβολος.
Γενικά το σενάριο του στυλ ρίχνω στο PC το λογισμικό ανάπτυξης και κάθομαι και γράφω κώδικα χωρίς να έχω ανοίξει βιβλίο απλά ΔΕΝ ΠΑΙΖΕΙ.
Πάμε τώρα και στα chip. Η εσωτερική αρχιτεκτονική τους γενικά διαφέρει ΠΟΛΥ από τα chip των υπόλοιπων εταιρειών. Φέρνω για παράδειγμα το I2C interface που έχουν κάποιες MCU. Αυτό μπορεί να έχει δύο διαφορετικά data buffers εν σειρά (ένα κολλημένο στο i/o pin και ένα ποιο μέσα) που να είναι προσπελάσιμα με διαφορετικές ταχύτητες/χρόνους ή interrupts. Αν δεν το έχεις διαβάσει στο manual για να το χειριστείς κατάλληλα μπορεί το interface σου πχ να στείλει 3-4 bytes που βρίσκονται στον buffer της hardware-ικής πόρτας και μετά να αδειάσει και να μην στέλνει άλλα διότι εσύ στον κώδικα δεν προέβλεψες να γράψεις interrupt handler για τον συγκεκριμένο buffer αλλά είχες handler μόνο για τον εσωτερικό. Αυτό φαίνεται αρχικά σαν ιδιορρυθμία αλλά υπάρχει λόγος που η TI το έχει κάνει έτσι και τον λόγο τον βρίσκεις μόνο σε datasheets/appnotes.
Συμπερασματικά όσοι έχουν συνηθίσει σε εργαλεία ή σε chip PIC / AVR / ARM κλπ αρχικά θα απογοητευθούν διότι σχεδόν τίποτε δεν θα δουλεύει με τον τρόπο που έχουν συνηθίσει/μάθει. Η περιπέτεια με την οικογένεια της TI είναι ιδιαίτερα ανηφορική στο ξεκίνημά της αλλά μετά σε οδηγεί σε ύψη που δεν μπορούν να σε πάνε εύκολα άλλες οικογένειες. Όποιος δεν έχει συνηθίσει σε ΠΟΛΥ διάβασμα καλύτερα να το ξεχάσει.
Μπορεί όλα τα παραπάνω εκ πρώτης όψης να φαίνονται αρνητικά σαν σχολιασμός αλλά προσωπικά σε κάποια έργα με ιδιαίτερες απαιτήσεις δεν θα τολμούσα να πάω με chip άλλα από της TI.
Κλείνοντας θα ήθελα να αναφέρω ότι το forum υποστήριξης της TI είναι ανοικτό και ΔΩΡΕΑΝ για όλους. Η υποστήριξη είναι σε απίστευτο επίπεδο. Το forum παρακολουθείται σε 24ωρη βάση από τους μηχανικούς υποστήριξης της TI και συνήθως κάθε ερώτημα που ανεβαίνει έχει απάντηση μέσα σε λίγες το πολύ ώρες.
Αυτά τα ολίγα. Όποιος το τολμήσει πάντως εδώ είμαστε για κάθε βοήθεια στα πλαίσια των δυνατοτήτων μας.
ΥΓ . Με την εν λόγω εταιρεία δεν έχω καμία επαγγελματική σχέση. Την πληρώνω για τα chip/εργαλεία και ΔΕΝ πληρώνομαι για να διαφημίζω ή να δυσφημίζω (ανάλογα με το πως το βλέπεις κανείς) . Όσα γράφω είναι συμπεράσματα από πολύχρονη προσωπική εμπειρία.
Κλάιν Μάιν που λένε και στο χωριό μου , ένα audio streaming θέλω να κάνω με wifi . Μπορεί να δοκιμάσω κανένα κινεζικό module με i2s interface .
Γενικά τα project που δούλευεω δεν έχουν ιδιεταιρες απαιτήσεις , ούτε κάνω dsp κτλ
Ένας 8bit 18f τα καλύπτει
Sent from my Redmi 4 using Tapatalk
Θα συμφωνήσω απόλυτα με τον φίλο CybEng σε αυτή τη σύγκριση.
Πρίν από κάνα χρόνο περίπου είχα προσπαθήσει να φτιάξω module με το CC3200. Είχα φτιάξει ένα πλακετάκι με έναν φορτιστή Li-ion με ενσωματωμένο battery auto backup και ένα τροφοδοτικό dc to dc 3,3V 1A.
Αλλά δυστυχώς αντιμετώπισα πρόβλημα στο assembly λόγω έλλειψης εργαλείων.
Εκτός αυτού, αν κάτι στην ανάπτυξη firmware δεν πήγαινε πολύ καλά, άντε μετά να βρεις τι φταίει, οι κολλήσεις μου ή οι λόγοι που ανέφερε ο φίλος παραπάνω;!
Το ενδιαφέρον μου μετά κινήθηκε από ένα άλλο chip της TI, το CC1310. Είναι παρόμοιο με τη διαφορά ότι δουλεύει στα Sub-1GHz.
Ερχόμενος από μικροελεγκτές Atmel (AVR, SAM Cortex-m3, Cortex-M4) συνάντησα όλα τα καλά εμπόδια. Όμως, και πάλι ο στόχος μου δεν ήταν το firmware αλλά το hardware.
Παρόλα αυτά πήρα το αντίστοιχο αναπτυξιακό και προσπάθησα να δω πως ακριβώς δουλεύει το CCS, Έπρεπε να εξοικειωθώ λίγο με τον κώδικα του και το CCS για να επικεντρωθώ μετά στο hardware.
Στη συνέχεια έφτιαξα το module και ευτυχώς δούλεψε με την πρώτη.
Εγώ είμαι υπέρ σε ένα τέτοιο βήμα γιατί η TI έχει αρκετά καλά εργαλεία και chip. Και φυσικά πολύ καλή υποστήριξη.
Προσωπικά τελευταία ασχολούμαι με το CC1310. Δεν έχω καταλήξει στην τελική έκδοση του module. Έχω φτιάξει το version 1 και τώρα είμαι στο version 2.
Ακόμα δεν έχω ασχοληθεί με σοβαρή ανάπτυξη κώδικα σε κανένα από τα παραπάνω αλλά ακόμα και στη φάση του testing που χρειάστηκαν 1-2 examples για να δώ ότι όλα δουλεύουν καλά, δεν ήταν όλα τόσο εύκολα όπως
τα chip της Atmel.
Το audio streaming ίσως μπορεί να γίνει και με το απλό και φθηνό ESP8266 το οποίο μπορείς να το βρεις σε 12 διαφορετικές μορφές.
Η επικοινωνία του βέβαια είναι μέσω σειριακής οπότε αυτό ίσως να είναι πρόβλημα αλλά πιθανόν να βρεις και κάποιο module που να χει επικοινωνία με spi.
Μετά υπάρχει και το raspberry και τα σχετικά competitors του raspberry.
Το esp8266 δυστηχως είναι κινεζικό
Sent from my Redmi 4 using Tapatalk