Forum: Mikrocontroller und Digitale Elektronik Programm flashen - "avrdude.exe: verification error"


von Ch S. (spelli)


Lesenswert?

Hallo,

ich arbeite hier an einer Schaltung und kann auch den Code/das Programm 
auf einen ATmega8 flashen, allerdings erhalte ich folgende 
Fehlermeldung:



C:\Programme\WinAVR-20100110\bin\avrdude.exe -C C:\ ... programm.hex:a

avrdude.exe: warning: cannot set sck period. please check for usbasp 
firmware update.
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.03s

avrdude.exe: Device signature = 0x1e9307
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will 
be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: warning: cannot set sck period. please check for usbasp 
firmware update.
avrdude.exe: reading input file "C:\ ... programm.hex"
avrdude.exe: input file C:\ ... programm.hex auto detected as Intel Hex
avrdude.exe: writing flash (3524 bytes):

Writing | ################################################## | 100% 
17.13s

avrdude.exe: 3524 bytes of flash written
avrdude.exe: verifying flash memory against C:\ ... programm.hex:
avrdude.exe: load data flash data from input file C:\ ... programm.hex:
avrdude.exe: input file C:\ ... programm.hex auto detected as Intel Hex
avrdude.exe: input file C:\ ... programm.hex contains 3524 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 
15.36s

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x019e
             0x34 != 0xe5
avrdude.exe: verification error; content mismatch

avrdude.exe done.  Thank you.


Das Programm wird geschrieben... Es handelt sich um den USBasp 
programmer!

Fehlermeldung am Ende: "Error writing Flash"...

Könnte man die Fehlerursache irgendwie eingrenzen?

Danke,
Christoph

von CLock (Gast)


Lesenswert?

Ch Sp schrieb:
> cannot set sck period

Klingt nach falscher Angabe des Clocks.
Avrdude kann mit Deiner Angabe offenbar nix anfangen.

Was machst Du denn genau?

Gruss

von Ch S. (spelli)


Lesenswert?

Ist eine Steuerung für Servos, ganze genau so etwas hier:


http://www.google.de/search?tbm=isch&hl=de&source=hp&biw=1280&bih=646&q=kap&gbv=2&oq=kap&aq=f&aqi=g10&aql=&gs_nf=1&gs_l=img.3..0l10.871.1078.0.1305.3.3.0.0.0.0.94.164.2.2.0.qt4Ftf7iq8Q#hl=de&gbv=2&tbm=isch&sa=1&q=kap+rig&oq=kap+rig&aq=f&aqi=g1&aql=&gs_nf=1&gs_l=img.3..0.5115.5458.2.6119.3.3.0.0.0.1.514.1023.2-2j5-1.3.0.vK4OwDlegtw&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=e3c9fb3fe9a8299b&biw=1280&bih=646

Ich habe nun einen L293D eingebaut und seit dem gibts Probleme... Nehme 
ich den raus, bestehen die Probleme weiterhin...


Sowas hier schreibt er erfolgreich ohne Fehlermeldung:
1
$regfile = "m8def.dat"
2
$crystal = 7372800                                          ' 7,3728 Mhz Quarzoszillator an PB6 / XTAL 1
3
$hwstack = 32
4
$swstack = 32
5
$framesize = 32
6
7
Pwr_all Alias Portc.5
8
Config Pwr_all = Output
9
10
11
Wait 1
12
13
Do
14
15
16
Loop
17
18
End


Kann meine zuvor beschriebene Problematik auch an den Stack-Werten 
liegen?

von CLock (Gast)


Lesenswert?

.. ne, an den Stackwerten liegt das nicht.
Dein Proggi macht ja sowieso nix weiter.

Hast Du noch mehr Code?

Wie sieht die Schaltung aus?

Avrdude Setup?
Gehen andere Projekte mit den selben Einstellungen?

Schaltplan mit/ohne L293?

Was heisst:
>seit dem gibts Probleme... Nehme
>ich den raus, bestehen die Probleme weiterhin...

Was war vorher anders?

MEHR Infos bitte.

Gruss

von Ch S. (spelli)


Angehängte Dateien:

Lesenswert?

Hallo,

anbei ein Foto der Schaltung und ein Schaltungsplan, allerdings verwende 
ich den ATmega8 und auf den Drucksensor (MPX4115A) habe ich verzichtet.

Anbei der Code. Probleme gibts erst, seitdem ich den Motortreiber 
eingelötet hatte. Der Programmcode oben, welcher leer ist, ist der Code, 
der Successfully geschrieben wird...

Danke für die Hilfe!


1
' KAP-Rig Control  RX "Drachen" v. 0.19 / LCD / GPS / Befehle
2
' Stand: 19.04.2012
3
'
4
'
5
'
6
' Sendesyntax to GROUND: §GROUND#quittierung#zellspannung1#zellspannung2#gpshoehe#nn#
7
'
8
' Sendesyntax to KAPRIG: %KAPRIG#commands#nn#nn#nn#nn#
9
10
11
12
$regfile = "m8def.dat"
13
$crystal = 7372800                                          ' 7,3728 Mhz Quarzoszillator an PB6 / XTAL 1
14
$hwstack = 64
15
$swstack = 64
16
$framesize = 64
17
$baud = 9600
18
19
Pwr_all Alias Portd.2                                       'Abschaltung der Servos und LM2675 (5V für GPS, Video 5,8 GHz Tx)
20
Pwr_gps Alias Portd.3
21
Pwr_video Alias Portd.4
22
23
Led_rot Alias Portc.5
24
25
Pan1 Alias Portb.0
26
Pan2 Alias Portd.7
27
28
29
30
31
32
'Variablen
33
Dim Spannung As Word
34
Dim Zellspannung_orig As Single
35
Dim Zellspannung As String * 5
36
37
38
Dim Quittierung As String * 21
39
Dim Gpshoehe As String * 10
40
41
Dim Gps_zeichen As Byte
42
Dim Gpsdaten As String * 98
43
Dim Gps_header As String * 6
44
Dim Gps_anzahl As Byte
45
Dim Gps_teilstring(14) As String * 12
46
Dim Gps_hoehenteilstring(2) As String * 8
47
48
Dim Befehls_zeichen As Byte
49
Dim Befehlsdaten As String * 101
50
Dim Befehls_header As String * 6
51
Dim Befehls_anzahl As Byte
52
Dim Befehls_teilstring(5) As String * 21
53
54
Dim Temp(9) As Byte
55
Dim X As Byte
56
Dim Celsius As Integer
57
Dim T As Single
58
Dim Temperatur As String * 5
59
60
Dim A As Byte
61
62
63
64
65
66
'Portkonfiguration / Initialisierung
67
Config Pwr_all = Output
68
Config Pwr_gps = Output
69
Config Pwr_video = Output
70
71
Config Pan1 = Output                                        'LD293
72
Config Pan2 = Output
73
74
75
76
Config 1wire = Portd.3                                      ' Pin für 1wire Schnittstelle festlegen, Schnittstelle wird von BASCOM durch Software realisiert
77
78
Config Adc = Single , Prescaler = Auto , Reference = Avcc   'ADC Wandler definieren
79
80
Config Portb.1 = Output
81
82
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 8
83
84
85
86
Config Serialin = Buffered , Size = 128
87
Open "COMB.7:9600,8,N,1" For Input As #1                    'PB.7 = RxD SoftUART / GPS
88
89
90
91
Const Adc_multi = 0.0048828125                              ' = 5.0 / 1024.0 -> ADC auflösen
92
Pwr_all = 1                                                 ' bei Systemstart Peripherie auf ON
93
Pwr_gps = 1
94
Pwr_video = 1
95
96
Led_rot = 1
97
98
Pan1 = 0
99
Pan2 = 0
100
101
102
Declare Sub Xbee                                            ' Senderoutine, um $GROUND#... permanent zu senden
103
104
Start Adc
105
106
Enable Interrupts
107
108
109
Print "KaprigPRINT"
110
111
Wait 1
112
Led_rot = 0
113
Wait 1
114
Led_rot = 1
115
116
117
Do
118
119
120
   '==========Temperaturmessung mit DS18B20Z 1Wire============================
121
122
   1wreset
123
   1wwrite &HCC
124
   1wwrite &H44
125
   Waitms 800
126
127
   1wreset
128
   1wwrite &HCC
129
   1wwrite &HBE
130
131
132
   For X = 1 To 9
133
      Temp(x) = 1wread()
134
   Next
135
136
137
   Celsius = Makeint(temp(1) , Temp(2))
138
139
   T = Celsius / 16
140
141
   Temperatur = Fusing(t , "##.#")
142
143
144
   '==========Spannung LiPo 2S messen========================================
145
146
   Spannung = Getadc(0)                                     ' Zelle messen und berechnen
147
   Zellspannung_orig = Spannung * Adc_multi
148
   Zellspannung_orig = Zellspannung_orig * 2
149
   Zellspannung = Fusing(zellspannung_orig , "#.#")
150
151
   If Zellspannung_orig <= 6.4 Then                         ' Zellspannung unter/gleich 6,4 Volt (2x 3,2 Volt) dann...
152
      Gosub Lipo_saver
153
   End If
154
155
156
   '==========Rx Prüfen auf Befehlseingänge==================================
157
  '(
158
   Befehls_zeichen = Inkey()                                ' Zeichen einlesen
159
160
   If Befehls_zeichen = 36 Then Input , Befehlsdaten Noecho ' ist "$"  vorhanden, dann Daten/HardUART einlesen >> Befehlsdaten
161
162
      Befehls_header = Mid(befehlsdaten , 1 , 6)            'ersten 6 Zeichen nach Befehls_header einlesen
163
      If Befehls_header = "KAPRIG" Then                     'wenn KAPRIG Befehlssatz, dann
164
165
         Befehls_anzahl = Split(befehlsdaten , Befehls_teilstring(1) , "#")       'aus Befehlsdaten in 5 Teilstrings/Arrays, getrennt durch "#", aufteilen
166
         Befehlsdaten = ""                                  'befehlsdaten leeren
167
         Gosub Commands                                     ' Auswertung der Befehle/Teilstrings in Subroutine "commands"
168
169
      End If
170
')
171
172
   '==========GPS-Auswertung (NL-504ETT)=====================================
173
174
   Gps_zeichen = Inkey(#1)                                  ' Zeichen einlesen
175
176
177
   If Gps_zeichen = 36 Then Input #1 , Gpsdaten Noecho      ' ist "$"  vorhanden, dann Daten/SoftUART #1 einlesen >> Gpsdaten
178
179
      Gps_header = Mid(gpsdaten , 1 , 5)                    'ersten 5 Zeichen nach Gps_header einlesen
180
      If Gps_header = "GPGGA" Then                          'wenn GPGGA Befehlssatz, dann
181
182
183
         Gps_anzahl = Split(gpsdaten , Gps_teilstring(1) , ",")       'aus Gpsdaten in 14 Teilstrings/Arrays, getrennt durch ",", aufteilen
184
         Gps_anzahl = Split(gps_teilstring(10) , Gps_hoehenteilstring(1) , ".")       'Teilstring 10, Höhe xxx.xx, aufteilen in Wert vor dem "."
185
         Gpsdaten = ""                                      'gpsdaten leeren
186
         Gpshoehe = Gps_hoehenteilstring(1)                 'gpshoehe = Höhe in Metern vor dem Komma über Meeresspiegel
187
188
      End If
189
190
191
   Call Xbee                                                ' kontinuierliches Senden der Parameter
192
193
Loop
194
195
Eop:
196
Close #1
197
198
End
199
200
201
'----------------Befehlsbibliothek "Commands"-----------------------------------
202
203
Commands:
204
   Select Case Befehls_teilstring(2)
205
206
     Case "TAKEPHOTO"                                       ' Teilstring(2) auswerten auf "TAKEPHOTO"
207
     Locate 4 , 1
208
     Lcd Befehls_teilstring(2)
209
     Pwr_all = 0
210
     Waitms 500
211
     Pwr_all = 0
212
     Quittierung = "Photo is taken"
213
     Waitms 500
214
     Quittierung = ""
215
     Cls
216
     Pwr_all = 1
217
218
     Case "PAN_left"
219
220
      A = 60
221
      Compare1a = A
222
      Pan1 = 1
223
      Pan2 = 0
224
      Waitms 30
225
      Pan1 = 0
226
      Pan2 = 0
227
228
229
     Case "PAN_right"
230
231
      A = 60
232
      Compare1a = A
233
      Pan1 = 0
234
      Pan2 = 1
235
      Waitms 30
236
      Pan1 = 0
237
      Pan2 = 0
238
239
240
   End Select
241
242
243
244
   Select Case Befehls_teilstring(3)                        ' hier optionale Auswertung von weiteren Teilstrings
245
246
     Case ""
247
248
     Locate 4 , 1
249
     Lcd Befehls_teilstring(3) ""
250
251
252
253
   End Select
254
255
Return
256
257
258
259
'----------------LiPo-Saver/Abschaltung "Lipo_saver"----------------------------
260
261
Lipo_saver:
262
   Quittierung = "LiPo-Saver!"                              ' Quittierung an Bodenstation
263
   Stop Adc                                                 ' ADC abschalten um Strom zu sparen
264
   Stop Ac                                                  ' AC abschalten um Strom zu sparen
265
   Pwr_all = 0                                              ' testweise Ausgabe PWR_all = 0 --> hier: LED an!
266
   Locate 4 , 1
267
   Print "LiPo-Saver!"
268
   Waitms 500
269
   Quittierung = ""                                         'Quittierung löschen
270
271
272
Return
273
274
275
276
'----------------Sonstiges------------------------------------------------------
277
278
279
Sub Xbee
280
281
    Print "§GROUND#" ; Quittierung ; "#" ; Zellspannung ; "#" ; Gpshoehe ; "#" ; Temperatur ; "#"
282
    Print Gps_header
283
284
End Sub

von Ch S. (spelli)


Lesenswert?

Neee, es kommt zwar die Meldung "Flash successfully written" - jedoch 
läuft das o. g. Programm ohne Inhalt -aus dem 1. Thread-, also nur LED 
aufblinken etc. nicht...

von CLock (Gast)


Lesenswert?

Hats Du an dem Camera Steckverbinder was dran beim Programmieren?

Wenn ja, mach das mal ab.

Schau mir das heute Abend nochmal genauer an.


Gruss

von Ch S. (spelli)


Lesenswert?

Hallo, nein,

angeschlossen ist nur ein Servo, keine Kamera/kein GPS/Kein XBee

von Ch S. (spelli)


Lesenswert?

Es war ein Probleem mit der 1wire-Pin Belegung!!!

von CLock (Gast)


Lesenswert?

Schön zu lesen, dass es nun funktioniert.

Noch viel Spaß beim Projekt!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.