ein fröhliches Hallo an Alle,
ich habe seit einiger Zeit versucht einen Attiny12 zu programmieren aber
bei mir scheitert es schon daran das Atmel Evaluations Board von Pollin
per USB Programmer mit dem PC zu verbinden.
Daher die Frage: wer in Berlin oder Umland kann mir den Attiny (eine
oder mehrere) gegen eine kleine Aufwandsentschädigung programmieren bzw.
mir beibringen wie ich das selber hinbekomme (was mir am leibsten
wäre,Hardware ist vorhanden)
der Hexcode sowie der assembler Code ist vorhanden allerdings nur in
einem pdf Dokument - müsste daher wohl einmalig abgetippt werden.
Bitte um Hilfe, ich komm alleine nicht weiter.
dann fang am Besten schonmal mit abtippen an. Wenn du ein brennbares
File hast kannst du mal bei Segor nachfragen, Die hatten mal einen
Brennservice angeboten.
bye
Frank
bernte_one schrieb:> der Hexcode sowie der assembler Code ist vorhanden allerdings nur in> einem pdf Dokument - müsste daher wohl einmalig abgetippt werden.
Hast du schon mal "copy & paste" probiert. Das sollte deutlich weniger
fehlerträchtig sein.
Hallo,
bitte nur schreiben wenn ihr mir helfen könnt, wie gesagt es scheitert
schon an der Verbindung der Hardware. Und ja ich bin ein Noob auf dem
Gebiet. Also wer kann für mich programmieren (code auf chip laden) oder
mir zeigen wie es mit meiner Hardware geht.
Danke bisher für den Tip mit Segor aber ich bezahle lieber einen
Studenten der es auch braucht. Außerdem kann ich kein hexfile oder
Assembler code vorlegen sonder nur das besagte pdf mit text.
> dann fang am Besten schonmal mit abtippen an
1. OCR
2. aus vielen PDF-Doukenten kann man den Text auch extrahieren. z.B. mit
dem kostenlosen Foxit Reader www.foxitsoftware.com, läuft auch ohne
Installation
> aber ich bezahle lieber einen Studenten der es auch braucht> Außerdem kann ich kein hexfile oder> Assembler code vorlegen sonder nur das besagte pdf mit text.
Aufgabe des Studenten wäre es also,
1. den Assemblercode aus dem pdf Dokument abzutippen
2. den Assemlercode in einem (von dir oder dem Studenten zu liefernden)
Tiny12 hinein zu bringen
Sehe ich das richtig?
@tt2t
OCR macht die gleiche Arbeit wie abtippen, weil man alles nochmal ganz
genau korrekturlesen müsste....
ein falsches zeichen macht ev. schon dein programm nutzlos
Zeig doch mal das PDF mit dem Programm. Es ist doch ziemlich sicher
davon auszugehen, dass es auch als Source oder Hex im Internet zu finden
sein wird, denn eigentlich ist doch schon fast alles erfunden, was man
auf dem AVR programmieren kann. ;-) Umso mehr, da Du das Programm ja
auch irgendwoher bekommen und nicht selbst geschrieben hast.
> OCR macht die gleiche Arbeit wie abtippen, weil man alles nochmal ganz> genau korrekturlesen müsste....
Auch beim Abtippen muss man Korrektur lesen. Die Fehlerhäufigkeit bei
OCR ist heute schon verdammt niedrig, gerade bei PDFs (sofern es keine
eingescannten sind). Extrahieren aus PDF mit Foxt Reader ist aber noch
besser (wenn das Dokument geeignet ist).
..also nchmal Stück für Stück.
ATtiny12 liefer ich, die Zeichen die abzutippen wären umfassen nicht
ganz eine A4 Seite (glaub ich, war jedenfalls nicht viel) das wäre eine
einmalige Arbeit den Assembler code kann man ja speichern genauso wie
das hex file (hab da nicht so die Ahnung aber die Zeiche Tippe ich
selber in 20min ab)
ich selbst bin im besitz eine usb isp Programmier Adapters (ich glaube
er entsprucht den Protokollen Stk500 oder 200)
hab das Teil auch schon mit dem Board verbunden PC USB - USb ISp
Adapter- Programmier Bord (isp Anschluss)
Treiber für den Adapter sind installiert
Nun das Problem ich starte AVR Studio 4 und keine Ahnung wie es
weitergeht
(an dieser Stelle steckt der ATtiny bereits an der dafür vorgesehenen
Stelle auf dem Bord)
Hab mir auch schon ganz viel Tutorial durchgelesen aber ich blick da
einfach nicht durch (bei den ganze Einstellungen, Häckchen, Taktraten
usw.)
Also evtl gibt es ja jmd der mir zeigt wie ich aus dem Text im pdf ein
Assembler code erzeuge der für AVR studio brauchbar ist. Sowie mir
erklärt wie ich alle Einstellungen vornehme um den ATtiny12 bespielen zu
können.
So das ich das am Ende reproduzieren kann das wäre schön.
Alterntiv: wer kann das mal eben für ein paar Euro machen
@ bernte_one (Gast)
>Nun das Problem ich starte AVR Studio 4 und keine Ahnung wie es>weitergeht
Neues Projekt anlegen, Menu Poject -> Project Wizard
ASM Projekt, Namen vergeben, weiter, ATtiny1 als Typ auswählen.
Programm in das Sourcecodefenster kopieren, assemblieren mit F7.
Danach programmieren, Menu Tools -> Programm AVR -> Connect, Board
auswählen, connect
MFG
Falk
@bernte_one:
Die Zeit, die Du bisher hier mit Deinen Postings "vertrödelt" hast,
hättest Du den Assembler-Code schon tausend mal abgeschrieben....und
wenn es nur in eine (oder mehrere, je nach Code) einfache *.txt-Dateien
gewesen wäre...
ok,
danke erstmal für die Hilfe, ich werd es einfach nochmal probieren.
btw. wer wohnt in Berlin und kann mir für 40 Euro zeigen wie es geht,
falls ich doch nicht weiterkomme.
kommt drauf an wie lange er / sie dafür braucht
wenn ich davon ausgehe das ich recht aufnahmefähig bin
und das einfügen des codes in eine txt datei von mir übernommen wird der
Schwerpunkt also in AVR Studio und der Datenüberspielung (incl
anschließen der Hardware) liegt denke ich ist das fair uns ollte schnell
zu erledigen sein
hi bernd,
könnte dir da evtl. in berlin unkompliziert weiterhelfen, schicke mir
mal das pdf an tom at tktronic punkt de und ich sehe was sich da machen
lässt.
sollte nur einen zumutbaren zeitlichen rahmen nicht übersteigen.
gruss, tom.
Adlershof
ja ja sagt jetzt bitte nicht "ich hätte ja auch einen Studenten bei der
Uni anquatschen können" - denn ich war kurz davor
ich zieh den Code erstmal in ein txt Dokument dann könnt ihr ihn
einsehen dann mal schauen wer immer noch Lust hat mir zu zeigen wie es
geht.
Kann ja meine Hardware nochmal fotografieren damit man sich schon mal
vorher drauf einstellen kann.
ich bin aus köpenick. um wieviele ICs geht es dir denn?
meine, ich bin kein AVR lehrer oder so, nur AVR-verfechter... :) deine
hardware ist wahrscheinlich nicht allzu interessant für mich, genau so
wie das programm was du in den µC haben willst.
im wesentlichen könnte ich dir nur dabei helfen ein compilierbares oder
assemblierbares bzw. die .hex-datei in den AVR zu flashen und was du
dann damit machst ist dein ding...
..und vielleicht gleich noch den krams auf attiny13a portieren
(pinkompatibel+fehlerbereinigt), mit dem ollen attiny12 würde ich mich
nicht mehr rumärgern, die externe rc-beschaltung für den oszillator
kannste dann auch sparen. die applic wird ja nicht allzuviel tun,
schätze ich und dann kann man das mal fix in C machen...
also bernte - schaff mal dein pdf bzw. den asm sourcecode ran.
@ben
würde dein angebot annehmen, will ja auch keinen untterricht würde mir
schon reichen wenn ich dir mal über die schulter schauen kann, so dass
ich die schritte später selber nachvollziehen kann.
wäre schon gut wenn ich später auch andere programme auf den attiny
bekomme
will den code ja nicht selber schreiben, evtl nur leicht abwandeln.
Hauptsächliche geht es mir ja nur um den Ablauf bzw. die richtigegen
Einstellungen. Kann ja auch sei dass jmd der Ahnung hat gleich sagt
meine Hardware ist nutzlos.
wie bereits vom Vorredner vorgeschlagen könnte man wohl gleich einen
ATtiny 13 verwenden.
;-----------------------------------------------------------------------
;* Titel :Steuerung für Pulsdetektor BT1
;* Prozssor :AT-Tiny12 1,2 MHz intern
;* Sprache :Assembler
;* Datum :15.12.2003
;* Version :2.1
;* Autor :böses tier
;* Hardware :für BT1 Layot-Version 1.1
;* :PB0 an R220->LF357/6,
;* :PB1 an Poti,
;* :PB3 an R1K->BC547->R22->CNY17->IRF9640,
;* :PB2 an R1K->BC547->SPK,
;* :PB4 an R1K2->LED
;* :PB5 = RESET auf HI
;* Werkzeuge :SiSy 2.16 mit GNU Assembler/Linker 3.x, AVRDUDE 3.x
;-----------------------------------------------------------------------
.equ ACSR,0x08
.equ PINB,0x16
.equ DDRB,0x17
.equ PORTB,0x18
;-----------------------------------------------------------------------
.equ PulsDauer,4 ;1..20 ca 10..200 yS
.equ HalbZyklus,80 ;Gesamtzyklus ca 1,7 mS 2 mal 80+ yS
.equ Delay1,5 ;Sample-Delay 1 nach Pulsende 3-15
.equ Delay2,8 ;Sample-Delay 2 nach Delay 1
;-----------------------------------------------------------------------
rjmp main ;$000 Power On Reset handler
reti
reti
reti
reti
reti
;-----------------------------------------------------------------------
; Start, Power ON, Reset, I/O init
; bei ATiny12 kein SRAM und kein STACK initalisieren
main: nop
cbi DDRB,0 ; PB0 IN OPV comperator
cpi DDRB,1 ; PB1 IN poti comperator
sbi DDRB,2 ; PB2 OUT SPEAKER
sbi DDRB,3 ; PB3 OUT Endstufe
sbi DDRB,4 ; PB4 OUT LED
;-----------------------------------------------------------------------
mainloop: wdr
ldi r16,HalbZyklus ;wait ca. 800 yS
wait801: rcall wait10
subi r16,1
brcc wait801 ;Warteschleife
ldi r16,0b0001000 ;PB3=1
out PORTB,r16 ;IMPULS ON
wdr
ldi r16,PulsDauer ;wait 150 yS IMPULS
wait150: rcall wait10
subi r16,1 ;Warteschleife
brcc wait150
ldi r16,0b0000000 ;PB3=0
out PORTB,r16 ;IMPULS OFF
wdr
ldi r16,Delay1 ; 1. sampledelay
wait81: rcall wait10
subi r16,1
brcc wait81 ;Warteschleife
in r24,ACSR ;check COMPERATOR
ldi r16,0b0000000 ;alles aus oder ...
sbrs r24,5 ;wenn schwellwert skip next
ldi r16,0b0000100 ;PB2=1 Speakerimpuls Ton1
out PORTB,r16
ldi r16,Delay2 ; 2. sampledelay
wait82: rcall wait10
subi r16,1
brcc wait82 ;Warteschleife
in r24,ACSR
ldi r16,0b0000000 ;alles aus oder ...
sbrs r24,5 ;wenn schwellwert skip next
ldi r16,0b0010100
;breiter Sekundärimpuls PB2=1 PB4=1 LED=ON und Ton2
out PORTB,r16
wdr
ldi r16,HalbZyklus ; HI für LED und SPK
wait802: rcall wait10
subi r16,1
brcc wait802
ldi r16,0b0000000 ;alle Lichtel aus ;-) PB2-4
out PORTB,r16 ;LO für LED und SPK
skip: rjmp mainloop
;-----------------------------------------------------------------------
--
wait10: ldi r25,2 ;warte 10 yS bei 1,2MHz
w10: subi r25,1
brcc w10
ret
;-----------------------------------------------------------------------
--
bernte_one schrieb:> main: nop> cbi DDRB,0 ; PB0 IN OPV comperator> cpi DDRB,1 ; PB1 IN poti comperator> sbi DDRB,2 ; PB2 OUT SPEAKER> sbi DDRB,3 ; PB3 OUT Endstufe> sbi DDRB,4 ; PB4 OUT LED
Das CPI ist bestimmt ein Tippfehler... ;-)
Denn CPI vergleicht ein Register (r16..r31) mit einer Konstante, da ist
nix mit Datenrichtung...
Meinst Du nicht, dass es einfacher wird, eine konkrete Aufgabenstellung
zu machen, die besagt, was genau das Programm machen soll und es dann
für einen Tiny13 neu zu schreiben? Dem vorhandenen Quältext kann ich
jedenfalls nicht allzuviel abgewinnen.
...
bernte,
programme assemblieren nach min. änderungen wg. avr-assembler statt gnu.
kauf dir attiny13a im dip8 bei segor oder wo immer auch.
mach mal selbst zwei projekte im avr-studio und versuche erfolgreich zu
übersetzen.
die hex-files sehen evtl. leicht unterschiedlich aus zum original
hex-dump, sollte aber kein problem sein.
dann ic in den sockel deines pollin boards, spannungsversorgung
anschliessen, serielles kabel zw. PC und das eva-board (1:1 Kabel, kein
nullmodem glaube ich), dort den zum ISP führenden anschluss verwenden.
ponyprog installieren und damit versuchen dich zu connecten.
du MUSST eine vollwertige serielle schnittstelle am PC haben, billig
USBzuRS232-Wandler zeugs geht nicht, da der konverter auf dem eval-board
modem-steuersignale benutzt.
wenn der connect geht musst du die fuses des tiny13a auf 9,6MHz
oszillator stellen und Clockdiv/8 aktivieren. so läuft dein programm
dann wie der tiny12 mit 1,2Mhz dann.
viel erfolg, und wenn gar nix geht evtl. nexte woche Do abend bei mir in
Berlin, email siehe mein posting.
tom
>>>> hier mal die appliks:
;-----------------------------------------------------------------------
;* Titel :Steuerung für Pulsdetektor BT2
;* Prozssor :AT-Tiny12 1,2 MHz intern
;* Sprache :Assembler
;* Datum :29.0.2004
;* Version :1.3
;* Autor :böses tier
;* Hardware :für BT2 Layot-Version 1.9
;* :PB0 an Poti,
;* :PB1 an R220->LF357/6,
;* :PB3 an IRF9640,
;* :PB2 an SPK,
;* :PB5 = RESET auf HI
;* Werkzeuge :SiSy 2.16 mit GNU Assembler/Linker 3.x, AVRDUDE 3.x
;-----------------------------------------------------------------------
#define ACSR 0x08
#define PINB 0x16
#define DDRB 0x17
#define PORTB 0x18
#define WDTCR 0x21
;-----------------------------------------------------------------------
#define PulsDauer 10 ;1..20 ca 10..200 yS
#define Zyklus 200 ;Gesamtzyklus ca 1,7 mS 2 mal 80+ yS
#define Delay 3 ;SampleDelay
;-----------------------------------------------------------------------
rjmp main ;$000 Power On Reset handler
reti
reti
reti
reti
reti
;-----------------------------------------------------------------------
; Start, Power ON, Reset, I/O init bei ATiny12 kein SRAM und STACK
main: nop
ldi R24,0x1F
out WDTCR,R24
ldi R24,0x17
out WDTCR,R24
; ------ watchdog is disable ----------------------
cbi DDRB,0 ; PB0 IN OPV comperator
cbi DDRB,1 ; PB1 IN poti comperator
sbi DDRB,2 ; PB2 OUT SPEAKER
sbi DDRB,3 ; PB3 OUT Endstufe
;-----------------------------------------------------------------------
-
ldi r17,0b001000
ldi r16,0b001100
mainloop: nop
out PORTB,r16 ;IMPULS OFF
;---------------------------------------------------
ldi r18,Zyklus
waitZyklus: rcall wait10
subi r18,1
brcc waitZyklus ;warteschleife
;---------------------------------------------------
eor r16,r17
out PORTB,r16 ;IMPULS ON
ldi r18,PulsDauer ;wait 150 yS IMPULS
waitPuls: rcall wait10
subi r18,1 ;warteschleife
brcc waitPuls
eor r16,r17
out PORTB,r16 ;IMPULS OFF
;---------------------------------------------------
ldi r18,Delay ;wait ca 20-40 yS
sampleDelay: rcall wait10
subi r18,1
brcc sampleDelay ;warteschleife
in r24,ACSR ;check COMPERATOR
ldi r16,0b0001000 ;alles aus oder ...
sbrc r24,5 ;wenn schwellwert skip next
ldi r16,0b0001100 ;PB2=1 Speakerimpulse Ton1
skip: rjmp mainloop
;---------------------------------------------------------------------
wait10: ldi r25,1 ;warte 10 yS
w10: subi r25,1
brcc w10
ret
;---------------------------------------------------------------------
>>>>und die andere:
;-----------------------------------------------------------------------
;* Titel :Steuerung für Pulsdetektor BT1
;* Prozssor :AT-Tiny12 1,2 MHz intern
;* Sprache :Assembler
;* Datum :15.12.2003
;* Version :2.1
;* Autor :böses tier
;* Hardware :für BT1 Layot-Version 1.1
;* :PB0 an R220->LF357/6,
;* :PB1 an Poti,
;* :PB3 an R1K->BC547->R22->CNY17->IRF9640,
;* :PB2 an R1K->BC547->SPK,
;* :PB4 an R1K2->LED
;* :PB5 = RESET auf HI
;* Werkzeuge :SiSy 2.16 mit GNU Assembler/Linker 3.x, AVRDUDE 3.x
;-----------------------------------------------------------------------
#define ACSR 0x08
#define PINB 0x16
#define DDRB 0x17
#define PORTB 0x18
;-----------------------------------------------------------------------
#define PulsDauer 4 ;1..20 ca 10..200 yS
#define HalbZyklus 80 ;Gesamtzyklus ca 1,7 mS 2 mal 80+ yS
#define Delay1 5 ;Sample-Delay 1 nach Pulsende 3-15
#define Delay2 8 ;Sample-Delay 2 nach Delay 1
;-----------------------------------------------------------------------
rjmp main ;$000 Power On Reset handler
reti
reti
reti
reti
reti
;-----------------------------------------------------------------------
; Start, Power ON, Reset, I/O init
; bei ATiny12 kein SRAM und kein STACK initalisieren
main: nop
cbi DDRB,0 ; PB0 IN OPV comperator
cbi DDRB,1 ; PB1 IN poti comperator
sbi DDRB,2 ; PB2 OUT SPEAKER
sbi DDRB,3 ; PB3 OUT Endstufe
sbi DDRB,4 ; PB4 OUT LED
;-----------------------------------------------------------------------
mainloop: wdr
ldi r16,HalbZyklus ;wait ca. 800 yS
wait801: rcall wait10
subi r16,1
brcc wait801 ;Warteschleife
ldi r16,0b0001000 ;PB3=1
out PORTB,r16 ;IMPULS ON
wdr
ldi r16,PulsDauer ;wait 150 yS IMPULS
wait150: rcall wait10
subi r16,1 ;Warteschleife
brcc wait150
ldi r16,0b0000000 ;PB3=0
out PORTB,r16 ;IMPULS OFF
wdr
ldi r16,Delay1 ; 1. sampledelay
wait81: rcall wait10
subi r16,1
brcc wait81 ;Warteschleife
in r24,ACSR ;check COMPERATOR
ldi r16,0b0000000 ;alles aus oder ...
sbrs r24,5 ;wenn schwellwert skip next
ldi r16,0b0000100 ;PB2=1 Speakerimpuls Ton1
out PORTB,r16
ldi r16,Delay2 ; 2. sampledelay
wait82: rcall wait10
subi r16,1
brcc wait82 ;Warteschleife
in r24,ACSR
ldi r16,0b0000000 ;alles aus oder ...
sbrs r24,5 ;wenn schwellwert skip next
ldi r16,0b0010100
;breiter Sekundärimpuls PB2=1 PB4=1 LED=ON und Ton2
out PORTB,r16
wdr
ldi r16,HalbZyklus ; HI für LED und SPK
wait802: rcall wait10
subi r16,1
brcc wait802
ldi r16,0b0000000 ;alle Lichtel aus ;-) PB2-4
out PORTB,r16 ;LO für LED und SPK
skip: rjmp mainloop
;-----------------------------------------------------------------------
--
wait10: ldi r25,2 ;warte 10 yS bei 1,2MHz
w10: subi r25,1
brcc w10
ret
;-----------------------------------------------------------------------
--