Hallo,
ich habe ein STK600 mit einer Socketcard für einem Atmega2560.
Hiermit habe ich auch diverse Schaltung getestet.
LED-Ansteuerung, Einlesen von Ausgängen, Timer, ADC ...
Bis jetzt habe ich immer über ISP programmiert.
Heute wollte ich die PWM-Ausgänge testen und übertrug folgendes
Programm.
Denke nicht, dass dies für das Problem verantwortlich ist. Ich möchte
dies jedoch der Vollständigkeit halber anführen (Viele Kommentare für
paar Zeilen Programm also nicht abschrecken lassen).
1 | #include <avr/io.h>
|
2 |
|
3 | // Internet Takt 128kHz
|
4 | // Der ADC ist an PortF angeschlossen, ADC0 --> PF0
|
5 | // Ausgaege des PortB sind negiert
|
6 | //
|
7 |
|
8 | int main(void)
|
9 |
|
10 | {
|
11 |
|
12 |
|
13 | /*
|
14 | Hinweis:
|
15 | 16Bit-Regiser immer direkt hintereinander auslesen
|
16 | unsigned int i;
|
17 | ...
|
18 |
|
19 | /* Set TCNTn to 0x01FF */
|
20 | //TCNTn = 0x1FF;
|
21 | /* Read TCNTn into i */
|
22 | //i = TCNTn;
|
23 |
|
24 |
|
25 | /*
|
26 | ADCSRA= 0b11100100; // Free running mode mit 128/2khz
|
27 | ADCSRB= 0b00001000; // Letzen 3 stehen auch für free running mode
|
28 | ADMUX = 0b11000111; // Referenz ADLAR und Eingang // ADLAR nicht gesetzt
|
29 | DDRB = 0b11111111; // Port B ist ein Ausgang 0b11111111 = 0xff
|
30 | DDRK = 0b01111111;
|
31 | PORTK= 0b00001111;
|
32 | */
|
33 |
|
34 | DDRL = 0b11111111;
|
35 |
|
36 | // Fast PWM 10Bit --> Zählerreset bei 0x03FF
|
37 | TCCR5A = (1<<WGM50) | (1<<WGM51);
|
38 | TCCR5B = (1<<WGM52) | (0<<WGM53);
|
39 |
|
40 | // Prescaller auf 1
|
41 | TCCR5B = (0<<CS52) | (0<<CS51) | (1<<CS50);
|
42 |
|
43 | //Register A aktivieren
|
44 | TCCR5C = (1<<FOC5A);
|
45 |
|
46 | //Duty-cycle einstellen
|
47 | OCR5A = 0x0FF;
|
48 | OCR5B = 0x0AF;
|
49 |
|
50 | int k = 0;
|
51 | while(1)
|
52 | {
|
53 |
|
54 | if(k=1)
|
55 | {
|
56 | PORTL= (1<<PORTL5);
|
57 | PORTL= (1<<PORTL7);
|
58 | k=k-1;
|
59 | }
|
60 | else
|
61 | {
|
62 | PORTL= 0x0;
|
63 | PORTL= 0x0;
|
64 | k=k+1;
|
65 | }
|
66 | }
|
67 |
|
68 | return 0;
|
69 | }
|
Nachdem ich das Programm überspielt hatte, wollte ich mit einem
Oszilloskop testen, ob an den Ausgängen eine PWM zu sehen ist.
Spannungsversorgung von Laptop aus über USB.
Netzstecker gezogen (Akku --> galvanische Trennung).
Netzwerkkabel am Laptop angeschlossen gelassen.
Oszilloskop mit GND verbunden und die Ausgänge des Ports L angeschaut.
PIN5 und 7 zeigen wie gewollt ein Rechteck. Die Pins für die
Hardware-PWM macht nicht (vermutlich Softwarefehler).
Der Atmega2560 ist über einen externen 16Mhz Takt angeschlossen
Ich hoffe, dass ich somit genug erklärt habe, um die Nettiquette zu
erfüllen.
Nun aber zu dem eigendlichen Problem:
Wenn ich nun das AVR Studio mit dem STK600 verbinde und zwischen den
Menüs "Programm, Fuses und LockBits" umschalte bekomme ich folgende
Fehlermeldung.
"There seems to be a short circuit on the ISP connector.
The MOSI, RESET and SCK line(s) appear to be short-circued.
The operation will be aborted."
Was habe ich anschließend versucht:
ISP-Frequenz gesenkt --> kein Erfolg
Atmega32L angeschlossen und über ISP eine Verbindung aufgebaut -->
funktioniert
Atmega2560 mit highvoltage angesteuert --> funktioniert
Atmega2560 mit JTAG angesteuert --> selbe Fehlermeldung
Atmega2560 mit highvoltage auf internen Takt gestellt --> Fehlermeldung
bleibt bei ISP
Kann sich das jemand erklären?
Wüsste nicht wie ich die ISP-Programmierung zerstört haben könnte.