# Συζήτηση Κυκλωμάτων > Ψηφιακά Κυκλώματα > Μικροελεγκτές >  >  Αρχή με μικροελεγκτές

## Googlis

Καλησπέρα φίλοι μου!
Μετά από καιρό ενασχόλησης με τα ηλεκτρονικά λέω επιτέλους να μπω και στον κόσμο στον μικροελεκτών!


Τους θέλω για διάφορες κατασκευούλες, από το να οδηγήσω μια οθόνη lcd, ρελέδια, να διαβάζω αισθητήρια κτλ, χωρίς όπως κάποιο συγκεκριμένο ειδικό πεδίο εφαρμογής.

Με ποιους προτείνεται να αρχίσω, Microchip ή Atmel?

----------


## chip

Οι μικροελεγκτές είναι σα θρησκεία... ο καθένας θα υποστηρίξει αυτόν που ξέρεις και ας μην ξέρει καλά το γιατί είναι καλύτερος από τον άλλο....

προσωπικά θα σου έλεγα να ασχοληθείς με atmel (avr) γιατί είναι μάλλον ποιο φθηνοί (γι αυτά που προσφέρουν) τους βρίσκεις εύκολα μπορείς να φτιάξεις προγραμματιστή που να συνδέεται στην παράλληλη θύρα και να προγραμματίζει πολλούς απ αυτούς (pony prog... θα σου κοστίσει 1-2 ευρώ)
και το βασικότερο αν θα δουλέψεις σε assembly έχουν πολύ ποιο κατανοητή αρχιτεκτονική απ αυτή τον microchip (τουλάχιστον για τον δικό μου τρόπο σκέψης)
Επίσης στα βασικά τους μοντέλα είναι ποιο γρήγοροι από τα αντίστοιχα της microchip (όλοι οι AVR εκτελούν σχεδόν όλες τις εντολές σε ένα κύκλο ρολογιού πράγμα που δεν συμβαίνει σε όλους τους microchip....)

Ας περιμένουμε τώρα και τους φίλους των microchip να πουνε τα υπέρ τους απέναντι στου atmel....

ίσως κάποιοι σου πουν να ασχοληθείς με arm αλλα πιστεύω καλύτερα να αρχίσεις με κάτι ποιο απλό που κυκλοφορεί ευρύτατα σε dip package που θα το βάλεις εύκολα στο breadboard (ξέρω υπάρχουν και κάτι ελάχιστες εξαιρέσεις arm σε dip) και που έρχονται με ολοκληρωμένο (δωρεάν) λογισμικό ανάπτυξης (IDE) που τους βρίσκεις εύκολα και δουλεύουν με 5V όπως τα περισσότερα κυκλώματα που πιθανόν έχεις συνηθήσει να χρησιμοποιείς

----------


## Googlis

Κι εγώ chip, κατόπιν έρευνας που έκανα, αλλά με λιγοστές γνώσεις ως πρωτάρης, τείνω προς Atmel Avr  :Smile:

----------


## michaelcom

Αν και δεν εχω ασχολειθει (ακομα) με microchip μπορω να πω οτι οι τιμες τις δεν ειναι και ασχημες πιστευω πανω κατω τα ιδια ειναι.

Τωρα εχω δει την αρχιτεκτονικη των microchip αν κατσεις πιστευω ειναι αρκετα ευκολη και υπαρχουν πλεονεκτηματα σε σχεση με τους avr οτι η microchip εχει πολυ λιγοτερες εντολες.

Τωρα γνωμη μου ειναι ξεκινα με avr για το λογο του οτι θα βρεις πολυ βοηθεια στο νετ λογο του arduino. Και φυσικα μπορεις κι εσυ να φορτωσεις τον arduino bootloader για ποιο ευκολια.

Το θεμα ειναι ομως οτι οταν θες να φτιαξεις ενα project δεν πρεπει να κολας στο οτι ξερεις μονο avr οποτε δεν μπορεις να χρησιμοποιησεις microchip.

Γνωμη μου καθαρα αν θες απλα να κανεις κανα-δυο προτζεκτακια μαθε avr αν ομως θες να μπεις βαθεια μαθε και τα 2!

----------


## SeAfasia

να πούμε κάτι για τις πλατφόρμες ανάπτυξης τους για κάθε έναν απο αυτούς;

----------


## midakos

Έτσι κι εγώ σκόπευα να ασχοληθώ με μικροεπεξεργαστές, αλλά με πρόλαβε ενα θέμα εδώ στο φόρουμ, που έδειχνε μια καμπάνια της smartmaker με κλόνους του arduino leonardo. 9Ε ο ένας με αρκετά παρελκόμενα, ε και πήρα 2. Πολύ κατανοητός προγραμματισμός ακόμη και για κάποιον τελείως άσχετο όπως εγώ. Με στοιχειώδες διάβασμα θα κάνεις αυτά που θές, με λίγο παραπάνω θα κάνεις παπάδες, καθώς υπάρχει τεράστια πληθώρα από επεκτάσεις με gps-wifi-ethernet κλπ κλπ κλπ...

----------


## dog80

Έχω παραγγείλει pickit 3 και μερικούς μικρούς pic με ενσωματωμένο ταλαντωτή για να δοκιμάσω.

----------


## ALAMAN

Εγώ θα πρότεινα να ασχοληθείς με ARM. Μπορείς να πάρεις ένα arduino due που έχει arm chip της atmel
Έχω ασχοληθεί μόνο με megaAVR και tinyAVR και επειδή πρόσφατα είχα μια επαφή με arm μπορώ να πω πως ενθουσιάστηκα.
Είναι σχετικά δύσκολοι και θέλει πολύ διάβασμα, αλλά με υπομονή, επιμονή και αρκετά examples θα δεις οτι είναι εύκολο.
Εγώ έχω ξεκινήσει εδώ και 3 μέρες να παίζω με arm χρησιμοποιόντας το Atmel Software Framework (ASF).
Αν και πάω λίγο στα τυφλά, σιγά σιγά καταλαβαίνω τη φιλοσοφία.
Είναι πιο high level από τους AVR επειδή είναι 32bit και είναι δύσκολο να μιλάμε με τους καταχωρητές.
Γιαυτό έχουμε το ASF μέσω του οποίου η atmel μας δίνει συναρτήσεις και οδηγούς για ολόκληρο το εσωτερικό του.
Πιστεύω πως αξίζει τον κόπο και τον χρόνο.
Στους AVR είναι πιο εύκολα τα πράγματα γιατί είναι 8bit και πιο εύκολη αρχιτεκτονική. Μπορείς να επικοινωνήσεις απευθείας με τους καταχωρητές και καταλαβαίνεις ακριβώς τι κάνει ο μικροελεγκτής τη δεδομένη στιγμή. Άλλο ένα πλεονέκτημα για τους αρχάριους είναι ότι βρίσκονται σε dip μορφή και μπορείς να τους κουμπώσεις σε ράστερ αλλά εγώ προτείνω με ότι και να ασχοληθείς να πάρεις κάποιο αναπτυξιακό, πχ arduino.

----------


## chip

Καλύτερα να αρχίζει κανείς με 8bit.... 
διαφορετικά μπορεί να μπλέξει και να τα παρατήσει...
επίσης στους 32bit ARM, MIPS κλπ πρακτικά για να τους δουλέψεις μάλλον πρέπει να ξέρεις C πράγμα το οποίο δεν ξέρουν όλοι.... (ούτε εγώ θυμάμαι C μετά από 20 περίπου χρόνια που έκανα στο πανεπιστήμιο...)

----------


## ALAMAN

> Καλύτερα να αρχίζει κανείς με 8bit.... 
> διαφορετικά μπορεί να μπλέξει και να τα παρατήσει...
> επίσης στους 32bit ARM, MIPS κλπ πρακτικά για να τους δουλέψεις μάλλον πρέπει να ξέρεις C πράγμα το οποίο δεν ξέρουν όλοι.... (ούτε εγώ θυμάμαι C μετά από 20 περίπου χρόνια που έκανα στο πανεπιστήμιο...)



Για την ακρίβεια κανείς δεν ξέρει C :P
Μπορεί να παίξει λίγο με κανένα arduino avr και μετά να προχωρήσει σε arm.

----------


## leosedf

*ΟΧΙ!
*PIC και τίποτα άλλο, ιερός πόλεμος jihad, αποκεφαλισμοί κλπ.

----------


## dog80

> Καλύτερα να αρχίζει κανείς με 8bit.... 
> διαφορετικά μπορεί να μπλέξει και να τα παρατήσει...
> επίσης στους 32bit ARM, MIPS κλπ πρακτικά για να τους δουλέψεις μάλλον πρέπει να ξέρεις C πράγμα το οποίο δεν ξέρουν όλοι.... (ούτε εγώ θυμάμαι C μετά από 20 περίπου χρόνια που έκανα στο πανεπιστήμιο...)







> Για την ακρίβεια κανείς δεν ξέρει C :P
> Μπορεί να παίξει λίγο με κανένα arduino avr και μετά να προχωρήσει σε arm.



Δηλαδή προτιμάτε να προγραμματίζετε σε assembly και όχι σε C   :Confused1:

----------


## chip

χαλαρά assembly!
ξέρω τι κάνω μέχρι την τελευταία γραμμή, ξέρω σε πόσο χρόνο θα εκτελεστεί και μπορώ να τον ρυθμίζω κι όλας αν είναι απαραίτητο και είναι πολύ ποιο εύκολη η assembly (αν και θέλει περισσότερο γράψιμο) αφού έχει λίγες εντολές και απλούστατη σύνταξη.... δεν είναι και λίγο να μπλέκεις με την σύνταξη της C....
Ίσως επειδή δεν τα πάω καλά με ξένες γλώσσες ο εγγέφαλος μου δεν είναι κατάλληλος για την εκμάθηση ξένων γλωσσών με δύσκολη σύνταξη και πολλούς αυστηρούς κανόνες όπως η C....

μάλιστα ελπίζω στους επόμενους μήνες να περάσω και σε ARM εννοείτε σε assembly....

----------


## manolena

> ...χαλαρά assembly!







> ...μάλιστα ελπίζω στους επόμενους μήνες να περάσω και σε ARM εννοείτε σε assembly....



Χαρά στο κουράγιο σου με 32 bit τραίνο!!! Νοσταλγώ κι εγώ κάποιες φορές την assembly αλλά είπα στον εαυτό μου να μην
τον βασανίσω άλλο... Μπράβο όμως!

----------


## ALAMAN

Φίλε chip Επειδή θέλω κ Εγώ να ασχοληθώ με αρμ, για την ακρίβεια άρχισα λίγο να ασχολούμαι Αλλά πολύ βασικά και "τυφλά" βήματα, θα ήθελα αν μπορείς να με βοηθήσεις λίγο να καταλάβω κάποια πράγματα ως προς την αρχιτεκτονική.
Χρησιμοποιώ ASF και κάποια πράγματα δεν καταλαβαίνω όπως πχ ονομασίες μεταβλητών, δομών, συναρτήσεων κτλ.  Και γενικά το πως δομείται το πρόγραμμα βάση αυτού του atmel framework.

----------


## chip

φίλε Alaman είπα ότι θα ασχοληθώ... δεν έχω ασχοληθεί ακόμα  :frown: 
εκτός αυτού η πρώτη σκέψη είναι να γράφω καθαρή assembly... ούτε δομές ούτε συναρτήσεις....

----------


## ALAMAN

> φίλε Alaman είπα ότι θα ασχοληθώ... δεν έχω ασχοληθεί ακόμα 
> εκτός αυτού η πρώτη σκέψη είναι να γράφω καθαρή assembly... ούτε δομές ούτε συναρτήσεις....



Ναι το πρόσεξα. Ακόμα και η assembly είναι πολύ χρήσιμη σε τέτοιες εφαρμογές

----------


## dimpet

Εμένα η ταπεινή μου γνώμη αγαπητέ φίλε είναι ο MSP430 Texas Instruments .Πολύ απλός το βρίσκεις πολύ εύκολα και είναι σχεδόν τσάμπα . Επίσης γνώμη μου είναι αν θες να κάνεις απλά πράματα να ρίξεις και ματιά στα PSoC της Cypress Semiconductor που πλέον τα τσιπάκια της σειράς 4 έχουν 0.15 του euro και κάνουνε αγγέλους. Και αυτά απλά και υπάρχει routing σε γραφικό περιβάλλον αν δε γουστάρεις να μπλέξεις με κώδικα.

----------


## ALAMAN

Η ατμελ εχει μεγαλύτερη υποστήριξη πράγμα που χρειάζεται για αρχιτεκτονική 32bit

----------


## leosedf

H Cypress έχει ωραίο λογισμικό το designer και το creator. Μου αρέσει πως δείχνει εσωτερικά τον μικροελεγκτή.
Κατά τα άλλα PIC!

----------


## chip

εγώ είχα παίξει με την πρώτη γενιά (CY8C26433) cypress με πυρήνα m8 όταν είχαν πρωτοβγεί... που δεν είχε βγει ακόμα simulator (και ο in circuit emulator ήταν βέβαια πανάκριβος) και μου κανε εντύπωση η εξαιρετική του assembly που προγραμμάτιζα και τα προγράμματα μου έτρεχαν αμέσως παρ οτι δεν είχα simulator να κάνω προσωμείωση (λόγω του οτι οι εντολές ήταν γενικές.. ίδια απ οτι θυμάμαι για μεταφορές από καταχωρητή σε καταχωρητή και ίδια για φόρτωμα σταθερας)
Φυσικά τα περιφερειακά τα προγραμμάτιζα με προγραμματισμό των καταχωρητών... και όχι μέσα από το γραφικό περιβάλλον :P όπως δηλαδή θα έκανα με έναν AVR....
ξενέρωσα τελείως και δεν ξανασχολήθηκα μαζί τους όταν σταμάτησε τα τσιπάκια αυτά σε ελάχιστο χρόνο από όταν τα παρουσίασε... ίσως σε λιγότερο από ένα χρόνο και πέρασε σε νέα βελτιωμένη γενιά....

και η ATMEL έχει σταματήσει τους AT90S αλλά τους αντικατέστησε με ATMEGA με mode συμβατότητας και αυτό έγινε καμία 5ετία από την παρουσίασης των AT90S ενώ ακόμα και σήμερα μπορεί κάποιος να βρει εύκολα αν θέλει AT90S....

----------


## dog80

Τι connectors βάζετε σε πλακέτες με PIC για το ICSP? 

Στο demo board που δίνουν μαζί με το Pickit 3 έχει έναν ίσιο κονέκτορα στην άκρη της πλακέτας και κουμπώνει απευθείας το Pickit.  Υπάρχουν άλλοι στανταρ κοενέκτορες?

----------


## jskalitexnis

Θα ηθελα να κανω καπιες ερωτησεις
στους γνωστες.
Επιδει ψαχνομαι αρκετο καιρο να βρω
μια ακρη με τους μΕ αλα δεν βρισκω.
Πιρα κ καποια βιβλια στα Ελληνικα.
"προγραμματιζοντας τον μικροελεγκτη avr"
και το "Συστηματα μικρουπολογιστων".
Το προτο ειναι εντελος βλακια ιδικα 
Για αρχαριο.το δευτερο ειναι καπος καλητερο.
Αυτο που θελω να ρωτησω ειναι,οι avr
με τους ardruino εχουν των ιδιο τροπο
γραφεις του κωδικα?δλδ αν γραψεις ενα
προγραμμα για ardruino θα μπωρει
να τρεχει και σε avr???το ρωταω αυτο
με το σκεπτικο οτι ισος μπωρο απο τα
βιβλια των ardruino να μαθω να προγραμματιζω
Τους avr.Γτ απο τα βιβλια που προανεφερα
Δεν μαθενεις τπτ περα απο την εσωτερικη δομη.και τελευτεα
Ερωτηση πρεπει πρωτα να ξερω assebly
ωστε να προγραματιζω σε c?

----------


## gas_liosia

jskalitexnis, όχι δεν χρειάζεται να ξέρεις assembly για να προγραμματίσεις σε c. Επίσης, πρέπει να καταλάβετε λίγο τη λογική του arduino όσοι θέλετε να ξεκινήσετε με τους μικροελεγκτές. Πρέπει να ξεκαθαρίσετε τους στόχους σας. Δηλαδή, θέλετε να μάθετε να προγραμματίζετε μικροελεγκτές ή θέλετε να καταφέρετε να χρησιμοποιείτε μικροελεγκτές στα project σας. Γιατί αν θέλετε το δεύτερο, η καλύτερη λύση είναι να ασχοληθείτε με arduino όπου ο προγραμματισμός είναι πολύ εύκολος χάρη στις βιβλιοθήκες που έχουν φτιαχτεί να σας κάνουν τη ζωή εύκολη, συν ότι υπάρχει άπειρο υλικό στο internet καθώς και περιφερειακών module που απλά κουμπώνουν στα arduino boards και συνήθως κυκλοφορούν βιβλιοθήκες για τη χρήση αυτών σε arduino.
Αυτό όμως δεν σημαίνει ότι θα ξέρετε να προγραμματίζετε μικροελεγκτές, αφού το μεγαλύτερο ποσοστό του κώδικα είναι έτοιμο.
Όποιος επιλέξει τον δύσκολο δρόμο, σίγουρα θέλει πολύ ψάξιμο και μελέτη του datasheet του ελεγκτή που θα επιλέξει.
Εγώ από την εμπειρία μου θα πρότεινα AVR σε αυτήν την περίπτωση και με compiler CodeVisionAVR καθώς διαθέτει εργαλείο προγραμματισμού (wizard) και αρκετές πληροφορίες στο help. Ο wizard είναι χρήσιμος στην αρχή ώστε να μάθει κανείς τη λογική του προγραμματισμού.

Υ.Γ.: Βέβαια οι νέες εκδόσεις του CodeVisionAVR υποστηρίζουν τα Arduino ως προγραμματιστές. Σε αυτήν την περίπτωση προγραμματίζετε τον μικροελεγκτή που ενσωματώνει το Arduino, χωρίς τη χρήση βέβαια του compiler του ο οποίος είναι αυτός που κάνει τον προγραμματισμό του παιχνιδάκι.

Για αρχάριους μάλλον τα Arduino είναι η καλύτερη επιλογή. Στην πορεία, μόλις μπουν στη λογική των μικροελεγκτών, ίσως να ασχοληθεί κανείς με τον δύσκολο δρόμο καθώς θα έχει μια ιδέα για το αντικείμενο πλέον.

----------


## picdev

δες αυτό το βιβλίο είναι δωρεάν, αν πατήσεις πάνω στα περιεχόμενα θα σου ανοιξει τα κεφάλαια.
Η microC είναι ένας compiler για pic αλλά υπάρχει και για avr , arm κτλ, 
είναι μια χαρά για αρχάριους, εγώ με αυτό ξεκίνησα , έχει έτοιμες βιβλιοθήκες για lcd, κουμπιά , a/d και γενικά διάφορα περιφερειακά του μΕ. Το βιβλίο στα πρώτα κεφάλαια λέει για την αρχιτεκτονική του μΕ και μετά έχει παραδείγματα με κώδικα και εφαρμογές, μπορείς να αρχίσεις να διαβάζεις κατευθείαν απο εκεί.
Απο εκεί και πέρα δεν είναι κάτι το αξιόπιστο για επαγγελματικές εφαρμογές , είναι κάτι σαν το αρντουίνο,για αρχή είναι μια χαρά όμως.
Τα βιβλία που ανέφερες είναι ξεπερασμένα και ακατάλληλα νομίζω 

Για αρχή όμως πρέπει να επιλέξεις με τι μικροελεκτή θα ασχοληθείς και με τι περιβάλον ανάπτυξης, 
γιατί μπορείς να πεις οτι θα ασχωληθείς με PIC , πρόγραμμα μπορείς να γράψεις με MICRO C,  CSS ,MPLAB
το Mplab είναι ο καλύτερος compiler αλλά με τις λιγότερες βιβλιοθήκες , με τα άλλα 2 θα έχεις έτοιμες βιβλιοθήκες και θα φτιάξεις γρήγορα αυτό που θες, απο την άλλη έχεις λιγότερο έλεγχο , αλλά αυτά θα τα δεις στη πορεία.

Μετά υπάρχει και το arduino, εκεί έχεις έτοιμο hardware και περιβάλλον ανάπτυξης για αρχάριους,
πολλές έτοιμες βιβλιοθήκες σχεδόν για τα πάντα, μπορείς να φτιάξεις κάτι πραγματικά γρήγορα.
Το arduino χρησιμοποιεί avr μικροελεκτές αλλά δεν έχει σχέση με την avr, αυτή έχει δικό της περιβάλλον ανάπτυξης το avr studio.
Πρέπει νομίζω να ασχοληθείς με τη c και να μάθεις τι ειναι compiler, βιβλιοθήκες , IDE κτλ γιατί έτσι δεν βγάζουμε άκρη

http://www.mikroe.com/products/view/285/book-pic-microcontrollers-programming-in-c/

----------


## lelek

Είπα να γράψω κι εγώ εδώ αφού είναι για αρχάριους...  :Smile: 

Έχω διαβάσει για τον bootloader και εδώ αλλά και αλλού και έχω μπερδευτεί..

Ο bootloader είναι ένα πρόγραμμα που ΠΡΕΠΕΙ να το φορτώσουμε στον μΕ για να προγραμματίζουμε με Arduino και να μη χρειάζεται κάποιος external programmer?
Δηλαδή αφορά ΜΟΝΟ σε περιβάλλον Arduino??? Δηλαδή είναι απαραίτητος ΜΟΝΟ στην περίπτωση που έχουμε μΕ που δε θα είναι επάνω στον Arduino και θέλουμε εμείς να τον προγραμματίζουμε μέσω Arduino??

----------


## manolena

Bootloader μπορεί να δεχθεί οποιοσδήποτε μ/Ε, οποιασδήποτε εταιρείας, ανεξαρτήτως σχεδιασμού hardware (8-16-32bit). Αρκεί να έχει flash memory αρκετή ώστε να χωρέσει και ο bootloader και το πρόγραμμα που αυτός θα φορτώσει στη flash του.

Ο bootloader είναι ένα βοήθημα ώστε αν στο σχεδιασμό του project έχει προβλεφθεί π.χ. ένας μετατροπέας USB σε σειριακό ώστε ο μ/Ε να επικοινωνεί με το έξω περιβάλλον, αυτός να κάθεται σαν "ενοικιαστής" σε ένα μικρό χώρο της μνήμης προγράμματος και όταν εμείς μέσω ενός PC του στείλουμε το compiled hex αρχείο του κώδικά μας, αυτός (ο bootloader) να το προωθήσει εγγράφοντάς το με συγκεκριμένο τρόπο στη flash μνήμη προγράμματος του μ/Ε.

----------


## lelek

> ....όταν εμείς μέσω ενός PC του στείλουμε το compiled hex αρχείο του κώδικά μας, αυτός (ο bootloader) να το προωθήσει εγγράφοντάς το με συγκεκριμένο τρόπο στη flash μνήμη προγράμματος του μ/Ε.



εννοείς για κάθε περίπτωση?? είτε δηλαδή τον προγραμματίζουμε σε Arduino IDE είτε σε AVR IDE (Atmel Studio)  ??? Και το κάνουμε αυτό στην ουσία (τον προγραμματισμό ISP programming εννοώ δηλαδή) για να μη βγάζουμε κάθε φορά τον μΕ μας από την πλακέτα στην οποία τον έχουμε προορίσει να κάνει τις λειτουργίες που θέλουμε??  (αν το κάναμε αυτό θα έπρεπε να είχαμε external programmer έτσι δεν είναι? )

----------


## manolena

Μπορείς πάντα να προγραμματίσεις τον μ/Ε στην πλακέτα αν έχεις prgrammer μέσω ISP (AVR) ή ICSP (PIC) ή SWIM (STM) ή άλλων συνδεσμολογιών. Με bootloader εγκατεστημένο, θες μόνο το PC σου.

----------


## lelek

1) Προφανώς αυτός είναι και ο λόγος που όταν προγραμματίζουμε το chip ενός Arduino δε χρειάζεται και κάποια εξωτερική συσκευή που θα κάνει τη σειριακή επικοινωνία μεταξύ PC και μΕ. Επειδή δηλαδή ο Arduino διαθέτει δικό του USB-to-Serial convertor. Σωστά? 

2)Απλά για να πραγματοποιηθεί αυτή η επικοινωνία του PC με τον Arduino θα πρέπει να φορτώσουμε στον μΕ του Arduino τον Bootloader και αυτό γίνεται μέσα από το Arduino IDE μόνο την πρώτη φορά πριν ξεκινήσουμε να προγραμματίζουμε. Έπειτα με το ίδιο IDE προγραμματίζουμε όσες φορές θέλουμε τον μΕ μας.

3) Αυτό που λες: "με bootloader εγκατεστημένο θέλεις μόνο το PC σου" εννοείς προφανώς την περίπτωση που δουλεύεις με Arduino οπότε έχεις μόνο το PC και τον Arduino. Έτσι?

Κάπου τα μπερδεύω λίγο..

 Ας ξεχάσουμε λίγο τα Arduino. 

4) Aν έχω έναν ΑVR mkII ΜΟΝΟ ο οποίος είναι ISP programmer απ'ότι ξέρω και το PC, αρκούν και για να κάνω bootloading τον μΕ μου (αφού μιλάμε για ICP προγραμματισμό) αλλά και για να τον προγραμματίζω από κάποιο περιβάλλον (π.χ. Atmel Studio)??

----------


## leosedf

> 3) Αυτό που λες: "με bootloader εγκατεστημένο θέλεις μόνο το PC σου" εννοείς προφανώς την περίπτωση που δουλεύεις με Arduino οπότε έχεις μόνο το PC και τον Arduino. Έτσι?



Όχι, οποιοσδήποτε μικροελεγκτής με flash self write μπορεί να το κάνει, και οι PIC και οι ΑΤΜΕL και άλλοι πολλοί.


Να στο πω απλά, έχω έναν PIC, τον προγραμματίζω με προγραμματιστή κανονικά και θέλω να μπορεί ο φίλος μου που θα τον πάρει στην κατασκευή να μπορεί να το αναβαθμίσει μόνος του χωρίς προγραμματιστή, είτε μέσω USB είτε μέσω UART (RS232 κλπ) Βάζω το πρόγραμμα μου που ΠΕΡΙΕΧΕΙ και τον booloader μέσα και πλέον μέσω της USB μπορεί να προγραμματίσει και αυτός.
Ο bootloader συνήθως είναι στην αρχή και περιμένει (είτε να τον κάνεις reset κλπ) αν δεν δει κατάλληλη επικοινωνία κλπ τότε συνεχίζει την εκτέλεση του προγράμματος.


Όταν περάσεις bootloader μέσα δηλαδή δε χρειάζεσαι προγραμματιστή αφού μπορείς να προγραμματίσεις μέσω του pc απ' ευθείας μέσω USB

----------


## manolena

1) Ναι
2) Ναι
3) Ναι, το IDE του Arduino
4) Bεβαίως και ναι, έτσι κάνω κι εγώ στα project μου για να μην εξαρτώμαι απο arduino-πλακέτες.

Συμφωνώ με τον ανωτέρω κύριο επίσης.  :Wink:

----------


## lelek

Άρα με τον Arduino μπορώ να κάνω:

1) bootloading σε έναν άδειο εντελώς μΕ από το Arduino IDE - εδώ συνδεδεμένη η USB θύρα του

2) "απ'ευθείας" bootloading ενός άδειου μΕ μέσω του ISP interface (6-pin) του Arduino από άλλον external programmer ο οποίος φορτώνει τον bootloader από το IDE της Atmel για παράδειγμα

- εδώ εκτός η USB θύρα του Arduino
- εξωτερική τροφοδοσία στα Vcc και GND του Arduino για να επικοινωνήσει με τον external programmer (πχ. τον AVR mkII)

3) programming ενός bootloaded (με οποιονδήποτε τρόπο) μΕ από το Arduino IDE

- μόνο που θα πρέπει να περιμένω κάθε φορά να εκτελεστεί ο bootloader (εκτός κι αν πατάω reset)
- εδώ συνδεδεμένη η USB θύρα του Arduino φυσικά
- η μέθοδος ενδείκνυται για project με τον Arduino "υλικά συμμέτοχο" αλλά όχι για προγραμματισμό ενός δικού μας project γιατ έχει το "βάλε-βγάλε" του μΕ μας από την πλακέτα του Arduino και επιπλέον να χρησιμοποιώ τo Arduino IDE και τη γλώσσα του (Wiring απ' ότι διάβασα την ονομάζουν)

4) programming ενός bootloaded (με οποιονδήποτε τρόπο) μΕ μέσω του ISP interface (6-pin) του Arduino από άλλον external programmer με τη γλώσσα C και το Atmel Studio IDE ή οποιοδήποτε άλλο περιβάλλον και τη γλώσσα που αυτό χρησιμοποιεί (AVRdude, κλπ) 

- εξωτερική τροφοδοσία στα Vcc και GND του Arduino για να επικοινωνήσει με τον external programmer (πχ. τον AVR mkII)
- εδώ δηλαδή δε περιμένω να φορτώσει ο bootloader όπως στην περίπτωση του Arduino *???* δεν έχω δηλαδή εδώ USB-to-Serial μετατροπή έτσι ώστε να καθυστερούμε λόγω του bootloader *????*


Γενικότερα τώρα χωρίς Arduino, όταν φορτώσω μία φορά τον μΕ με τον bootloader, έπειτα είπατε παιδιά ότι μπορούμε να προγραμματίζουμε μόνο με USB ή UART επικοινωνία...

5) να ρωτήσω για το USB, τί ακριβώς εννοείς Κωνσταντίνε? εννοείς η μία άκρη του USB στο PC και η άλλη (τα 5 V, 0 V, D+ και D-) στα αντίστοιχα pins του μΕ *???* λίγο χαζή και ίσως εκτός τόπου η ερώτηση αλλά την κάνω

6) είτε με USB είτε με USART κάνω προγραμματισμό, πώς θα επικονωνήσει ο υπολογιστής μου με τον μΕ? εννοώ με ποιό interface/περιβάλλον *???* Δηλαδή το hardware αυτό θα αναγνωριστεί ως συσκευή προγραμματισμού από το Atmel Studio για παράδειγμα *???*  (έτσι ώστε να αλλάζουμε τον κώδικα)

7) με έναν μόνο προγραμματιστή όπως ο AVR mkII και ΤΙΠΟΤΑ άλλο μπορώ να προγραμματίζω άδειους μΕ στα project που κάνω και μάλιστα χωρίς ούτε καν να κάνω bootloading (όταν δεν υπάρχει κάποιος ιδιαίτερος λόγος), σωστά *???*


Συγνώμη για τις πολλές απορίες παιδιά... αλλά νομίζω ότι θα βοηθήσουν οι απαντήσεις σας και σε μένα αλλά και στους υπόλοιπους αρχάριους.  :Smile:

----------


## manolena

> 1) bootloading σε έναν άδειο εντελώς μΕ από το Arduino IDE - εδώ συνδεδεμένη η USB θύρα του



Εννοείς, σε άδειο μ/Ε με συνδεδεμένη τη σειριακή του σε USB; Ναι, αν "κάψεις" στον μ/Ε κατ' ευθείαν τον bootloader απο την επιλογή που έχει το IDE. Εδώ όμως χρειάζεσαι programmer.





> 2) "απ'ευθείας" bootloading ενός άδειου μΕ μέσω του ISP interface (6-pin) του Arduino από άλλον external programmer ο οποίος φορτώνει τον bootloader από το IDE της Atmel για παράδειγμα
> - εδώ εκτός η USB θύρα του Arduino
> - εξωτερική τροφοδοσία στα Vcc και GND του Arduino για να επικοινωνήσει με τον external programmer (πχ. τον AVR mkII)



Σωστά. Χρειάζεσαι μόνο εξωτερική τροφοδοσία και το 6πινο flat που συνδέεται ο AVRISP MkII.





> 3) programming ενός bootloaded (με οποιονδήποτε τρόπο) μΕ από το Arduino IDE
> 
> - μόνο που θα πρέπει να περιμένω κάθε φορά να εκτελεστεί ο bootloader (εκτός κι αν πατάω reset)
> - εδώ συνδεδεμένη η USB θύρα του Arduino φυσικά
> - η μέθοδος ενδείκνυται για project με τον Arduino "υλικά συμμέτοχο" αλλά όχι για προγραμματισμό ενός δικού μας project γιατ έχει το "βάλε-βγάλε" του μΕ μας από την πλακέτα του Arduino και επιπλέον να χρησιμοποιώ τo Arduino IDE και τη γλώσσα του (Wiring απ' ότι διάβασα την ονομάζουν)



Μπορείς να φτιάξεις το προτεινόμενο απο τον Arduino κύκλωμα με ένα FT232 (για τις παλιές version) ή τις R version με έναν επιπλέον ATMega16 (για arduino UNO) που παίζει το ρόλο του μετατροπέα USB-σε-σειριακό, οοποίος φροντίζει να κάνει reset στον μ/Ε κάθε φορά που έρχεται πληροφορία μορφής hex αρχείου στην USB. Αλλιώς, τσιμπάς απο το e-bay με το κιλό τα περιβόητα USB-to-serial adapters και τα βάζεις extra στο κύκλωμα του project σου. 
*http://arduino.cc/en/uploads/Main/Ar...-schematic.pdf*





> 4) programming ενός bootloaded (με οποιονδήποτε τρόπο) μΕ μέσω του ISP interface (6-pin) του Arduino από άλλον external programmer με τη γλώσσα C και το Atmel Studio IDE ή οποιοδήποτε άλλο περιβάλλον και τη γλώσσα που αυτό χρησιμοποιεί (AVRdude, κλπ)
> - εξωτερική τροφοδοσία στα Vcc και GND του Arduino για να επικοινωνήσει με τον external programmer (πχ. τον AVR mkII)
> - εδώ δηλαδή δε περιμένω να φορτώσει ο bootloader όπως στην περίπτωση του Arduino *???* δεν έχω δηλαδή εδώ USB-to-Serial μετατροπή έτσι ώστε να καθυστερούμε λόγω του bootloader *????*



Αν ο μ/Ε έχει ήδη bootloader κι εσύ προγραμματίσεις οτιδήποτε απο ISP, θα τον σβήσει και θα γράψει *ΜΟΝΟ* το αρχείο που του έστειλες μέσω programmer και ISP interface.





> Γενικότερα τώρα χωρίς Arduino, όταν φορτώσω μία φορά τον μΕ με τον bootloader, έπειτα είπατε παιδιά ότι μπορούμε να προγραμματίζουμε μόνο με USB ή UART επικοινωνία...



Σωστό είναι αυτό.





> 5) να ρωτήσω για το USB, τί ακριβώς εννοείς Κωνσταντίνε? εννοείς η μία άκρη του USB στο PC και η άλλη (τα 5 V, 0 V, D+ και D-) στα αντίστοιχα pins του μΕ *???* λίγο χαζή και ίσως εκτός τόπου η ερώτηση αλλά την κάνω



Εννοεί πως πρέπει να έχεις USB-to-serial adapter πάνω στην εφαρμογή σου (όπως στο σχέδιο παραπάνω) και αυτός στα RX-TX pins του μ/Ε.





> 6) είτε με USB είτε με USART κάνω προγραμματισμό, πώς θα επικονωνήσει ο υπολογιστής μου με τον μΕ? εννοώ με ποιό interface/περιβάλλον *???* Δηλαδή το hardware αυτό θα αναγνωριστεί ως συσκευή προγραμματισμού από το Atmel Studio για παράδειγμα *???*  (έτσι ώστε να αλλάζουμε τον κώδικα)



Μόλις ο bootloader εγγράψει τη flash μνήμη του μ/Ε, θα κάνει reset και αν δεν δεί άλλη πληροφορία να έρχεται απο τη USB-σειριακή, θα στείλει τον program counter στη διεύθυνση απο την οποία ξεκινά το κανονικό πρόγραμμα του μ/Ε. Για να μιλήσει τώρα ο κώδικάς σου με το PC, θα πρέπει να έχεις φροντίσει να σετάρεις το USART module του και να έχεις ρουτίνες που θα φροντίζουν για αυτό. Στο arduino IDE, αυτό γίνεται πολύ εύκολα με τη βιβλιοθήκη *SoftwareSerial*.





> 7) με έναν μόνο προγραμματιστή όπως ο AVR mkII και ΤΙΠΟΤΑ άλλο μπορώ να προγραμματίζω άδειους μΕ στα project που κάνω και μάλιστα χωρίς ούτε καν να κάνω bootloading (όταν δεν υπάρχει κάποιος ιδιαίτερος λόγος), σωστά *???*



Σωστά.

----------


## stinger

μια ερωτηση κι απο εμενα τον αρχαριο βρε παιδια..μεχρι τωρα εχω ασχοληθει με τους pic 16f628a-16f84 με ετοιμους κωδικες..επειδη ειμαι σε φαση αναζητησης και διαβασματος και απο οσα εχω διαβασει κι απο εδω ειναι πιο ευκολο να ασχοληθω με arduino η να συνεχισω με την c? επισης κοιταζοντας στο εμποριο βλεπω δεκαδες εκδοσεις διαφορετικες του arduino και δεν ξερω πιο μου κανει..εγω αυτο που θελω ειναι να μπορω να προγραμματιζω τον μ/Ε και να τον χρησιμοποιω σε καποιο κυκλωμα..με το arduino γινεται αυτο??
μεχρι τωρα χρησιμοποιω τον ic prog -jdm progr για προγραμματισμο μ/Ε και την micro c για εξοικιωση με τον προγραμματισμο..οποια βοηθεια/κατευθυνση δεκτη αν εχω ξεκινησει λαθος

----------


## lelek

> μια ερωτηση κι απο εμενα τον αρχαριο βρε παιδια..μεχρι τωρα εχω ασχοληθει με τους pic 16f628a-16f84 με ετοιμους κωδικες..επειδη ειμαι σε φαση αναζητησης και διαβασματος και απο οσα εχω διαβασει κι απο εδω ειναι πιο ευκολο να ασχοληθω με arduino η να συνεχισω με την c? επισης κοιταζοντας στο εμποριο βλεπω δεκαδες εκδοσεις διαφορετικες του arduino και δεν ξερω πιο μου κανει..εγω αυτο που θελω ειναι να μπορω να προγραμματιζω τον μ/Ε και να τον χρησιμοποιω σε καποιο κυκλωμα..με το arduino γινεται αυτο??
> μεχρι τωρα χρησιμοποιω τον ic prog -jdm progr για προγραμματισμο μ/Ε και την micro c για εξοικιωση με τον προγραμματισμο..οποια βοηθεια/κατευθυνση δεκτη αν εχω ξεκινησει λαθος




Σπύρο από τα παραπάνω παίρνεις την απάντηση νομίζω...
Ναι μπορείς να κάνεις πολλά με το Arduino και σου προτείνω και ένα πολύ καλό site με free βιβλία για Arduino:

http://it-ebooks.info/tag/arduino/

----------


## manolena

> μια ερωτηση κι απο εμενα τον αρχαριο βρε παιδια..μεχρι τωρα εχω ασχοληθει με τους pic 16f628a-16f84 με ετοιμους κωδικες..επειδη ειμαι σε φαση αναζητησης και διαβασματος και απο οσα εχω διαβασει κι απο εδω ειναι πιο ευκολο να ασχοληθω με arduino η να συνεχισω με την c? επισης κοιταζοντας στο εμποριο βλεπω δεκαδες εκδοσεις διαφορετικες του arduino και δεν ξερω πιο μου κανει..εγω αυτο που θελω ειναι να μπορω να προγραμματιζω τον μ/Ε και να τον χρησιμοποιω σε καποιο κυκλωμα..με το arduino γινεται αυτο??
> μεχρι τωρα χρησιμοποιω τον ic prog -jdm progr για προγραμματισμο μ/Ε και την micro c για εξοικιωση με τον προγραμματισμο..οποια βοηθεια/κατευθυνση δεκτη αν εχω ξεκινησει λαθος



Σπύρο, καλησπέρα.

Έτσι κι αλλιώς, αν ασχοληθείς με arduino-ειδή, θα ασχοληθείς αναγκαστικά με C γλώσσα, γιατί σε αυτήν θα γράφεις (ή και C++). Αυτά που βλέπεις στο εμπόριο, είναι τόσα πολλά γιατί ακριβώς η φιλοσοφία του δίνει αυτή την ευχέρεια στο σχεδιασμό. Μπορείς να κάνεις ό,τι π@π@ριά μπορεί να σου έρθει στο κεφάλι! Αν δεις τα δικά μου, είναι όλα βασισμένα σε arduino, γράφω σε arduino IDE γιατί με βολεύει (άντε και και λίγο AVR Studio) αλλά είναι projects με AVR. Δηλαδή θέλω να πώ, αν δεν εξηγηθώ σε κάποιον για την κατασκευή τους, θα νομίσει οτι είναι AVR κατασκευές σε περιβάλλον AVR Studio με καθαρή C.

Θέλεις να προγραμματίζεις έναν μ/Ε και να τον χρησιμοποιείς στις κατασκευές σου. Είναι πανεύκολο με το arduino-περιβάλλον, αλλά είναι εξίσου εύκολο και με PIC, με STM ή άλλους μ/Ε, αρκεί να καταλάβεις πως θέλουν αυτοί να δουλεύουν.

Η mikroC είναι καλή για εξοικείωση, αλλά μέχρι εκεί (για μένα). Έχει πολλά ωραία παραδείγματα με σχήματα, αλλά πρέπει να ξέρεις πως έχει και τις ιδιαιτερότητές της, όπως όλοι οι compilers μεταξύ τους. Αλλιώς γράφεις με τον MCC18, αλλιώς με CCS, αλλιώς με HITECH για να γράψεις π.χ. σε μια οθόνη LCD. Μην αγχώνεσαι και με υπομονή θα τα καταφέρεις. Καλό είναι να έχεις "καλές και φιλικές" σχέσεις με πάνω απο μιας εταιρείας μικροελεγκτή πάντως.

----------


## stinger

με το arduino μπορω να προγραμματιζω μ/Ε η θα πρεπει να αγοραζω arduino καθε φορα που θα κανω μια κατασκευη??
μπορεις να μου δειξεις εναν arduino για την περιπτωση μου?
http://www.ebay.com/sch/i.html?_from...duino&_sacat=0

----------


## SeAfasia

ναι γιατί θα τρελλαθείς στο τέλος,βρες μια προσιτή σειρά μ/ε έναν περιβάλλον και προχώρα με C αργότερα με C++.
Εγω δοκιμάσω και θα μείνω σε pic16fxxxx ή pic18fxxx περιβάλλον mplab 8.92 ή mplab-X αρχικά,στη microC for pic δε νομιζω....καλυτερα στα βαθιά απο την αρχή με υπομονή,οπότε συμφωνώ με το Manolena..

----------


## manolena

> με το arduino μπορω να προγραμματιζω μ/Ε η θα πρεπει να αγοραζω arduino καθε φορα που θα κανω μια κατασκευη??
> μπορεις να μου δειξεις εναν arduino για την περιπτωση μου?
> http://www.ebay.com/sch/i.html?_from...duino&_sacat=0



Ένα starter's kit είναι καλό για αρχή αν το πάρεις απόφαση να ασχοληθείς με τα arduino-ειδή. Θα μάθεις πως να γράφεις, πως να χρησιμοποιείς τα I/Os του, πως να βρίσκεις βιβλιοθήκες και να ελίσσεσαι μέσα σε αυτές.

Αργότερα, όταν θα κατανοήσεις αυτά, θα μπορείς να φτιάχνεις τις κατασκευές σου αυτόνομες, χωρίς να χρειάζεσαι να βάζεις μια arduino-πλακέτα στο κύκλωμα. Πολύς κόσμος όμως το κάνει αυτό, γιατί έτσι βολεύεται. Δες τις τελευταίες κατασκευές του Γιώργου του CLOCKMAN που χρησιμοποιεί nano για το μυαλό των κατασκευών του. Δες επίσης τι κάνω εγώ που τα φτιάχνω αυτόνομα, χωρίς arduino-πλακέτα. Σύγκρινε την κάθε περίπτωση και δες τι σε βολεύει. Για παράδειγμα, κοίταξε αυτό:

DSC01422.jpg

Αυτό είναι ένας Arduino MEGA2560 στην πραγματικότητα, μόνο που τον έφτιαξα έτσι ώστε να εξυπηρετεί τις δικές μου ανάγκες και όχι να είναι καλουπωμένο στην arduino-πλακέτα του MEGA2560. Αυτό που βλέπεις, "παρατηρεί" έναν μικρό στροβιλοκινητήρα και εμφανίζει σε μια οθόνη 240x128 τις παραμέτρους λειτουργίας της. Σε επικοινωνία με PC, μπορείς να δεις και άλλα στοιχεία:

DSC01439.jpg

----------


## lelek

Κατ' αρχάς σε ευχαριστώ πάρα μα πάρα πολύ για την απάντηση σου!





> Εννοείς, σε άδειο μ/Ε με συνδεδεμένη τη σειριακή του σε USB; Ναι, αν "κάψεις" στον μ/Ε κατ' ευθείαν τον bootloader απο την επιλογή που έχει το IDE. Εδώ όμως χρειάζεσαι programmer.



Ναι αυτό εννοώ Μανώλη...Γιατί χρειάζεσαι programmer? Άν είναι έτσι τότε δηλαδή ένας Arduino χωρίς programmer είναι άχρηστος? Αφού για να προγραμματιστεί ένας Arduino πρέπει οπωσδήποτε να κάψουμε τον bootloader στο chip του, έτσι δεν είναι?? 





> Μπορείς να φτιάξεις το προτεινόμενο απο τον Arduino κύκλωμα με ένα FT232 (για τις παλιές version) ή τις R version με έναν επιπλέον ATMega16 (για arduino UNO) που παίζει το ρόλο του μετατροπέα USB-σε-σειριακό, ο οποίος φροντίζει να κάνει reset στον μ/Ε κάθε φορά που έρχεται πληροφορία μορφής hex αρχείου στην USB. Αλλιώς, τσιμπάς απο το e-bay με το κιλό τα περιβόητα USB-to-serial adapters και τα βάζεις extra στο κύκλωμα του project σου. 
> *http://arduino.cc/en/uploads/Main/Ar...-schematic.pdf*



Η USB του Arduino θα είναι ασύνδετη? Σε αυτή την περίπτωση δηλαδή παρακάμπτουμε τον USB-to-Serial του Arduino μόνο και μόνο για αυτη την καθυστέρηση του ενός ή 2 δευτερολέπτων?





> Αν ο μ/Ε έχει ήδη bootloader κι εσύ προγραμματίσεις οτιδήποτε απο ISP, θα τον σβήσει και θα γράψει *ΜΟΝΟ* το αρχείο που του έστειλες μέσω programmer και ISP interface.



Εδώ μπερδεύτηκα τώρα... δηλαδή δεν μεσολαβεί USB-to-Serial όταν προγραμματίζω με ISP? Αυτός είναι ο λόγος και που σβήνεται ο bootloader? Εδώ μιλάμε πάντα για τον προγραμματισμό του μΕ που έχει επάνω ο Arduino έτσι? Μπερδεύομαι γιατί είπαμε ότι αν έχω το τσιπ μου φορτωμένο με τον bootloader τότε μπορώ να προγραμματίσω το τσιπ οπουδήποτε σε οποιοδήποτε κύκλωμα μέσω ICP και τώρα μου λες ότι όταν το κάνω αυτό, όταν δηλαδή τον προγραμματίσω σειριακά θα σβηστεί ο bootloader...  :frown: 





> Εννοεί πως πρέπει να έχεις USB-to-serial adapter πάνω στην εφαρμογή σου (όπως στο σχέδιο παραπάνω) και αυτός στα RX-TX pins του μ/Ε.



Αdapter όπως ο FT232 δηλαδή λες? Στο σχήμα δηλαδή ο μΕ 328 που βλέπουμε είναι επάνω στο Arduino? Με μπερδεύει το σχήμα πολύ...  :frown: 






> Μόλις ο bootloader εγγράψει τη flash μνήμη του μ/Ε, θα κάνει reset και αν δεν δεί άλλη πληροφορία να έρχεται απο τη USB-σειριακή, θα στείλει τον program counter στη διεύθυνση απο την οποία ξεκινά το κανονικό πρόγραμμα του μ/Ε. Για να μιλήσει τώρα ο κώδικάς σου με το PC, θα πρέπει να έχεις φροντίσει να σετάρεις το USART module του και να έχεις ρουτίνες που θα φροντίζουν για αυτό. Στο arduino IDE, αυτό γίνεται πολύ εύκολα με τη βιβλιοθήκη *SoftwareSerial*.



Το USART module τίνος???  :Smile:  χαχα χάθηκα
Να μιλήσει ο κώδικας μου με το PC ή με τον μΕ εννοείς?

----------


## manolena

> ...Ναι αυτό εννοώ Μανώλη...Γιατί χρειάζεσαι programmer? Άν είναι έτσι τότε δηλαδή ένας Arduino χωρίς programmer είναι άχρηστος? Αφού για να προγραμματιστεί ένας Arduino πρέπει οπωσδήποτε να κάψουμε τον bootloader στο chip του, έτσι δεν είναι??



Αν ο μ/Ε του Arduino σου είναι κενός, παρθένος, είναι όντως άχρηστος χωρίς programmer. Μπορείς ωστόσο, αν έχεις έναν δεύτερο Arduino προγραμματισμένο, να προγραμματίσεις τον "κενό" σου με τον πρώτο:

http://arduino.cc/en/Tutorial/ArduinoISP
http://www.instructables.com/id/How-...nother-arduin/





> ...Η USB του Arduino θα είναι ασύνδετη? Σε αυτή την περίπτωση δηλαδή παρακάμπτουμε τον USB-to-Serial του Arduino μόνο και μόνο για αυτη την καθυστέρηση του ενός ή 2 δευτερολέπτων?



Κατά τη διάρκεια του ISP programming, δεν λειτουργεί η ενσωματωμένη USB του Arduino. Μόλις τελειώσει ο προγραμματισμός του, είναι πλέον ενεργή και θα μπορεί να δέχεται κώδικα απο τη USB μιας και θα υπάρχει μέσα του ο bootloader.





> Εδώ μπερδεύτηκα τώρα... δηλαδή δεν μεσολαβεί USB-to-Serial όταν προγραμματίζω με ISP? Αυτός είναι ο λόγος και που σβήνεται ο bootloader? Εδώ μιλάμε πάντα για τον προγραμματισμό του μΕ που έχει επάνω ο Arduino έτσι? Μπερδεύομαι γιατί είπαμε ότι αν έχω το τσιπ μου φορτωμένο με τον bootloader τότε μπορώ να προγραμματίσω το τσιπ οπουδήποτε σε οποιοδήποτε κύκλωμα μέσω ICP και τώρα μου λες ότι όταν το κάνω αυτό, όταν δηλαδή τον προγραμματίσω σειριακά θα σβηστεί ο bootloader...



Να τα ξεμπερδέψουμε λίγο πάλι... Όταν έχει ο Arduino τον bootloader, μπορείς να τον προγραμματίζεις απο USB ελεύθερα. Μόνον να έχεις στο νού σου να μη γράφεις κώδικα μεγαλύτερο απο αυτόν που θα χωράει με τον bootloader εγκατεστημένο. Αν για παράδειγμα έχεις έναν UNO με τον ATMega328 και 32Kb flash program memory και ο εγκατεστημένος bootloader έχει μέγεθος στα 10Kb, το πρόγραμμά σου θα έχει μέγεθος 22Kb. Αν τον UNO τον προγραμματίσεις με εξωτερικό programmer μέσω ISP, κερδίζεις τα υπόλοιπα 10Kb σαν χώρο για κώδικα αφού ο μ/Ε σβήνεται τελείως. Προτείνω το εξής: Αν διαθέτεις έναν UNO, προμηθεύσου μερικούς 328, γράψε σε έναν απο αυτούς τον κώδικα που σου λέει το tutorial παραπάνω και κάθε φορά που φτιάχνεις ένα project, χρησιμοποίησέ τον για programmer.





> ...Αdapter όπως ο FT232 δηλαδή λες? Στο σχήμα δηλαδή ο μΕ 328 που βλέπουμε είναι επάνω στο Arduino? Με μπερδεύει το σχήμα πολύ...



arduino UNO.jpg






> ...Το USART module τίνος???  χαχα χάθηκα
> Να μιλήσει ο κώδικας μου με το PC ή με τον μΕ εννοείς?



Μόλις γράψεις τον κώδικά σου στον μ/Ε (που έχει bootloader, μέσω USB ή που δεν έχει bootloader, μέσω ISP), με τη βοήθεια της βιβλιοθήκης SoftSerial και του τερματικού που έχει το Arduino IDE, μπορείς να μιλάς με τον υπολογιστή μέσω USB.

----------


## lelek

Μανώλη μπερδεύομαι γιατί τη μια φορά είπες:


Ο bootloader είναι ένα βοήθημα ώστε αν στο σχεδιασμό του project έχει προβλεφθεί π.χ. ένας μετατροπέας USB σε σειριακό ώστε ο μ/Ε να επικοινωνεί με το έξω περιβάλλον, αυτός να κάθεται σαν "ενοικιαστής" σε ένα μικρό χώρο της μνήμης προγράμματος και όταν εμείς μέσω ενός PC του στείλουμε το compiled hex αρχείο του κώδικά μας, αυτός (ο bootloader) να το προωθήσει εγγράφοντάς το με συγκεκριμένο τρόπο στη flash μνήμη προγράμματος του μ/Ε.


Και την άλλη:


Αν ο μ/Ε έχει ήδη bootloader κι εσύ προγραμματίσεις οτιδήποτε απο ISP, θα τον σβήσει και θα γράψει ΜΟΝΟ το αρχείο που του έστειλες μέσω programmer και ISP interface.

----------


## manolena

> Μανώλη μπερδεύομαι γιατί τη μια φορά είπες:
> 
> 
> Ο bootloader είναι ένα βοήθημα ώστε αν στο σχεδιασμό του project έχει προβλεφθεί π.χ. ένας μετατροπέας USB σε σειριακό ώστε ο μ/Ε να επικοινωνεί με το έξω περιβάλλον, αυτός να κάθεται σαν "ενοικιαστής" σε ένα μικρό χώρο της μνήμης προγράμματος και όταν εμείς μέσω ενός PC του στείλουμε το compiled hex αρχείο του κώδικά μας, αυτός (ο bootloader) να το προωθήσει εγγράφοντάς το με συγκεκριμένο τρόπο στη flash μνήμη προγράμματος του μ/Ε.
> 
> 
> Και την άλλη:
> 
> 
> Αν ο μ/Ε έχει ήδη bootloader κι εσύ προγραμματίσεις οτιδήποτε απο ISP, θα τον σβήσει και θα γράψει ΜΟΝΟ το αρχείο που του έστειλες μέσω programmer και ISP interface.



Βρε Θοδωρή, είναι απλά τα πράγματα:
Στην πρώτη περίπτωση, που ο μ/Ε σου έχει bootloader, με έναν USB-tο-serial γράφεις τον κώδικά σου χωρίς programmer, κατ' ευθείαν απο το PC που τρέχει π.χ. το Arduino IDE.
Απο κάτω, στη δεύτερη, αν ο μ/Ε έχει πάλι bootloader, αν εσύ τον προγραμματίσεις απο το ISP με εξωτερικό programmer, ΘΑ ΣΟΥ ΣΒΗΣΕΙ ΤΑ ΠΑΝΤΑ (ΚΑΙ ΤΟΝ BOOTLOADER) ΚΑΙ ΘΑ ΕΓΓΡΑΨΕΙ ΤΟΝ ΚΩΔΙΚΑ ΣΟΥ ΜΟΝΟ! Δεν θα υπάρχει πια bootloader, θα υπάρχει μόνο το hex που έστειλες στον μ/Ε με τον εξωτερικό prgrammer.

----------


## stinger

τελικα μανο πηρα αυτον τον arduino...http://www.ebay.com/itm/191337466932
απο οτι διαβασα εχει bootloader οποτε  μπορω να περναω απευθειας απο τον υπολογιστη το προγραμμα σε αυτον

----------


## manolena

Φαντάσου Σπύρο, 4 χρόνια πριν, τον είχα αγοράσει 60€... Μια χαρά είσαι...

----------


## stinger

ναι κι εγω αυτο πιστευω..ακομα και ολοκληρο arduino να βαλω για την κατασκευη μου και παλι συμφερει..θεωρω οτι με διαβασμα και εξασκηση θα κανω αυτο που θελω..η διαφορα του atmega 2650 με τον 328 ειναι μονο στις εισοδους-εξοδους ετσι??

----------


## manolena

Ναι και επίσης περισσότερη μνήμη προγράμματος.

----------


## alefgr

> ναι κι εγω αυτο πιστευω..ακομα και ολοκληρο arduino να βαλω για την κατασκευη μου και παλι συμφερει..θεωρω οτι με διαβασμα και εξασκηση θα κανω αυτο που θελω..η διαφορα του atmega 2650 με τον 328 ειναι μονο στις εισοδους-εξοδους ετσι??



Η μεγάλη διαφορά ανάμεσα στους δύο δεν είναι τόσο η διαφορά στον αριθμό των GPIO που έχουν (μιας και έξτρα GPIO μπορείς να προσθέσεις εξωτερικά στον 328 μέσω I2C ή SPI), αλλά η RAM που πάει στα 8K από τα 2K και φυσικά η Flash που φιλοξενεί τον κώδικα και που πάει στα 256K από 32K.

----------


## gsouf

> Βρε Θοδωρή, είναι απλά τα πράγματα:
> Στην πρώτη περίπτωση, που ο μ/Ε σου έχει bootloader, με έναν USB-tο-serial γράφεις τον κώδικά σου χωρίς programmer, κατ' ευθείαν απο το PC που τρέχει π.χ. το Arduino IDE.
> Απο κάτω, στη δεύτερη, αν ο μ/Ε έχει πάλι bootloader, αν εσύ τον προγραμματίσεις απο το ISP με εξωτερικό programmer, ΘΑ ΣΟΥ ΣΒΗΣΕΙ ΤΑ ΠΑΝΤΑ (ΚΑΙ ΤΟΝ BOOTLOADER) ΚΑΙ ΘΑ ΕΓΓΡΑΨΕΙ ΤΟΝ ΚΩΔΙΚΑ ΣΟΥ ΜΟΝΟ! Δεν θα υπάρχει πια bootloader, θα υπάρχει μόνο το hex που έστειλες στον μ/Ε με τον εξωτερικό prgrammer.



Φίλε Μάνο είσαι σίγουροσ ότι με isp  σβήνει τον bootloader νομίζω πως όχι γιατί εγώ χρησιμοποιώ τον μκ2 για πιο γρήγορο κατέβασμα αλλά όταν πάω να κατεβάσω πρόγραμμα απο usb κατεβαίνει κανονικά μέσω του ide μέσω studio νομίζω το σβήνει.

 Για να πω και γω την γνώμη μου στο θέμα assembly vs c για μένα το σωστό είναι κάποιος να μάθει έστω και εποπτικά την assembly (και ας μην την χρησιμoποιήσει ποτέ) και αυτό γιατί θα μάθει πραγματικά πως δουλευει ο μ/ε του και στην συνέχεια να πάει σε C .Η έστω και μερική γνώση της assembly θα επηρεάσει αρκετά στο να γράψεις έναν πιο "μαζεμένο" κώδικα C και όλου και κάπου θα χρειαστέι το #asm #endasm   :Biggrin:

----------


## lelek

> Βρε Θοδωρή, είναι απλά τα πράγματα:
> Στην πρώτη περίπτωση, που ο μ/Ε σου έχει bootloader, με έναν USB-tο-serial γράφεις τον κώδικά σου χωρίς programmer, κατ' ευθείαν απο το PC που τρέχει π.χ. το Arduino IDE.
> Απο κάτω, στη δεύτερη, αν ο μ/Ε έχει πάλι bootloader, αν εσύ τον προγραμματίσεις απο το ISP με εξωτερικό programmer, ΘΑ ΣΟΥ ΣΒΗΣΕΙ ΤΑ ΠΑΝΤΑ (ΚΑΙ ΤΟΝ BOOTLOADER) ΚΑΙ ΘΑ ΕΓΓΡΑΨΕΙ ΤΟΝ ΚΩΔΙΚΑ ΣΟΥ ΜΟΝΟ! Δεν θα υπάρχει πια bootloader, θα υπάρχει μόνο το hex που έστειλες στον μ/Ε με τον εξωτερικό prgrammer.




Μανώλη δεν απάντησα κάτι γιατί επεξεργάζομαι τα όσα μου είπες, βρήκα κι έναν σωρό να διαβάσω σχετικά με αυτά... καταλαβαίνεις...  :Smile:

----------


## lelek

Κατ'αρχάς Χρόνια Πολλά σε όλους. Με Υγεία και Ευτυχία. Υπομονή να ευχηθώ και πείσμα σε όποιον προσπαθεί να μάθει σαν εμένα αν και πολλές φορές χάνω το κουράγιο μου.. Λοιπόν στο θέμα μας...

Τελικά όταν προγραμματίζεις μέσω USB-to-Serial ή μέσω U(S)ART δε θεωρείται σειριακός προγραμματισμός ISP? Αυτό ίσως εξηγήσει πολλές από τις απορίες που εξέφρασα παραπάνω.

----------


## lelek

> Όχι, οποιοσδήποτε μικροελεγκτής με flash self write μπορεί να το κάνει, και οι PIC και οι ΑΤΜΕL και άλλοι πολλοί.
> 
> 
> Να στο πω απλά, έχω έναν PIC, τον προγραμματίζω με προγραμματιστή κανονικά και θέλω να μπορεί ο φίλος μου που θα τον πάρει στην κατασκευή να μπορεί να το αναβαθμίσει μόνος του χωρίς προγραμματιστή, είτε μέσω USB είτε μέσω UART (RS232 κλπ) *Βάζω το πρόγραμμα μου που ΠΕΡΙΕΧΕΙ και τον booloader μέσα* και πλέον μέσω της USB μπορεί να προγραμματίσει και αυτός.
> Ο bootloader συνήθως είναι στην αρχή και περιμένει (είτε να τον κάνεις reset κλπ) αν δεν δει κατάλληλη επικοινωνία κλπ τότε συνεχίζει την εκτέλεση του προγράμματος.
> 
> 
> Όταν περάσεις bootloader μέσα δηλαδή δε χρειάζεσαι προγραμματιστή αφού μπορείς να προγραμματίσεις μέσω του pc απ' ευθείας μέσω USB




Κατ'αρχάς Χρόνια Πολλά σε όλους. Με Υγεία και Ευτυχία. Υπομονή να ευχηθώ και πείσμα σε όποιον προσπαθεί να μάθει σαν εμένα αν και πολλές φορές χάνω το κουράγιο μου.. Λοιπόν στο θέμα μας...

1) Τελικά όταν προγραμματίζεις μέσω USB-to-Serial ή μέσω U(S)ART δε θεωρείται σειριακός προγραμματισμός ISP? Αυτό ίσως εξηγήσει πολλές από τις απορίες που εξέφρασα παραπάνω.

2) Όταν έχω έναν καινούργιο (άδειο εντελώς μΕ που δεν περιέχει δηλαδή τον bootloader) μπορώ τον προγραμματίσω να μου αναβοσβήνει ένα λαμπάκι για παράδειγμα μέσω του Atmel Studio σε ένα breadboard με έναν AVR mkII...από τα όσα ειπώθηκαν έως τώρα αυτό καταλαβαίνω. Άρα, αφού προγραμματιστεί *θα έχει μέσα αυτόματα και τον bootloader?* ή πριν προγραμματιστεί φορτώνεται με δικές μας κινήσεις μέσα στο Atmel Studio και μετά τον προγραμματίζω? Πάντως μετά μπορώ να τον προγραμματίζω χωρίς external programmer (mkII), με USB-to-serial ή με UART, σωστά?

----------


## SeAfasia

http://en.wikipedia.org/wiki/In-circ...al_programming
και
http://www.robotix.in/tutorials/categ/avr/usart
και ένα άρθρο 
http://arduino.cc/en/Hacking/Bootloa...ial.Bootloader

----------


## lelek

*Κώστα απο αυτά που μου έστειλες κάποια στιγμή διάβασα:

Not using a bootloader*

If you want to use the full program space (flash) of the chip or avoid the bootloader delay, you can burn your sketches using an external programmer.
*Burning the Bootloader*

To burn the bootloader, you'll need to buy an AVR-ISP (in-system programmer), USBtinyISP or build aParallelProgrammer. The programmer should be connected to the ICSP pins (the 2 by 3 pin header) - make sure you plug it in the right way. The board must be powered by an external power supply or the USB port.

Εδώ είναι σα να σου λέει δηλαδή ότι τη μια φορά χωρίς bootloader χρησιμοποίησε external programmer και την άλλη με bootloader χρησιμοποίησε (πάλι) external programmer... ; Άντε βγάλε άκρη τωρα... Ή μήπως ο AVR-ISP δεν είναι external?

----------


## SeAfasia

ρε παιδι μου επι παραδείγματι στη στο arduino μπορείς να "φορτώσεις" στο κώδικα κατευθείαν(μεσω του laptop ή pc) στον atmega που έχει επάνω αλλά,αν εσύ θελήσεις να μην χρησιμοποιήσεις 
το IDE του arduino δλδ αυτό:
http://arduino.cc/en/Main/Software#toc2
Ετσί σου δίνει τη δυνατότητα να χρησιμοποιήσεις αυτή τη λύση:

Not using a bootloader
If you want to use the full program space (flash) of the chip or avoid the 
bootloader delay, you can burn your sketches using an external programmer.

δλδ
http://www.arduino.cc/en/Hacking/MiniBootloader
ποιο κάτω έχει παραδειγμα  και για avr

Τώρα εγώ για να φορτώσω ένα αρχείο .hex που περιέχει το κώδικα σε ένα pic16f688 θα χρησιμοποιήσω Πχ το pickit3 είτε σκέτος ή για κάποιο λόγο δεν μπορω να τον βγάλω μεσω pin header καλωδιου θα του φορτωσω το .hex αρχειο....
http://ww1.microchip.com/downloads/e...Doc/51795B.pdf

----------


## manolena

> *Κώστα απο αυτά που μου έστειλες κάποια στιγμή διάβασα:
> 
> Not using a bootloader*
> 
> If you want to use the full program space (flash) of the chip or avoid the bootloader delay, you can burn your sketches using an external programmer.
> *Burning the Bootloader*
> 
> To burn the bootloader, you'll need to buy an AVR-ISP (in-system programmer), USBtinyISP or build aParallelProgrammer. The programmer should be connected to the ICSP pins (the 2 by 3 pin header) - make sure you plug it in the right way. The board must be powered by an external power supply or the USB port.
> 
> Εδώ είναι σα να σου λέει δηλαδή ότι τη μια φορά χωρίς bootloader χρησιμοποίησε external programmer και την άλλη με bootloader χρησιμοποίησε (πάλι) external programmer... ; Άντε βγάλε άκρη τωρα... Ή μήπως ο AVR-ISP δεν είναι external?



Χρόνια πολλά σε όλους!

Θοδωρή, είναι απλό το ζήτημα: στην πρώτη παράγραφο (μη χρήση του bootloader)λέει πως αν θέλεις να χρησιμοποιήσεις όλη τη μνήμη προγράμματος και να αποφεύγεις μια πολύ μικρή καθυστέρηση στην έναρξη εκτέλεσης του κώδικα, χρησιμοποιείς έναν όποιον εξωτερικό programmer απο το ISP κάθε φορά που θέλεις να προγραμματίσεις τον arduino σου.
Στην δευτερη παράγραφο λέει πως για να προγραμματίσεις έναν "καθαρό" μ/Ε με bootloader πρέπει να έχεις πάλι έναν εξωτερικό programmer και μέσω ISP να του τον φορτώσεις. Αλλά αυτό θα γίνει ΜΟΝΟ ΜΙΑ ΦΟΡΑ, απο την επόμενη και μετά δεν χρειάζεσαι εξωτερικό programmer, θα προγραμματίζεις τον arduino απο το USB του
.

----------


## manolena

Κατά κανόνα, ο bootloader είναι ένα εντελώς αυτόνομο αρχείο που προγραμματίζεται στον μ/Ε. Μόλις ο μ/Ε τροφοδοτηθεί με τάση, ο κώδικας του bootloader λέει στον μ/Ε να "κοιτάει" για πολύ μικρό χρόνο το σήμα RX του ενσωματωμένου USART του. Αν μέσα σε αυτό το διάστημα "δει" τον χαρακτήρα ":" τότε θα ξεκινήσει τη διαδικασία του self ptogramming, εγγράφοντας στη flash memory του τα data που του έρχονται στο σειριακό module (στην προκειμένη, τα data που έρχονται μέσω USB). Μόλις η διαδικασία αυτή τελειώσει, δηλαδή έχει φορτωθεί το hex αρχείο στη μνήμη, ο bootloader λέει στον δείκτη προγράμματος (PC counter) να πάει στη διεύθυνση reset και να επανεκκινήσει τον μ/Ε.  Πάλι αυτός επανεκκινώντας θα περιμένει λίγο να διαβάζει τη σειριακή αλλά αφου δεν δει κάτι θα συνεχίσει στη διεύθυνση αρχής του προγράμματος, εκτελώντας τώρα πια κανονικά τον νέο σου κώδικα.

----------


## lelek

Ωραία πολύ ωραία σα να μπηκα στο νόημα...

Με ext programmer επομένως μπορώ να προγραμματίζω έναν μΕ μέσω ISP interface του Arduino:

*είτε* με bootloading (μια φορά μονο φορτώνω τον bootloader απλά για να μπορώ να προγραμματίζω μετά μέσω και πάλι του ISP interface του Arduino αλλά χωρίς ext programmer τώρα) 
*είτε* με ext programmer κάθε φορά χωρίς bootloading.

Απλά όταν έχει φορτωμένο τον bootloader o μΕ μου και τον προγραμματίζω μέσω του Arduino (*και όχι μέσω του ISP interface* του Arduino) θα καθυστερεί λίγο λόγω του USB-to-Serial τρόπου επικοινωνίας του PC με τον μΕ.

----------


## manolena

> Ωραία πολύ ωραία σα να μπηκα στο νόημα...
> 
> Με ext programmer επομένως μπορώ να προγραμματίζω έναν μΕ μέσω ISP interface του Arduino:
> 
> *είτε* με bootloading (μια φορά μονο φορτώνω τον bootloader απλά για να μπορώ να προγραμματίζω μετά μέσω και πάλι του ISP interface του Arduino αλλά χωρίς ext programmer τώρα)



Όταν έχεις "κάψει" τον bootloader στον μ/Ε τον προγραμματίζεις απο USB απο κεί και πέρα. ΟΧΙ ΑΠΟ ISP!!! ΑΝ ΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΕΙΣ ΑΠΟ ISP ΘΑ ΣΟΥ ΣΒΗΣΕΙ ΤΟΝ BOOTLOADER!!!

----------


## lelek

Ναι το κατάλαβα απλά το μετέφερα λάθος καθώς το έγραφα απο τη βιασύνη μου.. ευχαριστώ πολύ Μάνο

Επομένως όταν θέλω να προγραμματίσω μέσω Atmel Studio ή AVRdude κλπ. έναν "bootloaded" μΕ ενός Arduino θα χρησιμοποιήσω προφανώς κάποιον USB-to-Serial ή UART επικοινωνία σωστά? στην περίπτωση αυτή θα πρέπει να αφαιρέσω τον μΕ από την πλακέτα του Arduino? ή χωρίς να τον αφαιρέσω θα τον προγραμματίσω από τα Pins Tx και Rx?

----------


## lynx

Μάνο χρόνια πολλά!  :Smile: 

τα τελευταία σου μηνύματα είναι πιο κατανοητά απο τα πρώτα, οταν υπάρχει επίπεδο
γνώσεων είναι πιο εύκολο για τον άλλο να αντιληφθεί, αν όμως του είναι πρωτόγνωρο, 
αλλάζουν τα πράγματα, μην σου κάνει εντύπωση λοιπόν και μην απελπίζεσαι.

----------

manolena (27-12-14)

----------


## lelek

Έχεις δίκιο.. έτσι είναι.

----------


## manolena

Καλημέρα παιδιά!

Μην με παρεξηγείτε, δεν εχω καμμιά πρόθεση να υποτιμήσω τις γνώσεις κάποιου... Στη δουλειά μου είμαι εκπαιδευτής και ξέρω πως να μεταδώσω τη γνώση σε ανθρώπους που δεν την έχουν. Οπότε μπορώ να σας λέω όσες φορές θέλετε κάτι που πρέπει να γίνει κατανοητό χωρίς να κουράζομαι... Δεν υπάρχουν "χαζές" ερωτήσεις πρέπει να ξέρετε...

Σε ό,τι αφορά τον προγραμματισμό ενός bootloaded μ/Ε του arduino, μπορείς Θοδωρή να τον προγραμματίσεις σειριακά πάνω στην πλακέτα του χωρίς να τον αφαιρέσεις απο αυτήν.

----------


## lelek

Να'σαι καλά Μάνο και το ξέρω ότι το εννοείς αυτό που λες.

Δηλαδή μπορώ να τον αφήσω επάνω και να προγραμματίσω από το Atmel Studio για παράδειγμα και όχι από το Arduino IDE... όταν λες σειριακά εννοείς από το ICSP του Arduino ή από τα pins Tx και Rx? Προφανώς από το ICSP μάλλον εννοείς... από τα Rx και Tx κάνω άλλη δουλειά δηλαδή?

----------


## ALAMAN

ICSP που νομίζω στους AVR λέγετε ISP (In System Programming) είναι μια διεπαφή προγραμματισμού μέσω του SPI (Serial Peripheral Interface) του μικροελεγκτή.
Προσφέρει μια δυνατότητα να προγραμματίσουμε τον μικροελεγκτή όταν αυτός βρίσκεται επάνω σε πλακέτα.
Τώρα θα πείτε, το ίδιο κάνει και το JTAG αλλά με το ISP, δεν απαιτείται να χρησιμοποιήσουμε διαφορετικά Pins.
Για να προγραμματίσεις από Rx - Tx, τη σειριακή θύρα δηλαδή, χρειάζεσαι Bootloader.

----------


## ALAMAN

> Να'σαι καλά Μάνο και το ξέρω ότι το εννοείς αυτό που λες.
> 
> Δηλαδή μπορώ να τον αφήσω επάνω και να προγραμματίσω από το Atmel Studio για παράδειγμα και όχι από το Arduino IDE... όταν λες σειριακά εννοείς από το ICSP του Arduino ή από τα pins Tx και Rx? Προφανώς από το ICSP μάλλον εννοείς... από τα Rx και Tx κάνω άλλη δουλειά δηλαδή?



Ναι εννοεί μέσω της σειριακής, UART, μέσω των Tx, Rx pins.

----------


## lelek

Δηλαδή μπορούμε να τον προγραμματίσουμε *σειριακά* τον μΕ του Arduino 

*είτε* με external programmer όπως ο AVR mkII μέσω του ISP του Arduino (6 ακίδες - MOSI, MISO κλπ) εδώ χωρίς bootloader

*είτε* με έναν USB-to-Serial UART adapter (όπως ο FT232R) μέσω των ακίδων Tx και Rx που φαίνονται επάνω στην πλακέτα (digital pins 0 και 1) - εδώ με bootloader


αυτό εννοείς?

----------


## lynx

Με τον bootloader εκμεταλλευομαστε το γεγονος οτι υπαρχει USART (serial) επικοινωνια
 ως χαρακτηριστικο στον μΕ για να τον προγραμματισουμε. Αλλιως θα γινοταν με τον
τροπο που γραφεις και εσυ... :Smile:

----------


## lelek

> Με τον bootloader εκμεταλλευομαστε το γεγονος οτι υπαρχει USART (serial) επικοινωνια
>  ως χαρακτηριστικο στον μΕ για να τον προγραμματισουμε. Αλλιως θα γινοταν με τον
> τροπο που γραφεις και εσυ...



Εννοείς ότι ήδη διαθέτει FT232 R chip ο Arduino, σωστά?

----------


## lynx

Αναφερομαι αποκλειστικα στον (atmega328 ) που υπαρχει πανω στο αναπτυξιακο arduino uno..
Χωρις τον bootloader δεν υπαρχει κατι να διαβασει την σειριακη του μΕ αρα δεν μπορεις να τον
Προγραμματισης με αυτο το τροπο.

Στο arduino υπαρχει αλλος ενας μΕ που μετατρεπει το serial σε usb για να το συνδεσεις στο PC σου

----------


## lynx

υπαρχει μΕ προγραματισμενος που κανει την δουλεια του ολοκληρωμενου που αναφερεις, στα
Κινεζικα arduino υπαρχει ενα αλλο (ch340)





> Εννοείς ότι ήδη διαθέτει FT232 R chip ο Arduino, σωστά?

----------


## manolena

> Αναφερομαι αποκλειστικα στον (atmega328 ) που υπαρχει πανω στο αναπτυξιακο arduino uno..
> Χωρις τον bootloader δεν υπαρχει κατι να διαβασει την σειριακη του μΕ αρα δεν μπορεις να τον
> Προγραμματισης με αυτο το τροπο.
> 
> Στο arduino υπαρχει αλλος ενας μΕ που μετατρεπει το serial σε usb για να το συνδεσεις στο PC σου



Στις εκδόσεις R (UNO R3 π.χ.) υπάρχει ένας επιπλέον μ/Ε (32) όπως λέει ο Λευτέρης, ο οποίος τρέχει ένα πρόγραμμα ενδιάμεσου USB-to-serial προσαρμογέα απ' ευθείας στις γραμμές RX-TX του κυρίως μ/Ε (32 :Cool: . Στις αρχικές εκδόσεις των Arduino υπήρχε ένα FT232 που έκανε αυτή τη δουλειά.

----------


## Googlis

Επιτέλους ξεκίνησα με το arduino uno r3 !
Μου έχει δώσει πολύ καλές εντυπώσεις, ωραίο παιχνιδάκι για κάποιον αρχάριο!
Όμως ο αρχάριος προχώρησε λιγούλάκι και έχει κάποιες απορίες!
1) Για να μην μπλαστρώνω σε κάθε κατασκευή ενα arduino uno r3 συν το τροφοδοτικό, τι μπορώ να κάνω; Πχ υπάρχει κάποιο σχέδιο (ή έτοιμη πλακέτα) να κουμπώνω πάνω τον ήδη προγραμματισμένο επεξεργαστή και να έχει και το τροφοδοτικό πάνω;
2) Μπορώ κάπως να "κλειδώνω" τον επεξεργαστή για να μην έχουν άλλοι εύκολα πρόσβαση;
3) Ποιοι άλλοι επεξεργαστές έχουν την ίδια γλώσσα ώστε να επεκταθώ σιγά σιγά και σε αυτούς για πιο σύνθετες κατασκευούλες; Με ποιο αναπτυξιακό να τους πάρω;
4) Τι μπλιμπλικί χρειάζεται να πάρω για να μπορώ μέσω σειριακής του Pc να επικοινωνώ με τον μΕ ώστε να μπορώ να φορτώνω/ξεφορτώνω τον bootloader?

----------


## Fire Doger

1: Τροφοδοτικο οταν λες εννοεις απο μπριζα σε μικρο? Τζαμπα κόπος, παρε  κινεζο μετασχηματιστη ac/dc 9/12V (και το παρακατω). Αν εννοεις απο μ/σ σε μικρο google 7805 circuit ειναι σταθεροποιητης στα 5V και περνει μεγαλουτσικη γκαμα 5+ -22V νομιζω, καλυτερα αυτο παρα 5V τροφοδοτικο τσιμα τσιμα, και δυο πυκνωτες θες για να εξαλυψεις μικροταλαντωσεις.

2: Μπορεις αλλα νομιζω αν κλειδωσει κλειδωσε, για αλλαγες σε κωδικα θες καινουριο δεν ειμαι σιγουρος βεβαια.

3:Καποιοι avr (αν οχι ολοι οι avr) με arduino bootloader, σιγουρα ο atmega2560 και ολους οσους χρησυμοποιουν οι πλακετες arduino.

4: avr isp το λενε :P αφου εχεις uno βαρα bootloader μ αυτο και μετα χοσ'το στο arduino και προγραμματισε το. Επισης μπορεις τον arduino να τον κανεις isp.

Για να λειτουργισει θελει ενα στοιχειωδες κυκλωμα το οποιο υπαρχει και στο google και στο site του arduino.
Αν ψαξεις "how to make arduino on raster" εχει ενα καρο πραγματα. Καλο διαβασμα  :Smile:

----------

