Forum: Mikrocontroller und Digitale Elektronik AVR-Atmega32 RS232 keine PC Verbindung?!


von Michael H. (kawoq)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mir bei Embedit das Atmega32 Prototype Board gekauft. Ich habe 
es ganz normal aufgebaut und über ISP den Bootloader aufgespielt! Danach 
wurde über RS232 ein einfaches LED Blinkprogramm aufgespielt!

Danach habe ich einen DS1307 aufgelötet, seitdem bekomme ich keine 
RS232-Verbindung zum AVR Studio, obwohl ich das selbe Kabel mit den 
selben Einstellungen verwende!

Gleichzeitig verwende ich ein komplett selbst gebautes Atmega32 Board, 
dass ebenfalls keine Verbindung über RS232 zum PC bekommt, diese 
Verbindung hat aber noch nie funktioniert!Dieses ist nach dem selben 
Schaltplan aufgebaut!

Bei beiden Platinen, läuft das Programm einwandfrei ab, Reset etc. 
funktioniert alles!

Ich habe schon viel probiert, RX/TX tauschen, Nullmodemadapter, 
irgendwie will nichts funktionieren!

Kann mir jmd sagen, wo das Problem liegen könnte, bin fast am 
Verzweifeln!!!!

Kann man irgendwie sagen, welches Kabel ich jetzt für die Verbindung 
PC>µC brauch? Nullmodem oder Normales Rs232?

Danke schonmal im Voraus!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Michael Hoffmann wrote:

> ich habe mir bei Embedit das Atmega32 Prototype Board gekauft. Ich habe
> es ganz normal aufgebaut und über ISP den Bootloader aufgespielt! Danach
> wurde über RS232 ein einfaches LED Blinkprogramm aufgespielt!
>
> Danach habe ich einen DS1307 aufgelötet, seitdem bekomme ich keine
> RS232-Verbindung zum AVR Studio, obwohl ich das selbe Kabel mit den
> selben Einstellungen verwende!

Den DS1307 finde ich im Schaltplan nicht. Wo sitzt der und wie ist der 
angeschlossen?

> Gleichzeitig verwende ich ein komplett selbst gebautes Atmega32 Board,
> dass ebenfalls keine Verbindung über RS232 zum PC bekommt, diese
> Verbindung hat aber noch nie funktioniert! Dieses ist nach dem selben
> Schaltplan aufgebaut!

Der Schaltplan ist seltsam. Die -----X sind normalerweise gedacht, um 
nicht verbundene Leitungen zu kennzeichnen. Ich hoffe das ist in der 
Realität nicht so. Apropos Realität: Wenn du eine Kamera oder einen 
Scanner hast, mach mal Bilder der Ober- und Unterseite der Platine(n). 
Informiere dich aber vor dem Einstellen in deinen nächsten Beitrag über 
Bildformate ;-)

> Bei beiden Platinen, läuft das Programm einwandfrei ab, Reset etc.
> funktioniert alles!
>
> Ich habe schon viel probiert, RX/TX tauschen, Nullmodemadapter,
> irgendwie will nichts funktionieren!
>
> Kann mir jmd sagen, wo das Problem liegen könnte, bin fast am
> Verzweifeln!!!!
>
> Kann man irgendwie sagen, welches Kabel ich jetzt für die Verbindung
> PC>µC brauch? Nullmodem oder Normales Rs232?

Nach dem Schaltplan ein Nullmodemkabel. TXD vom AVR geht zum Pin3 der 
DB9-Buchse. Beim PC ist auch TXD an Pin3 von dessen DB9-Buchse. D.h. im 
Kabel muss eine Kreuzung rein, also ein Nullmodemkabel.

Hast du schon ein anderes Kabel probiert oder das Kabel mit dem 
Durchgangsprüfer durchgepiepst? Vielleicht ist es ein ganz trivialer 
Fehler am Kabel?

von Michael H. (kawoq)


Lesenswert?

Hier der erweiterte Schaltplan : 
http://web.bs-cham.de/wiki/images/c/cd/Prozm32.pdf

Die mit ----x gekennzeichneten Leitungen habe ich nicht verbunden!Sind 
doch normal nur Pins, wo ich was abgreifen könnte!

Fotos folgen morgen!

Ich habe zwei Kabel zuhause liegen, hab beide schon probiert, mit und 
ohne Nullmodemadapter! Werd morgen mal die Kabel durchpiepsen und 
Bescheid geben!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Michael Hoffmann wrote:

> Die mit ----x gekennzeichneten Leitungen habe ich nicht verbunden! Sind
> doch normal nur Pins, wo ich was abgreifen könnte!

Ja, dann fehlt entweder die Verbindung vom Atmega32 zum MAX232. Das wäre 
dann eine sehr wahrscheinliche Ursache für das Problem. In dem 
erweiterten Schaltplan sind die Pins 14/15 am ATmega32 auch nicht 
verbunden.

Oder der Schaltplan entspricht nicht dem aktuellen Aufbau, weil du 
Strippen gezogen hast, die im Schaltplan nicht eingezeichnet sind. Wenn 
das der Fall ist, hast du mich erfolgreich veräppelt.

von Hoffmann Michael (Gast)


Lesenswert?

Der ATmega 32 ist mit RXD/TXD mit dem MAX232 verbunden, nur T2IN und 
R2OUT habe ich nicht verbunden! Bei dem erweiterten Schaltplan, sieht 
man nur die erweiterte Schaltung ohne die Grundbeschaltung!

von ATH (Gast)


Lesenswert?

Hi Michael

ich bin zwar auch noch nicht so sattelfest aber das mit dem 
Seriellenkabel kann ich die sagen - Es gibt welche z.B. von Hama für das 
flashen von SAT Recivern, Verstärkern und so - eine Seite mit Stecker 
eine Seite mit Buchse. Das Kabel funktioniert bei mir gut... zwar mit 
einem ATMega8 aber sonnst...

Das Board was Du hast, ist nicht zufällig ein Olimex? Bei meinem war die 
UART nicht mit dem MAX verbunden und ich habe eine Weile gebraucht, um 
zu kapieren, wie TXD und RXD vom ATMega mit dem MAX verbunden werden 
müssen (RXDMega > TXDMax und TXDMega mit RXDMax)...

Ausserdem hast Du ja noch die Freiheitgrade mit den Baud Einstellungen 
:-) Die hängen von der Quarzfrequenz ab - ich hatte vergessen, dass die 
auch im Makefile gesetzt werden - fieser Weise funktionierte das LED 
Blinkprogram trotzdem (interner Quarz)...

Hilft ja vielleicht.
Gruss,
Axel

von Michael H. (kawoq)


Lesenswert?

Also mein Board ist von Embedit, das Protoype Board!

MAX232 ist mit µC wie am Schaltplan verbunden, tauschen von RX und TX 
bewirkt keine Besserung! Hab auch einen fertigen TTL-Wandler-Bausatz 
verbaut( siehe Bild)

Baudeinstellung sind wie hier 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART eingestellt! 
Auf beiden Platinen ist ein 16Mhz Quarz verbaut!Bootloader wurde 
folgender verwendet http://web.bs-cham.de/wiki/index.php/MC-Bootloader

Hab momentan ein normales RS232 Kabel in Verwendung, dass ich aber mit 
Nullmodemadapter ausstatten kann! Außerdem habe ich jetzt auch ein 
USB->Rs232 Kabel, nix bewirkt eine Lösung!

Kann mir jmd sagen, welche Spg ich am MAX232 haben muss?Oder wie ich die 
Verbindung ansonsten testen könnte, ohne ein Programm aufzuspielen? Ich 
weiß wirklich nicht mehr weiter...

Als Anhang die Bilder meiner Controller:

http://img142.imageshack.us/my.php?image=imag0085ql8.jpg

http://img230.imageshack.us/my.php?image=imag0086xm6.jpg

http://img142.imageshack.us/my.php?image=imag0087ba6.jpg

http://img156.imageshack.us/my.php?image=imag0088qj0.jpg

von Karl H. (kbuchegg)


Lesenswert?

Michael Hoffmann wrote:

> Kann mir jmd sagen, welche Spg ich am MAX232 haben muss?Oder wie ich die
> Verbindung ansonsten testen könnte, ohne ein Programm aufzuspielen? Ich
> weiß wirklich nicht mehr weiter...

Nimm den µC aus seinem Sockel.
Verbinde im Sockel den Tx-Pin mit dem Rx-Pin.

Wenn deine Hardware korrekt ist, dann muss alles was du am PC in einem 
Terminalprogramm vor dich hintippst, am der Ausgabe im Terminal 
erscheinen.
Die 'Brücke' im Prozessor-Sockel sorgt dafür, dass sich der PC seine 
Zeichen selbst sendet.

Dazu muss aber am PC im Terminalprogramm
  lokales Echo abgeschaltet sein
  Kein Handshake eingestellt sein

Klappt dieser Test, dann hast du ein Softwareproblem.

Klappt er nicht, dann hast du ein Hardwareproblem. Leg einen Stein auf 
die Tastatur deines PC und lass den mal Dauersenden. Dann nimmst du eine 
LED samt Vorwiderstand und verfolgst mal die Signale auf deiner Platine: 
Sind sie am RS-232 Stecker noch vorhanden? Kommen sie bis zum MAX? An 
welchem Pin kommen sie dort an? Kommt auf der anderen Seite des MAX was 
raus? Kommt es beim Prozessor an? Und den ganzen Weg wieder zurück bis 
zum Kabel.
Bei 300 Baud müsstest du die LED wunderbar flackern sehen.

von Klaus (Gast)


Lesenswert?

was mist Du denn an pin 2 und 6 ?

von Michael H. (kawoq)


Lesenswert?

Also erstmal die Messung auf beiden Paltinen ohne PC Verbindung: Pin2 = 
ca.8V, Pin 6= ca- -8V

Den Test ohne µC drin, probier ich auch gleich mal!

von ATH (Gast)


Lesenswert?

Hi Michael

mit was Compilierst Du den WinAVR und AVRStudio auf Windows? Wenn ja - 
wie sieht den im C-Code der Wert für die CPU Frequenz aus und wie steht 
der im Makefile?

Ach ja - die Tests vom Moderator sind natürlich immer gut...

Axel

von Klaus (Gast)


Lesenswert?

>Also erstmal die Messung auf beiden Paltinen ohne PC Verbindung: Pin2 =
>ca.8V, Pin 6= ca- -8V

Das ist erstmal ok! Die Ladungspumpen arbeiten.
Hast Du einen Oszi zu Hand?

von Michael H. (kawoq)


Lesenswert?

ATH wrote:
> Hi Michael
>
> mit was Compilierst Du den WinAVR und AVRStudio auf Windows? Wenn ja -
> wie sieht den im C-Code der Wert für die CPU Frequenz aus und wie steht
> der im Makefile?
>
> Ach ja - die Tests vom Moderator sind natürlich immer gut...
>
> Axel

C-Compiler ist WinAVR, das Programm, das momentan drauf ist ist 
folgendes http://web.bs-cham.de/wiki/images/d/df/WvS-Sample.zip

von Michael H. (kawoq)


Lesenswert?

Klaus wrote:
>>Also erstmal die Messung auf beiden Paltinen ohne PC Verbindung: Pin2 =
>>ca.8V, Pin 6= ca- -8V
>
> Das ist erstmal ok! Die Ladungspumpen arbeiten.
> Hast Du einen Oszi zu Hand?

leider nein!

von Michael H. (kawoq)


Lesenswert?

Wie kann ich in HyperTerminal die Einstellungen für Echo und Handshake 
einstellen? Momentan steht zwar verbunden da, aber ich kann nix 
schreiben!

von Klaus (Gast)


Lesenswert?

dann wirds schwierig!

An den Pins 12 bzw 9 sollten in Ruhe ein H Pegel anliegen.

Wenn das so ist, kannst Du nur nach der Methode von
Karl heinz weitersuchen. mC raus Rx und Tx verbinden
und mit einem Trminal Prog. testen.

von Michael H. (kawoq)


Lesenswert?

Also bei der selber gebauten Platine, kann ich was schreiben und auch 
mein TX RX am RS232 Kabel leuchtet beim Tippen!

Zusatz: Das gekaufte Board geht jetzt auch mit Nullmodem Adapter!

Won finde ich nun den Fehler?

von Karl H. (kbuchegg)


Lesenswert?

Michael Hoffmann wrote:
> Wie kann ich in HyperTerminal die Einstellungen für Echo und Handshake
> einstellen? Momentan steht zwar verbunden da, aber ich kann nix
> schreiben!

Wenn ich mich recht erinnere, muss man die Einstellung vor dem Connecten 
vornehmen. Irgendwo gibt es einen Einstellungsdialog, dort wo du auch 
die Baudrate einstellst.
 Protokoll: keines.
Wo sich dich Einstellung für lokales Echo befindet, weiss ich nicht mehr 
genau, ist aber nicht weit davon entfernt.

von Karl H. (kbuchegg)


Lesenswert?

Michael Hoffmann wrote:
> Also bei der selber gebauten Platine, kann ich was schreiben und auch
> mein TX RX am RS232 Kabel leuchtet beim Tippen!

leuchtet sie dauerhaft oder flackert sie, wenn du was tippst?

von Michael H. (kawoq)


Lesenswert?

die LED´s im Stecker flackern, wenn ich dauernd was schreibe! Bei jedem 
Tastendruck keuchten sie einmal auf!

von Karl H. (kbuchegg)


Lesenswert?

Michael Hoffmann wrote:
> die LED´s im Stecker flackern, wenn ich dauernd was schreibe! Bei jedem
> Tastendruck keuchten sie einmal auf!

Das ist schon mal gut.
(Mit Stecker meinst du den µC-Sockel?)

von Michael H. (kawoq)


Lesenswert?

Karl heinz Buchegger wrote:
> Michael Hoffmann wrote:
>> die LED´s im Stecker flackern, wenn ich dauernd was schreibe! Bei jedem
>> Tastendruck keuchten sie einmal auf!
>
> Das ist schon mal gut.
> (Mit Stecker meinst du den µC-Sockel?)

Nein, ich hab ein USB auf RS232 Kabel, da sind vorne am RS232 Stecker 
drei LED's innen verbaut eins für Link und jeweils einer für RX bzw TX

von Karl H. (kbuchegg)


Lesenswert?

Michael Hoffmann wrote:
> Karl heinz Buchegger wrote:
>> Michael Hoffmann wrote:
>>> die LED´s im Stecker flackern, wenn ich dauernd was schreibe! Bei jedem
>>> Tastendruck keuchten sie einmal auf!
>>
>> Das ist schon mal gut.
>> (Mit Stecker meinst du den µC-Sockel?)
>
> Nein, ich hab ein USB auf RS232 Kabel, da sind vorne am RS232 Stecker
> drei LED's innen verbaut eins für Link und jeweils einer für RX bzw TX

OK
Heist das jetzt, der Quick&Dirty Schnelltest mit der Brücke im µC Sockel 
funktioniert?

(Bitte: drück dich klar aus, welchen Stecker, welche Leitung du 
untersuchst. Was testest du? Wie ist der Test ausgefallen? Wir auf 
dieser Seite des Monitors haben nur dein geschriebenes Wort. Wir sehen 
nicht, wo du deine Test-LED ranhältst, bzw. welches Kabel wo eingesteckt 
ist)

von Michael H. (kawoq)


Lesenswert?

ok sorry,
 also ich habe die Brücke von RX auf TX im Sockel des µC reingesteckt! 
Wenn ich im HyperTerminal etwas schreibe (Einstellungen wie oben 
beschrieben, ohne Echo etc.), leuchten die beiden RX/TX Led's im Stecker 
meines USB->RS232 Kabels bei jedem Tastendruck! Wenn ich eine Taste 
dauernd drücke, flackern die beiden LED's! Dies funktioniert bei beiden 
Platinen!

Ob damit der Test erfolgreich ist, würd ich selber gern wissen und wie 
es weitergeht?;-)

von Karl H. (kbuchegg)


Lesenswert?

Michael Hoffmann wrote:
> ok sorry,
>  also ich habe die Brücke von RX auf TX im Sockel des µC reingesteckt!
> Wenn ich im HyperTerminal etwas schreibe (Einstellungen wie oben
> beschrieben, ohne Echo etc.), leuchten die beiden RX/TX Led's im Stecker
> meines USB->RS232 Kabels bei jedem Tastendruck! Wenn ich eine Taste
> dauernd drücke, flackern die beiden LED's! Dies funktioniert bei beiden
> Platinen!
>
> Ob damit der Test erfolgreich ist, würd ich selber gern wissen und wie
> es weitergeht?;-)

Erfolgreich ist der Test erst, wenn Hyperterminal das Zeichen auch 
anzeigt. Tut es das?

Aber ich denke mal, man könnte das Flackern beider Leds so 
interpretieren, dass der MAX auch funktioniert (sonst würde die Led an 
der Leitung zum PC nicht flackern)

Wenn Hyperterminal das Zeichen nicht anzeigt (da gabs mal ein Problem) 
probier mal HTerm. Die Zeichen müssen kommen! Du kannst nicht 
weitertesten, wenn nicht sichergestellt ist, dass dein 'Messgerät' auch 
wirklich funktioniert.

von Michael H. (kawoq)


Lesenswert?

Achja das habe ich (wieder mal) vergessen, alles was ich tippe erscheint 
auch im HyperTerminal!

von Karl H. (kbuchegg)


Lesenswert?

Michael Hoffmann wrote:
> Achja das habe ich (wieder mal) vergessen, alles was ich tippe erscheint
> auch im HyperTerminal!

Uff. Schwere Geburt
Gut.

Dann hast du ein Softwareproblem.
Deine Hardware ist definitiv in Ordnung.

von Michael H. (kawoq)


Lesenswert?

;-) Inwiefern Softwareproblem? problem mit Bootloader oder mit dem 
Programm selber?

von Klaus (Gast)


Lesenswert?

>Inwiefern Softwareproblem?

Die Drahtbrücke im Sockel kann keine Befehle ausführen!

von Michael H. (kawoq)


Lesenswert?

Klaus wrote:
>>Inwiefern Softwareproblem?
>
> Die Drahtbrücke im Sockel kann keine Befehle ausführen!

Okay, leider hilft mir das so nicht weiter ( ich bin halt ein armer 
Laie)! Wie sehen Lösungsvorschläge aus?

von Klaus (Gast)


Lesenswert?

Hast Du den Quelltext der Software für den µC?
Wenn ja dann her damit! Kann Dir aber nur in ASM helfen.

von Michael H. (kawoq)


Lesenswert?

Klaus wrote:
> Hast Du den Quelltext der Software für den µC?
> Wenn ja dann her damit! Kann Dir aber nur in ASM helfen.

Software ist folgende 
http://web.bs-cham.de/wiki/images/d/df/WvS-Sample.zip

von Klaus (Gast)


Lesenswert?

ok das ist C dann sind andere dran.

mfg Klaus

von Michael H. (kawoq)


Lesenswert?

Also wie soll ich weiter vorgehen? bin euch allen schonmal sehr dankbar!

von Michael H. (kawoq)


Lesenswert?

Aufspielen eines anderen Programms hat auch nix gebracht... bitte um 
Lösungsvorschläge

von Klaus (Gast)


Lesenswert?

Du um Dir jetzt nicht zu nahe zu treten.

Das Programm muß auch zur Schaltung passen.

von Michael H. (kawoq)


Lesenswert?

Klaus wrote:
> Du um Dir jetzt nicht zu nahe zu treten.
>
> Das Programm muß auch zur Schaltung passen.

die Programme sind extra für die Schaltung geschrieben, wie auf 
http://web.bs-cham.de/wiki beschrieben! Also dürfte es von dem her 
eigentlich keine Probleme geben, da wir die auch im Unterricht 
verwenden!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Mann Mann Mann, 35 Antworten und kein Ende des Dramas in Sicht.

> C-Compiler ist WinAVR, das Programm, das momentan drauf ist ist
> folgendes
> http://web.bs-cham.de/wiki/images/d/df/WvS-Sample.zip
> ...
> Software ist folgende
> http://web.bs-cham.de/wiki/images/d/df/WvS-Sample.zip

In diesem Programm ist nullkommanix mit serieller Übertragung drin.

> Auf beiden Platinen ist ein 16Mhz Quarz verbaut!

In obigem Programm wird eine 14,756000 MHz Taktquelle verwendet. Das 
Blinken aus dem WvS-Sample Programm müsste +8,5% zu schnell sein! +8,5% 
Fehler reisst auch keine UART raus.

Den Quarz sieht man hier

> Hier der erweiterte Schaltplan :
> http://web.bs-cham.de/wiki/images/c/cd/Prozm32.pdf

garnicht. Hier

> Dateianhang: Mega32Proto.sch.pdf (189,7 KB, 72 Downloads)

sieht man Q1, aber es steht keine Taktrate dabei.

> Bootloader wurde folgender verwendet
> http://web.bs-cham.de/wiki/index.php/MC-Bootloader

Der Bootloader liegt auf der Seite nur in Binärform vor. Er heisst 
BL32-14MHz.hex. Im Artikel steht drin: Anmerkung Der Bootloader setzt 
einen AVR Mega32 Controller mit 14,756000 MHz Taktfrequenz voraus.

von Michael H. (kawoq)


Lesenswert?

Hallo,

erstmal tut mir Leid, dass ich auf dem Gebiet nicht fit bin, irgendwann 
muss halt jeder mal klein anfangen!

Es muss doch im Programm nichts mit serieller Übertragung drin sein, 
oder täusch ich mich? Ich bekomm im AVR Studio die Meldung "no supported 
board found", wenn ich ein programm aufspielen will.

Habe auch schon den 16Mhz Quarz gegen einen 14,756000 MHz Quarz 
ausgetauscht, bringt leider auch nichts!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Michael Hoffmann wrote:

> erstmal tut mir Leid, dass ich auf dem Gebiet nicht fit bin, irgendwann
> muss halt jeder mal klein anfangen!

Das braucht dir nicht leid zu tun. Fast alle haben klein angefangen.

Es nervt aber, dass deine Infos so tröpfeln. Die Schaltpläne sind nicht 
koscher. Die Programme sind nicht koscher. Es wird nicht genau erklärt, 
was du machst. Du spielst mal das und dann mal das Programm ein...

Sieh es mal so: Du sitzt vor dem Board und hast alle Tools und findest 
den Fehler nicht. Überleg mal wieviel schwieriger es ist, aus der Ferne 
den Fehler zu finden und wie man sich fühlt, wenn nach und nach Sachen 
rauskommen, die in die allererste Frage gehört hätten und wenn dann so 
"exakte" Beschreibungen kommen wie

> Habe auch schon den 16Mhz Quarz gegen einen 14,756000 MHz Quarz
> ausgetauscht, bringt leider auch nichts!

Gerade weil du noch Anfänger bist, geben sich alle hier Mühe dir zu 
helfen. Trotz der schlechten Frage.

> Es muss doch im Programm nichts mit serieller Übertragung drin sein,
> oder täusch ich mich?

Ich kann mich auch täuschen, aber der Betreff deiner Frage lautet:
AVR-Atmega32 RS232 keine PC Verbindung?!

Ich habe da erwartet, dass in den Atmega32 ein Programm eingespielt 
wurde, das eine serielle Übertragung vom/zum PC machen soll und dass es 
dabei Probleme gibt. Wenn nur ein Blinkprogramm drin ist, ist es klar, 
dass da keine RS232 PC Verbindung stattfindet.

> Ich bekomm im AVR Studio die Meldung "no supported
> board found", wenn ich ein programm aufspielen will.

Was machst du exakt? Wie kommt jetzt das AVR Studio ins Spiel? Du 
hattest oben bereits beschrieben, dass du erfolgreich Programme 
aufgespielt hast. Geht das jetzt nicht mehr? Wie bist du vorgegangen und 
was hast du gegenüber dem ersten paar Malen, den erfolgreichen Malen, 
verändert?

> Habe auch schon den 16Mhz Quarz gegen einen 14,756000 MHz Quarz
> ausgetauscht, bringt leider auch nichts!

Was hast du ausser dem Tauschen des Quarzes gemacht? Welche(s) 
Programm(e) hast du wie versucht aufzuspielen? Und was ist danach 
passiert?

Also ENTWEDER

1/ Einspielen des Bootloaders BL32-14MHz.hex über ISP
2/ Laufenlassen des Bootloaders und Einspielen des WvS-Sample.hex
Das geht nur, wenn die RS232 Übertragung zwischen µC und PC 
funktioniert.

ODER

1/ Einspielen des WvS-Sample.hex über ISP
Das sollte auch gehen, wenn die RS232 Übertragung zwischen µC und PC 
noch nicht funktioniert.

Beide Male mit dem 14,756000 MHz Quarz. Beim Blinkprogramm darauf 
achten, ob die Blinkzeiten von ca. 1s hinkommen oder ob irgendwas in der 
Gegend von 15s zu sehen sind.

Das Mega32 Prototype Board ist hier beschrieben:
http://www.wiki.elektronik-projekt.de/embedit/avr/prototype_boards/mega32_prototype_board
Welchen ISP-Adapter benutzt du?

von Michael H. (kawoq)


Lesenswert?

Stefan B. wrote:
> Michael Hoffmann wrote:
>
>> erstmal tut mir Leid, dass ich auf dem Gebiet nicht fit bin, irgendwann
>> muss halt jeder mal klein anfangen!
>
> Das braucht dir nicht leid zu tun. Fast alle haben klein angefangen.
>
> Es nervt aber, dass deine Infos so tröpfeln. Die Schaltpläne sind nicht
> koscher. Die Programme sind nicht koscher. Es wird nicht genau erklärt,
> was du machst. Du spielst mal das und dann mal das Programm ein...
>
Für die Programme und Schaltpläne kann ich leider auch nix, die wurden 
uns im Unterricht näher gelegt! Ja leider denke ich da nicht an alles, 
bin halt ein verwirrter Mensch ;-)


>
> Was machst du exakt? Wie kommt jetzt das AVR Studio ins Spiel? Du
> hattest oben bereits beschrieben, dass du erfolgreich Programme
> aufgespielt hast. Geht das jetzt nicht mehr? Wie bist du vorgegangen und
> was hast du gegenüber dem ersten paar Malen, den erfolgreichen Malen,
> verändert?
>
Ich habe über den AVR ISP Programmer mit PonyProg den Bootloader 
aufgespielt. Danach habe ich noch über die serielle Schnittstelle (da 
funktionierte sie noch, siehe erster Post) auf dem Embedeit Board meine 
zwei Controller mit dem Blink LED Programm beschrieben! Ich habe dann 
auf dem fertigen Board die Erweiterungsschaltung verdrahtet ( DS1307), 
danach bekam ich in AVR keine Verbindung mehr "no supported board 
found"! Das selbstgebaute Board, bekam von Anfang an keine Verbindung im 
AVR Studio!


>> Habe auch schon den 16Mhz Quarz gegen einen 14,756000 MHz Quarz
>> ausgetauscht, bringt leider auch nichts!
>
> Was hast du ausser dem Tauschen des Quarzes gemacht? Welche(s)
> Programm(e) hast du wie versucht aufzuspielen? Und was ist danach
> passiert?

Ich habe porbehalber probiert über ISP ein Programm zum Auslesen des 
DS1307 aufzuspielen, brachte aber auch keinen Unterschied!
>
> Also ENTWEDER
>
> 1/ Einspielen des Bootloaders BL32-14MHz.hex über ISP
> 2/ Laufenlassen des Bootloaders und Einspielen des WvS-Sample.hex
> Das geht nur, wenn die RS232 Übertragung zwischen µC und PC
> funktioniert.
>
> ODER
>
> 1/ Einspielen des WvS-Sample.hex über ISP
> Das sollte auch gehen, wenn die RS232 Übertragung zwischen µC und PC
> noch nicht funktioniert.
>
> Beide Male mit dem 14,756000 MHz Quarz. Beim Blinkprogramm darauf
> achten, ob die Blinkzeiten von ca. 1s hinkommen oder ob irgendwas in der
> Gegend von 15s zu sehen sind.
>
Also momentan ist der 14MHZ Quarz drin, aber auch mit dem 16MHZ habe ich 
keine Blinkzeiten von 15s, sondern auch so ca.1s!

> Welchen ISP-Adapter benutzt du?

http://shop.embedit.de/product__120.php

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Michael Hoffmann wrote:

> Ich habe über den AVR ISP Programmer mit PonyProg den Bootloader
> aufgespielt. Danach habe ich noch über die serielle Schnittstelle (da
> funktionierte sie noch, siehe erster Post) auf dem Embedeit Board meine
> zwei Controller mit dem Blink LED Programm beschrieben!

Mit dem 16 MHz Quarz und dem Bootloader BL32-14MHz.hex?

BL32-14MHz.hex basiert "auf einem Bootloader von Martin Thomas". Ich 
habe mir avrprog_boot_v0_85_20081203 bei Martin Thomas angesehen. Da ist 
keine automatische Baudratenanpassung drin, d.h. mit dem 16 MHz Quarz 
kann das nicht funktionieren.

Wenn BL32-14MHz.hex verwendet wird, muss der 14,756 MHz Quarz aufs 
Board.

Das Einspielen eines weiteren Programms mit Hilfe des Bootloaders über 
Rs232 ist dann leider nicht in dem Artikel 
http://web.bs-cham.de/wiki/index.php/MC-Bootloader beschrieben.

Eine Idee wie das Einspielen mit dem Bootloader funktioniert, gibt die 
Seite von Martin Thomas 
http://www.siwawi.arubi.uni-kl.de/avr_projects/#avrprog_boot

Soweit ich in der Source sehe und mir die Funktion von BL32-14MHz.hex 
zurechtreime, könnte es sein dass

1. das Terminalprogramm auf dem PC eingestellt werden muss auf
#define BAUDRATE 115200
2. innerhalb einer Wartezeit von
#define WAIT_VALUE 100 /* here: 100*10ms = 1000ms = 1sec */
muss dann
3. ein bestimmtes Zeichen kommen, um Programm vom PC zum µC zu 
übertragen
/* character to start the bootloader in mode START_WAIT */
#define START_WAIT_UARTCHAR 'S'

> Ich habe dann
> auf dem fertigen Board die Erweiterungsschaltung verdrahtet (DS1307),
> danach bekam ich in AVR keine Verbindung mehr "no supported board
> found"! Das selbstgebaute Board, bekam von Anfang an keine Verbindung im
> AVR Studio!

"In AVR" kenne ich nicht.

Um den Bootloader mit dem AVR ISP Programmieradapter von 
http://shop.embedit.de/product__120.php aufzuspielen, kannst du 
benutzen:

* Pony-Prog Tutorial
* AVRDUDE
* AVR-Studio, nur wenn z.B. das Plugin AVRISP V5 von Kanda 
installiert ist (STK200)

Wie sieht die Verdrahtung GENAU aus?

In den Schaltplänen sind Kontaktleisten eingezeichnet und es ist bisher 
nicht bekannt, wie du auf deinem Board was mit was verbunden hast.

Es kann sein, dass deine Verdrahtung des DS1307 den µC komplett am 
Arbeiten hindert!

Es kann sein, dass die Verbindung der TX und RX Leitungen zwischen µC 
und MAX232 falsch sind. Bei dem Hardwaretest oben würde man gekreuzte 
Leitungen nicht als Fehler erkennen, weil die Drahtbrücke in der 
IC-Fassung des µCs symmetrisch arbeitet - anders als ein UART eines µCs.

>>> Habe auch schon den 16Mhz Quarz gegen einen 14,756000 MHz Quarz
>>> ausgetauscht, bringt leider auch nichts!
>>
>> Was hast du ausser dem Tauschen des Quarzes gemacht? Welche(s)
>> Programm(e) hast du wie versucht aufzuspielen? Und was ist danach
>> passiert?
>
> Ich habe porbehalber probiert über ISP ein Programm zum Auslesen des
> DS1307 aufzuspielen, brachte aber auch keinen Unterschied!

Wie sieht dieses Ausleseprogramm aus?

Bist du sicher, dass

1. es im µC ist und läuft und
2. darin alle UART Befehle richtig sind
3. beim ISP programmieren des Ausleseprogramms (oder des Blinkprogramms 
vorher) der Bootloader im µC nicht kaputtgeschrieben wurde, d.h. wie 
sind die Fuses programmiert

> Also momentan ist der 14MHZ Quarz drin, aber auch mit dem 16MHZ habe ich
> keine Blinkzeiten von 15s, sondern auch so ca.1s!

Das heisst der µC läuft schon mal mit der externen Taktquelle (Quarz) 
und nicht auf dem internen RC-Oszillator. Das ist gut! Ca. 1s ist OK. 
Per Ansehen sieht man nicht, ob es ein 1s (14,756 MHz) oder 0,92s (16 
MHz) Blinken ist.

von Michael H. (kawoq)


Lesenswert?

Stefan B. wrote:
> Michael Hoffmann wrote:
>
>> Ich habe über den AVR ISP Programmer mit PonyProg den Bootloader
>> aufgespielt. Danach habe ich noch über die serielle Schnittstelle (da
>> funktionierte sie noch, siehe erster Post) auf dem Embedeit Board meine
>> zwei Controller mit dem Blink LED Programm beschrieben!
>
> Mit dem 16 MHz Quarz und dem Bootloader BL32-14MHz.hex?
>
> BL32-14MHz.hex basiert "auf einem Bootloader von Martin Thomas". Ich
> habe mir avrprog_boot_v0_85_20081203 bei Martin Thomas angesehen. Da ist
> keine automatische Baudratenanpassung drin, d.h. mit dem 16 MHz Quarz
> kann das nicht funktionieren.
>
> Wenn BL32-14MHz.hex verwendet wird, muss der 14,756 MHz Quarz aufs
> Board.
>
 Ja hab den 16Mhz Quarz gegend den 14Mhz ausgetauscht, aber erst nach 
dem  Aufspielen des Bootloaders!

>
> Soweit ich in der Source sehe und mir die Funktion von BL32-14MHz.hex
> zurechtreime, könnte es sein dass
>
> 1. das Terminalprogramm auf dem PC eingestellt werden muss auf
> #define BAUDRATE 115200
> 2. innerhalb einer Wartezeit von
> #define WAIT_VALUE 100 /* here: 100*10ms = 1000ms = 1sec */
> muss dann
> 3. ein bestimmtes Zeichen kommen, um Programm vom PC zum µC zu
> übertragen
> /* character to start the bootloader in mode START_WAIT */
> #define START_WAIT_UARTCHAR 'S'

wie bzw. wo kann ich das eingeben? in HyperTerminal?
>
>
> Um den Bootloader mit dem AVR ISP Programmieradapter von
> http://shop.embedit.de/product__120.php aufzuspielen, kannst du
> benutzen:
>
> * Pony-Prog Tutorial
> * AVRDUDE
> * AVR-Studio, nur wenn z.B. das Plugin AVRISP V5 von Kanda
> installiert ist (STK200)
>
 Habe es mit PonyProg gemacht, kam auch "write successful", Fuses sind 
wie auf der BS-Cham Website beschrieben eingestellt.

> Wie sieht die Verdrahtung GENAU aus?

Verdrahtung ist zu 100% wie am erweiterten Schaltplan, habs mehrfach 
überprüft!
>
> Es kann sein, dass die Verbindung der TX und RX Leitungen zwischen µC
> und MAX232 falsch sind. Bei dem Hardwaretest oben würde man gekreuzte
> Leitungen nicht als Fehler erkennen, weil die Drahtbrücke in der
> IC-Fassung des µCs symmetrisch arbeitet - anders als ein UART eines µCs.
>
 Kreuzen der TX/RX Leitung, brint mir im AVR Studio trotzdem "no 
supported board found"


>> Ich habe porbehalber probiert über ISP ein Programm zum Auslesen des
>> DS1307 aufzuspielen, brachte aber auch keinen Unterschied!
>
> Wie sieht dieses Ausleseprogramm aus?
>
  http://web.bs-cham.de/wiki/images/9/96/Wvs-lcd.zip

> Bist du sicher, dass
>
> 1. es im µC ist und läuft und

  habs über PonyPrg draufgezogen und es kam "write successfull", daher 
denke ich mal ja!

> 2. darin alle UART Befehle richtig sind

 Programm muss richtig sein, da es unser Lehrer etc. aktiv betreiben

> 3. beim ISP programmieren des Ausleseprogramms (oder des Blinkprogramms
> vorher) der Bootloader im µC nicht kaputtgeschrieben wurde, d.h. wie
> sind die Fuses programmiert

 Fuses sind wie auf der Website beschrieben eingestellt! Es funktioniert 
bei Mitschülern und dem lehrer auch einwandfrei, mit den verwendeten 
Fuses
>

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Michael Hoffmann wrote:

>> Wenn BL32-14MHz.hex verwendet wird, muss der 14,756 MHz Quarz aufs
>> Board.
>>
> Ja hab den 16Mhz Quarz gegen den 14Mhz ausgetauscht, aber erst nach
> dem  Aufspielen des Bootloaders!

Hauptsache der 14,756 MHz Quarz ist auf dem Board, wenn du versuchst mit 
dem Bootloader ein anderes Programm vom PC über RS232 auf den Atmega32 
zu schaffen oder überhaupt irgendwas mit RS232 versuchst.

>> Soweit ich in der Source sehe und mir die Funktion von BL32-14MHz.hex
>> zurechtreime, könnte es sein dass
>>
>> 1. das Terminalprogramm auf dem PC eingestellt werden muss auf
>> #define BAUDRATE 115200
>> 2. innerhalb einer Wartezeit von
>> #define WAIT_VALUE 100 /* here: 100*10ms = 1000ms = 1sec */
>> muss dann
>> 3. ein bestimmtes Zeichen kommen, um Programm vom PC zum µC zu
>> übertragen
>> /* character to start the bootloader in mode START_WAIT */
>> #define START_WAIT_UARTCHAR 'S'
>
> wie bzw. wo kann ich das eingeben? in HyperTerminal?

Teilweise. In HyperTerminal kannst du die Baudrate, Bitzahl, Parität und 
Stopbits einstellen. Und du kannst dort das S innerhalb 1 Sekunde nach 
Reset des Atmega32 eingeben. Wenn das alles stimmt plus die Verkabelung 
zum Atmega32, dann kannst du dem Bootloader vom PC aus ein anderes 
Programm  schicken.

Benutzen deine Mitschüler und der Lehrer ebenfalls das Hyperterminal, um 
andere Programme über den Bootloader einzuspielen oder benutzen die was 
anderes wie z.B. AVR Prog... aus dem Tools Menü von AVR-Studio? Du 
solltest deren Vorgehensweise und Einstellungen übernehmen.

>> Um den Bootloader ... aufzuspielen, kannst du
>> benutzen...
>
>  Habe es mit PonyProg gemacht, kam auch "write successful", Fuses sind
> wie auf der BS-Cham Website beschrieben eingestellt.

Sehr schön, wenigstens das Programmieren über ISP scheint zu 
funktionieren!

>> Wie sieht die Verdrahtung GENAU aus?
>
> Verdrahtung ist zu 100% wie am erweiterten Schaltplan, habs mehrfach
> überprüft!

Ich habe jetzt mehrfach gefragt und immer noch keine befriedigende 
Antwort. Ich sehe in beiden Schaltplänen nur Teilzeichnungen oder nicht 
verbundene Pins 14 und 15 (TXD und RXD) am Atmega32. Aber ich frage 
jetzt nicht mehr.

>> Es kann sein, dass die Verbindung der TX und RX Leitungen zwischen µC
>> und MAX232 falsch sind. Bei dem Hardwaretest oben würde man gekreuzte
>> Leitungen nicht als Fehler erkennen, weil die Drahtbrücke in der
>> IC-Fassung des µCs symmetrisch arbeitet - anders als ein UART eines µCs.
> Kreuzen der TX/RX Leitung, brint mir im AVR Studio trotzdem "no
> supported board found"

"no supported board found" wird bedeuten, dass der Bootloader sich nicht 
oder falsch meldet. Du hast zum Glück zwei Wege, um Programme auf das 
Board zu bringen:

1. Mit dem AVR ISP Programmieradapter
2. Mit dem Bootloader über eine RS232 Verbindung und ein 
Terminalprogramm.   Der Bootloader muss aber einmal auf Weg 1 
eingespielt worden sein.

Solange Probleme mit RS232 bestehen, macht es wenig Sinn einen 
Bootloader zu benutzen, bei dem RS232 fehlerfrei arbeiten muss. Deshalb 
würde ich das RS232-Testprogramm (s. unten) mit ISP einspielen!

>>> Ich habe porbehalber probiert über ISP ein Programm zum Auslesen des
>>> DS1307 aufzuspielen, brachte aber auch keinen Unterschied!
>> Wie sieht dieses Ausleseprogramm aus?
>   http://web.bs-cham.de/wiki/images/9/96/Wvs-lcd.zip

Das Programm wäre mir für den RS232 Test zu umfangreich/komplex. In dem 
Programm wird vor der Ausgabe per RS232 bereits die I2C Hardware 
angesprochen. Wenn dabei was schief geht, weil die Hardware nicht 
mitspielt, kommt das Programm überhaupt nicht zu der RS232 Ausgabe! 
Bedenke auch, dass die Probleme zum ersten Mal aufgetreten sind, nachdem 
die RTC eingebaut wurde!

Ich würde die folgende gestrippte Datei wvs-lcd.c ohne I2C und LCD 
benutzen. Wenn du das auch machst, rette die Originaldatei unter anderem 
Namen!

Hier (und im originalen wvs-lcd.c) werden möglicherweise andere RS232 
Parameter als im Bootloader (möglicherweise 115200 wie im Original von 
Martin Thomas) benutzt, d.h. im PC-Terminalprogramm anders einstellen 
(19200 plus Defaults aus dem Atmega32 Datenblatt bei Bitzahl, Parität 
und Stopbitzahl).
1
#include "global.h"      // include our global settings
2
3
int main (void) 
4
{
5
  // UART aus Library von Pascal Stang v1.3 aus 2003
6
  uartInit();                 // initialize UART (serial port)
7
  uartSetBaudRate(19200);     // set UART speed to 19200 baud
8
  rprintfInit(uartSendByte);  // configure rprintf to use UART for output
9
  while(1)
10
  {
11
    // send "hello world" message via serial port
12
    rprintf("Hello World\r\n");  
13
  }
14
} // Ende von main

>  Das Programm (originales wvs-lcd.c) muss richtig sein, da es unser Lehrer etc. 
aktiv betreiben

Dann hakt es irgendwo an der Hardware. Wie geschrieben, kann das die 
Realtimeclock und die Kommunikation mit der über I2C sein. Lass den Teil 
mal weg und konzentriere dich exklusiv auf RS232 mit obigem 
Programmvorschlag.

>> 3. beim ISP programmieren des Ausleseprogramms (oder des Blinkprogramms
>> vorher) der Bootloader im µC nicht kaputtgeschrieben wurde, d.h. wie
>> sind die Fuses programmiert
>
> Fuses sind wie auf der Website beschrieben eingestellt! Es funktioniert
> bei Mitschülern und dem lehrer auch einwandfrei, mit den verwendeten
> Fuses

War nur eine Möglichkeit. Schön, dass du diese Möglichkeit ausschliessen 
kannst.

von Michael H. (kawoq)


Lesenswert?

Problem gelöst: Tausch des µC durch einen neuen hat das Problem behoben! 
Danke für die Hilfe!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Klasse, dass du den Bug gefunden hast.
Eine Gedenkminute für den kleine Rechenknecht ;-)
Frohes Schaffen noch!

von Michael H. (kawoq)


Lesenswert?

ich hab doch noch ne Frage, wenn ich im AVR Studio auf "AVR Prog" gehe, 
kommt zwar das Programm Fenster, doch wenn ich auf Programm Flash 
klicke, kommt "can´t enter programm mode" und danach 
"Flushing"!Währenddessen steht da "Erased failed"! Scheint ein Problem 
mit der serielle Schnittstelle zu sein. Wenn ich die Fehlermeldungen 
öfters wegklicke schreibt er irgendwann  das Programm drauf(zeigt es 
zumindest an).Kann man den Fehler iwie eingrenzen?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Das betrifft dem Fall, bei dem der Bootloader bereits im Atmega32 ist 
und ein weiteres Programm mit dessen Hilfe in den Atmega32 gebracht 
werden soll?

Suche mal mit der richtigen Fehlermeldung: "can´t enter programming 
mode"

Hier ist eine Diskussion dazu, aus der du verschiedene Prüfmöglichkeiten 
entnehmen kannst: 
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=36947&start=0

Auf jeden Fall müsste man wissen, ob du mit einer regulären 
RS232-Verbindung arbeitest oder mit einem USB-RS232-Adapter. Beim 
USB-RS232-Adapter kann die Nummer der virtuellen COM Schnittstelle 
entscheidend sein. Und check mal, ob sich der Bootloader nach einem 
RESET des AVRs sauber in einem Terminalprogramm meldet. Wenn du ein 
Spannungsmessgerät hast, kannst du auch überprüfen, ob beim 
Programmierversuch der Resetpin des AVRs von HIGH nach LOW gezogen wird.

von Michael H. (kawoq)


Lesenswert?

wieder mal danke, lag an dem USB-RS232-Adapter! Jetzt läuft alles 
perfekt, ich bin euch (vor allem dir Stefan) ewig dankbar;-)

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.