Forum: Mikrocontroller und Digitale Elektronik Problem mit mySmart USB light und selbstgebauter Platine


von Philipp B. (phbu)


Angehängte Dateien:

Lesenswert?

Hallo Forum-Nutzer,

ich habe eine Platine geätzt (s. Anhang für Schaltplan und Layout), an 
der der mySmartUSB light angeschlossen (6-pol ISP) wird. Habe die 
Platine deswegen gemacht, weil mySmartUSB mkII keinen Testsockel 
(Nullkraftsockel) hat.

Die einzelnen Verbindungen (+5V, GND, MISO etc.) werden über Drähte 
realisiert. So ist also jeder AVR DIP-µC programmierbar.

Aktuell habe ich einen ATmega8515 in der Schaltung.

Als Programmierer nutze ich AVRDUDE mit folgender Befehlszeile:
1
sudo avrdude -p m8515 -c stk500v2 -P /dev/ttyUSB0 -e -Uflash:w:Test.hex -F

Ich bekomme allerdings folgende Fehlermeldung zurück:
1
avrdude: stk500v2_command(): command failed
2
avrdude: initialization failed, rc=-1
3
avrdude: AVR device initialized and ready to accept instructions
4
avrdude: Device signature = 0xc897c3
5
avrdude: Expected signature for ATmega8515 is 1E 93 06
6
7
avrdude done.  Thank you.

Der simple Assemblercode sieht folgendermaßen aus:
1
.include "8515def.inc"
2
3
; #Makros#
4
5
6
; #Code-Segment#
7
.cseg
8
  ; #Interrupts#
9
  .org 0x00 ; RESET
10
    rjmp RESET
11
  ; #Programm#
12
    RESET:
13
    ldi r16,0x00
14
    
15
  ; #Unterprogramme#
16
    
17
18
; #SRAM-Segment#
19
.dseg
20
  
21
; #EEPROM-Segment#
22
.eseg

Wo liegt der Fehler?

Danke im Voraus!

Mit freundlichen Grüßen
PHBU

von Wolfgang (Gast)


Lesenswert?

Philipp B. schrieb:
> Wo liegt der Fehler?

Wird die Signatur bei anderen Controllern richtig gelesen. Üblicherweise 
sollten die nach dieser, zugegeben nicht ganz aktuellen Liste alle mit 
0x1e9... anfangen.
http://www.avrfreaks.net/comment/821330#comment-821330

von Hubert G. (hubertg)


Lesenswert?

Spannung am µC gemessen. Reset liegt auf annähernd 5V und wird bei 
programmierbeginn auf 0V gezogen?

von Philipp B. (phbu)


Lesenswert?

Hallo nochmal,

>Spannung am µC gemessen. Reset liegt auf annähernd 5V und wird bei
>programmierbeginn auf 0V gezogen?

Hab vor meiner Fragestellung nur den RESET gemessen. Dieser wird von 5V 
sauber auf 0V gezogen (beim Programmieren).

Jetzt habe ich allerdings gemessen, dass die Versorgungsspannung 0V ist. 
Es leuchtet beim mySmartUSB light-Stick zwar die balue LED für die 
Datenübertragung, aber nicht die LED für die 5V-Versorgung.

Wie kann ich die in Linux aktivieren bzw. kann ich das avrdude 
mitteilen?

In der Windows-Software kann man glaub ich ja die Spannungen dort 
programmieren. Und in Linux??

Danke für eure Antworten!

Mit freundlichen Grüßen
PHBU

von Philipp B. (phbu)


Lesenswert?

Hallo nochmal,

es gibt eine Befehlsreferenz für den mySmartUSB light:
1
mySmartUSB-commands (release 07/2010)
2
=====================================
3
4
content:
5
  1. description
6
  2. commands
7
  3. batch-using and example
8
9
10
1. description
11
==============
12
13
The firmware of the mySmartUSB programmer has
14
beside the specific protocols (myMode, STK500, AVR9111/910/109)
15
an own protocol available to address additional features
16
of the mySmartUSB programmer.
17
18
Use the baud rate according to the actual mode.
19
20
protocol          Light   MK2    MK3
21
------------------------------------
22
23
AVR911/910/109      X      X      X
24
(baud 19200)
25
26
STK500              X      -      X
27
(baud 115200)
28
29
myMode              -      -      X
30
(baud 500000)
31
32
33
2. commands
34
===========
35
36
This additional protocol is activated by a identifier
37
which had to be  put in front of each command.
38
39
myAVR-commands, starting with 0xE6='æ'=Alt+0230, 0xBA=0186
40
41
"浺¹²³©" + command ( 0xE6 0xB5 0xBA 0xB9 0xB2 0xB3 0xA9 )
42
43
44
command Light    MK2    MK3    description
45
----------------------------------------------------------------
46
   
47
+        X       X       X     turn on board power supply
48
49
-        X       X       X     turn off board power supply
50
51
r        X       X       X     release reset on the attached board
52
53
i        X       X       X     return the Status of the programmer
54
55
I        -       -       x     return ProgMode
56
57
m        -       X       X     switch the programmer in myMode
58
59
p        -       X      (X)    switch the programmer in programming mode
60
61
d        -       X       X     switch the programmer in pass-through mode RS232
62
63
s        -       -       X     switch the programmer in STK500 mode
64
65
a        -       -       X     switch the programmer in AVR910 mode
66
67
q        -       X       X     switch the programmer in quiet mode
68
69
t        X       -       -     return emulationtype AVR911 ('a') or STK500 ('s')
70
71
v        X       X       X     return version as string
72
                               e.g. info ="2.03.1457"
73
74
C        -       X       X     turn on RescueClock
75
76
c        -       X       X     trun off RescueClock
77
78
R        X       -       -     reset programmer
79
80
B + xx   -       X       -     set baud rate; next Byte is UBRRL;
81
             8MHz: 51=19200, 34=28800,25=38400, 16=57600, (12=76800), 8=115200
82
83
W        X       -       -     powerOnBurn off
84
85
w        X       -       -     powerOnBurn on
86
87
%        X       -       -     return powerOnBurn on ('w') or off ('W')
88
89
3        X       -       -     switch to 3V
90
   
91
5        X       -       -     switch to 5V
92
93
^        X       -       -      return board nominal voltage '3' or '5' Volt
94
95
R        -       -       x     write current mode and ProgMode to EEPROM 
96
97
98
confirmation from the programmer: ["÷"+infos]+"÷±"+code+"\r\n"
99
100
101
3. batch-using and example
102
==========================
103
104
To perform a special command, you can call _mySmart.cmd.
105
106
This file has to be called with 2 parameters:
107
1.para=COM-port
108
2.para=CmdTxt-file
109
110
samlpe: _mySmart.cmd COM3 BoardPowerOn.txt

Über das Terminal habe ich zuerst den Befehl "浺¹²³©5", um die 
Versorgungsspannung auf 5V festzulegen, danach "浺¹²³©+" um die 
Versorgungsspannung letztendlich zu aktivieren, eingegeben.

Bei beiden Befehlen leuchten kurz (ca. 2 Sek.) alle LEDs. Danach gehen 
alle wieder aus.

Muss ich das verstehen?

Wäre dankbar für jede Hilfe!

Mit freundlichen Grüßen
PHBU

von Philipp B. (phbu)


Lesenswert?

Hat keiner eine Idee, wo der Fehler liegen könnte bzw. wie ich die 
Befehle richtig versende?

von Tymn (werwolf92)


Lesenswert?

Leg doch eine externe Spannung an. Mach dann auch gleich ein Pull Up an 
den Reset Pin dran.

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.