Forum: Mikrocontroller und Digitale Elektronik C-Problem mit ATmega 32


von verfelixt (Gast)


Lesenswert?

Hallo zusammen,
ich bin derzeit dabei, mich in die C-Materie einzuarbeiten, und möchte 
als erstes einfach nur einen einzelnen Pin auf high schalten, um die 
daran angeschlossene LED zum leuchten zu bringen. Mein Programmcode dazu 
sieht wie folgt aus:

/*
 * Test.c
 *
 * Created: 24.02.2017 11:18:27
 * Author : Felix
 */

#include <avr/io.h>


int main(void)
{
    DDRA = 0xFF;
    PORTA = (1<<PA7);
    while (1)
    {
    }
    return 0;
}

Ich benutze Atmel Studio 7.0 . Möchte ich nun das Programm auf meinen 
ATmega32 überspielen, erhalte ich folgende Fehlermeldung:
"Failed to launch program. Error: Failed to start programming session 
before chip erase with eeprom preserve:Failed to enter programming mode. 
ispEnterProgMode: Error status received: Got 0xc0, expected 0x00 
(Command has failed to execute on the tool)"

Mein Programmieradapter ist der AVRISP mk2. Habe diesen in den 
Einstellungen auch ausgewählt, sowie den Takt variiert, das Ergebnis 
bleibt jedoch das gleiche. Spannungsversorgung am µC ist vorhanden, 
Treiber sind aktuell.
Bin aktuell ziemlich ratlos, habt ihr Ideen, wie ich das zum laufen 
bekomme?

LG Felix

von Stefan F. (Gast)


Lesenswert?

Rate mal, welche Info fehlt.
Bedenke, dass wir keine Hellseher sind.
Was ist wohl die Sprache der Elektronik?
Kleiner Tip: Strickmuster sind es nicht, aber etwas ähnliches.
Außerdem hat es vermutlich einen Grund, warum jedes Smartphone eine 
kamera enthält.
Du schaffst das schon.

von verfelixt (Gast)


Lesenswert?

Nein, ist mir so jetzt nicht klar. Was fehlt denn?

von Arduinoquäler (Gast)


Lesenswert?

verfelixt schrieb:
> Was fehlt denn?

Auch wenn du es nicht glaubst:

Der komplette Schaltplan!

von Arduinoquäler (Gast)


Lesenswert?

verfelixt schrieb:
> Spannungsversorgung am µC ist vorhanden,

Das reicht nicht.

von verfelixt (Gast)


Angehängte Dateien:

Lesenswert?

Arduinoquäler schrieb:
> verfelixt schrieb:
>> Spannungsversorgung am µC ist vorhanden,
>
> Das reicht nicht.

Sondern?

von Arduinoquäler (Gast)


Lesenswert?

verfelixt schrieb:
> Sondern?

Wenn du das was du als Schaltplan geliefert hast auch als
Schaltung hast dann reicht es. Nur beim Quarz müsstest du
noch nachbessern, der schwingt nämlich nicht da er keine
"MHz" hat.

von verfelixt (Gast)


Lesenswert?

Oh :) der hat 16 MHz

von Arduinoquäler (Gast)


Lesenswert?

Du hast am ISP Stecker MOSI und MISO vertauscht.

von verfelixt (Gast)


Lesenswert?

Okay, ich melde mich dann mal wieder, wenn ich das umgelötet habe.

von Brummbär (Gast)


Lesenswert?

Was ist das ein Konstrukt, einen 330 Ohm Widerstand zu überbrücken?

von Trumpeltier (Gast)


Lesenswert?

Brummbär schrieb:
> Was ist das ein Konstrukt, einen 330 Ohm Widerstand zu überbrücken?

Widerstand ist zwecklos.

Duck und wech...

von Karl M. (Gast)


Lesenswert?

Die Resetbeschaltung steht so in einer Atmel Application Bote und hat 
auch so seine Berechtigung.
Der Tasterkontakt "brennt" dadurch nicht ab.

von Matthias T. (mati123)


Lesenswert?

Karl M. schrieb:
> Die Resetbeschaltung steht so in einer Atmel Application Bote und hat
> auch so seine Berechtigung.
> Der Tasterkontakt "brennt" dadurch nicht ab.

Da steht aber auch min. 4K7, ich würde mal testweise etwas höher gehen. 
Und was soll die Diode? das habe ich bisher noch nicht gesehen.

von Stefan F. (Gast)


Lesenswert?

> Und was soll die Diode?

Die beschleunigt das Entladen des Kondensators, damit der Reset 
ordentlich erzeugt wird, wenn man die Spannungsversorgung nur ganz kurz 
aus und dann wieder einschaltet.

Ich halte die Diode allerdings für unnötig, da erstens der Kondensator 
relativ klein ist und zweitens der AVR ohenhin intern einen Reset macht.

Wenn der Kondensator 100µF hätte, würde ich die Diode emüpfehlen.

von Stefan F. (Gast)


Lesenswert?

Du kannst bei deinem Programmer die Taktfrequenz einstellen. Solange 
dein AVR noch jungfräulich ist, wird er wohl auf 1Mhz laufen, die 
Taktfrequenz des Programmers muss dann unter 250kHz liegen (immer 
weniger als 1/4 des CPU Taktes).

https://i.stack.imgur.com/ksMOs.png

von verfelixt (Gast)


Lesenswert?

Brummbär schrieb:
> Was ist das ein Konstrukt, einen 330 Ohm Widerstand zu
> überbrücken?

Exakt, auf dem PCB kann ich dann einfach die Leiterbahn wegkratzen und 
einen Widerstand auflöten, sobald ich da einen Widerstand einsetzen 
möchte.

Habe mich bei den Schaltungen an die Empfehlungen von Atmel gehalten:
http://www.atmel.com/Images/Atmel-2521-AVR-Hardware-Design-Considerations_ApplicationNote_AVR042.pdf

von verfelixt (Gast)


Lesenswert?

Arduinoquäler schrieb:
> Du hast am ISP Stecker MOSI und MISO vertauscht.

Das war es tatsächlich, danke für die Hilfe :)

LG Felix

von Karl M. (Gast)


Lesenswert?

Super Felix!

wie geht es bei Dir nun weiter ?

Welche Sprache wirst Du lernen und nach welcher Methode ?

verfelixt schrieb:
> Arduinoquäler schrieb:
>> Du hast am ISP Stecker MOSI und MISO vertauscht.
>
> Das war es tatsächlich, danke für die Hilfe :)
>
> LG Felix

von Felix S. (Firma: CvO Universität) (verfelixt)


Lesenswert?

Karl M. schrieb:
> Super Felix!
>
> wie geht es bei Dir nun weiter ?
>
> Welche Sprache wirst Du lernen und nach welcher Methode ?
>
> verfelixt schrieb:
>> Arduinoquäler schrieb:
>>> Du hast am ISP Stecker MOSI und MISO vertauscht.
>>
>> Das war es tatsächlich, danke für die Hilfe :)
>>
>> LG Felix

C - ich "kann" bereits das Arduino-C++ und möchte jetzt eine vollwertige 
Programmiersprache lernen.

von Arduinoquäler (Gast)


Lesenswert?

Felix S. schrieb:
> C - ich "kann" bereits das Arduino-C++

Nein. Wenn du "Arduino kannst", dann konntest du das Arduino
API erfolgreich verwenden/anwenden. Irgendwelche C++ Programmierung
(ausser die Verwendung von vorhandenen Klassen) hast du
deshalb noch nicht gemacht - aller Warscheinlichkeit nach.

Felix S. schrieb:
> und möchte jetzt eine vollwertige Programmiersprache lernen.

C++ ist eine vollwertige Programmiersprache. Ebenso wie C.
Das Arduino Framework ist keine Programmiersprache.

Fange klein an und versuche eines der Tutorials dieser Seite
hier durchzuarbeiten.

von Felix S. (Firma: CvO Universität) (verfelixt)


Lesenswert?

Arduinoquäler schrieb:
> Nein. Wenn du "Arduino kannst", dann konntest du das Arduino
> API erfolgreich verwenden/anwenden. Irgendwelche C++ Programmierung
> (ausser die Verwendung von vorhandenen Klassen) hast du
> deshalb noch nicht gemacht - aller Warscheinlichkeit nach.
>
> C++ ist eine vollwertige Programmiersprache. Ebenso wie C.
> Das Arduino Framework ist keine Programmiersprache.
>
> Fange klein an und versuche eines der Tutorials dieser Seite
> hier durchzuarbeiten.

Und wo habe ich bitte etwas anderes geschrieben?

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.