Επιστροφή στο Forum : Αγόρασα έναν προγραμματιστή, διαφωτείστε με!
Γεια σας, έχω αγοράσει έναν προγραμματιστή με ονομασία STK compatible ATMEL AVR programmer - AVR, Tiny, Mega και στην περιγραφή της λειτουργίας του αναφέρει: "This tool is easy to use In-System Programmer. It is designed to program all AVR flash In-System Programmable microcontrollers through 10-pin KANDA type ISP connector. This programmer uses PonyProg and ATMEL AVR ISP. The ISP Programmer is an excellent tool for fast developing of applications and for in-system upgrade. And there is no need for additional power supply, because the programmer is powered by the target application. Voltage range of the target board is 2.7V to 6V."
Όταν λέει is powered by the target application πιστεύετε ότι εννοεί την πλακέτα που θα φιλοξενεί τον μΕ ή την πλακέτα του προγραμματιστή που αγόρασα? Αν δηλαδή δεν έχω τον μΕ σε πλακέτα και απλά συνδέσω τον μΕ στα αντίστοιχα pins του ISP connector, τότε θα πρέπει να έχω βάλει Vcc στον μΕ? Πάντως χωρίς καμία τροφοδοσία, πιστεύοντας ότι θα παίρνει από την παράλληλη, το PonyProg μου λέει dongle not found.
Βοηθείστε με να ξεκολήσω, έχω μάθει τα βασικά στην AVR assembly και δε μπορώ να προχωρήσω σε απλές εφαρμογές χάρη σε αυτό το πρόβλημα.
Την τροφοδοσία την πέρνει από την πλακέτα που φιλοξενεί τον μικροελεγκτή.
Αυτό σημένει οτί ένα από τα 10 pin του connector συνδέεται με τo VCC του μικροελεγκτή και δίνει ρεύμα στο κύκλωμα του προγραμματιστή το οποίο κατα 99% είναι ένα 74HC244 (και μερικές αντιστάσεις, μία δίοδος και ένας πυκνωτής). Το κύκλωμα αυτό δεν πέρνει ρεύμα από την παράλληλη αλλα θα πρέπει να την πάρει μέσω του connector με τα 10 pin.
Αν θές ενημερωσέ μας για το αν συνεργαστηκε καλά με το λογισμικό (ponyprog και το ATMEL AVR ISP ) ο προγραμματιστής!
Ναι, εννοεί ότι πρέπει να βάλεις τροφοδοσία στον μικροελεκτή για να πάρει τροφοδοσία και ο προγραμματιστής.
Σκέψου το αλλιώς. Έχεις φτιάξει το κύκλωμά σου και του έχεις δώσει τροφοδοσία. Συνδέεις τον προγραμματιστή και παίζεις... Προτιμότερο είναι να βγάλεις και έναν κονεκτορα στην πλακέτα στο οποίο θα συνδέεις τον κοννεκτρορα του προγραμματιστή.
ευχαριστώ, θα σας πω εξελίξεις
Αγόρασα και εγώ έναν προρτγαμματιστή τον STK500 και χρειάζομαι βοήθεια.
κατα τον προγραμματισμό του νομίζω οτι θέλει να ενώσεις κάποιες ακίδες με καποιες αλλες
ετσι είδα στο εγχειρίδιο τώρα οσο αφορά τον προγραμματιστή έχει 2 θέσεις για μικροελενκτή
με 6 pin, 2 θέσεις με 28 pin, 2 θέσεις με 20 pin, και 1 θέση για 40 pin.
θέλω να προγραματίσω τον ATtiny2313 για να φτιάξω ένα ηλεκτρονικό ζάρι με LED
ο ATtiny2313 έχει 20 pin και δεν ξερω σε ποιά απο τις δύο να το βάλω.
Εχω τους κώδικες προγραμματισμού αλλα δεν ξέρω τον τρόπο με τον οποίο πρέπει να τους γράψω
διοτι στο βιβλίο με τους κώδικες του συγκεκριμένου κυκλώματος αφήνει σειρές, και καμια φορα μεγαλα κενά
ανάμεσα στις λεξεις και με μπερδέβει.
Εγραψα τους κώδικες με τον τρόπο που νομίζω οτι είναι σωστά αλλα δεν βλέπω τίποτα.
παρακάτω φένετε η φωτογραφία του προγραμματιστή
Οι κώδικες:
.inglude "1200def.inc"
.cseg
.org 0
rjumpRESET
RESET:
ldi r16, 0b00000101
out TCCr0, r16
ldi r16, 0b11111111
out DDRB, r16
cbi PORTD, 0
get_t:
rcallsw_input
ldi r18, 0b11111111
out PORTB, r18
rcalldelay
rcalldelay
rcalldelay
rcalldelay
rcalldelay
rcalldelay
in r17, TCNT0
more:
mov r18, r17
compa:
cpi r18,$06
brlo enough
Clc
sbci r18, $06
rjumpcompa
enough:
cpi r18, $00
brne not_0
ldi r18, 0b11111110
out PORTB, r18
rjmp get_t
not_0:
cpi r18, $01
brne not_1
ldi r18, 0b11111101
out PORTB, r18
rjmp get_t
not_1:
cpi r18, $02
brne not_2
ldi r18, 011111100
out PORTB, r18
rjmp get_t
not_2:
cpi r18,$03
brne not_3
ldi r18, 0b11111011
out PORTB, r18
rjmp get_t
not_3:
cpi r18, $04
brne not_4
ldi r18, 0b11111010
out PPORTB, r18
rjmp get_t
not_4:
ldi r18, 0b11111001
out PORTB, r18
rjmp get_t
delay:
ldi r16, 0b11111100
loophere:
ldi r18, 0b10001110
decrement:
dec r18
brne decrement
dec r16
brne loophere
ret
sw_input:
in r16, PIND
andi r16, 0b00000001
brne sw_input
rcalldelay
pin_0:
in r16,PIND
andi r16, 0b00000001
breq pin_0
rcalldelay
ret
enough:
ldi r16, $01
add r18, r16
camo r18
ori r18, 0b11111000
out PORTB, r18
rjumpget_t
Timer_int:
in save_status, SREG
cpi med_timer, $01
brne skip_it
ldi temp, 255
out PORTB, temp
out PORTD, temp
out DDRD, temp
out DDRB, temp
in temp, MCUCR
ori temp, $30
out MCUCR, temp
sleep
out SREG, save_status
reti
skip_it:
inc low_timer
cp low_timer
breq inc_med
out SREG, save_status
reti
inc_med:
inc med_timer
cp med_timer
breq inc_high
_timer.
out SREG, save_status
reti
inc_high:
inc high_timer
out SREG, save_status
reti
αυτό είναι γραμμένο σε assembly...
Για να το χρησιμοποιήσεις πρέπει να το κάνεις hex. (κατέβασε το MPASM από το downloads!)
αυτό είναι γραμμένο σε assembly...
Για να το χρησιμοποιήσεις πρέπει να το κάνεις hex. (κατέβασε το MPASM από το downloads!)
Το MPASM είναι της microchip. Ο παραπάνω κώδικας και το STK500 που έχει το παιδί είναι της ATMEL. Άμα κάνει hex τον παραπάνω κώδικα με το MPASM εγώ θα πάω να γίνω βοσκός. :P
Το AVRStudio χρειάζεται, που προφανώς το είχε σε CD μαζί με το αναπτυξιακό.
Γράψε λάθος και εγώ της microchip είμαι ;)
ALAMAN, πόσο τον αγόρασες και απο που;
To παραπάνω πρόγραμμα το είχε στο CD του υποθέτω .
Έχεις κολλημένες κάποιες λέξεις μεταξύ τους , απο βιασύνη πιθανόν.(rcalldelay --> rcall delay)
Επίσης βλέπω απο τον κώδικα ότι δεν ορίζεις πουθενά τους βοηθητικούς καταχωρητές
που χρησιμοποιείς.
Πάντως για όλους όσους έχουν ελέυθερη τη σειριακή του PC τους και θέλουν
να κάνουν προγραμματισμό σε AVR, πριν λίγο καιρό είχα ανεβάσει ένα σχέδιο
προγραμματιστή με πολύ λίγα και φθηνά υλικά, πολύ εύκολο στην κατασκευή
και με προγράμματα που μπορούν να βρεθούν δωρεάν. Δεν είναι ανάγκη να πληρώνουμε
κάτι για να είναι καλό.
Αν και εσύ είσαι ο επιστήμονας ! αν θυμάμαι καλα θα δουλεύει ακόμα και αν του γράψεις κολλητά rcalldelay γιατί ο compiler της assembly ξεχωρίζει τις εντολές του ανά χαρακτήρα. Μπορεί να κάνω και λάθος βεβαια.
Χμ, μακάρι να μην είχα πληρώσει τον παράλληλο προγραμματιστή, και θα έφτιαχνα στο λεπτό τον σειριακό που έχεις δώσει...
Παιδια μετα απο πολλες προσπαθειες να φτιαξω ενα pic programmer με διαφορα σχεδια οπως picpro40, propic2 κτλ αγορασα αυτον http://www.quasarelectronics.com/3149.htm περιπου 65 euro μαζι με τα μεταφορικα και σωθηκα. Μην ασχοληστε να φτιαξετε με διαφορα σχεδια που κυκλοφορουν στο ιντερνετ. Ειναι και USB.
Το AVRStudio χρειάζεται, που προφανώς το είχε σε CD μαζί με το αναπτυξιακό.
Ναι με το AVRstudio το έκανα που είχε μέσα στο CD.
ALAMAN, πόσο τον αγόρασες και απο που;
Στη Θεσσαλονίκη στη Δωδεκανήσου απο τον Μουτσιούλη. Κανονικά είχε 105Ε
αλλα για μαθητές είχε 85Ε.
Έχεις κολλημένες κάποιες λέξεις μεταξύ τους , απο βιασύνη πιθανόν.(rcalldelay --> rcall delay)
Έστι τα είχε μέσα στο βιβλίο του κυκλώματος πουθέλω να κάνω.
Όταν έγραφα μερικές λέξεις πχ. (ldi, cbi, out, in)κ.α. τα γράμματα γινόνουσαν μπλέ. Γιατί :?:
...
ALAMAN, πόσο τον αγόρασες και απο που;
Στη Θεσσαλονίκη στη Δωδεκανήσου απο τον Μουτσιούλη. Κανονικά είχε 105Ε
αλλα για μαθητές είχε 85Ε.
....
Tο περασμένο Σάβατο πήγες? κι εγώ εκεί γύρω ήμουν, ψώνιζα....
....
Όταν έγραφα μερικές λέξεις πχ. (ldi, cbi, out, in)κ.α. τα γράμματα γινόνουσαν μπλέ. Γιατί :?:
Είναι τα highlights, σου χρωματίζει δηλαδή μερικές λέξεις για να τις αναγνωρίζεις πιο εύκολα.
ΤΑ rcalldelay πρεπει να ξεχωριστούν σε rcall delay διαφορετικα το AVR studio δεν καταλαβενει τα rcall σαν εντολές.
Χρωματίζει για να δείξει οτι την κατάλαβε σαν εντολή. Αν έχεις πχ ένα ορθογραφικό λάθος γιατί δεν θυμάσε πως γράφεται η εντολή θα το καταλάβεις επειδή δεν θα την χρωματίσει.
επίσης χωριστά πρέπει να γίνουν τα
rjump RESET
rcall sw_input
rjump compa
Επίσης για να τρέξει σε tiny2313 σίγουρα πρέπει να αλλάχθει το Include και να γίνει .inglude "tn2313def.inc" (με επιφύλαξη το tn2313 γιατι η δική μου έκδοση του Studio δεν υποτηρίζει αυτό το chip και δεν μπόρεσα να επιβεβαιώσω το όνομα του .inc για τον tiny2313.)
Ακόμα μήπως μετα δυο γραμμες απο το RESET: σου λείπει
rjump Timer_int
γιατί διαφορετικά μετά το timer interupt το προγραμμα δεν θα ξέρει που να παει!
εγω θα έγραφα
reset:
nop
nop
rjump timer_int
και αυτο ισχύει για τον 1200
στον
2313 θα πρέπει να βάλεις συνολικά 6 nop.
Ακόμα θα πρέπει μετα νο ορίσεις Stack pointer όπως σου έχω ξαναγράψει (αν ο tiny2313 έχει την ίδια παραξενία με τους at90s που πρέπει υποχρεωτικά να προγραμματίζεται το stack pointer στην αρχή.
Μάλλον στην κόκκινη βάση! Αλλά θα το κοιτάξω και θα σου πω το βράδυ ή αυριο.
Βάσικά κανε αυτές τις αλλαγές και δες οτι ο compiler του studio δεν σου βγάζει σφάλματα!
πόσο χρονόν είσαι ALAMAN αν επιτρέπεται? (επειδη είπες οτι κανει εκπτωση σε μαθητές)
Και μην αγχώνεσε.... ειναι 5-6 πραγματάκια που θα μάθεις στην αρχή και μετά θα προγραμματίζεις χωρίς κανένα πρόβλημα! :)
Tο περασμένο Σάβατο πήγες? κι εγώ εκεί γύρω ήμουν, ψώνιζα....
Αν και δεν θυμάμαι πολύ καλά, ναι πρέπει να πήγα το περασμένο Σάββατο.
Ακόμα μήπως μετα δυο γραμμες απο το RESET: σου λείπει
rjump Timer_int
Όχι εγώ οτι έβλεπα έγγραφα αλλα δεν έκανα κανένα λάθος.
Ακόμα θα πρέπει μετα νο ορίσεις Stack pointer όπως σου έχω ξαναγράψει (αν ο tiny2313 έχει την ίδια παραξενία με τους at90s που πρέπει υποχρεωτικά να προγραμματίζεται το stack pointer στην αρχή.
Τί ακριβώς είναι το stack pointer :?:
πόσο χρονόν είσαι ALAMAN αν επιτρέπεται?
16
Και μην αγχώνεσε.... ειναι 5-6 πραγματάκια που θα μάθεις στην αρχή και μετά θα προγραμματίζεις χωρίς κανένα πρόβλημα!
Το εύχομαι και εγώ αυτό. Αντε να δούμε.
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.