PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATMega32 über RS232/USB Adapter an PC geht nicht



robodriver
08.06.2007, 18:31
hey leute ich habe folgendes Problem:
Ich nutze einen ATMega32 und habe ihn auf 8 MHz laufen. (externer Quarz und Fuses entsprechend gesetzt)
Vom Controller gehe ich über den MAX232 an einen seriell/USB Adapter und dann in den PC. Auf dem PC habe ich einen Treiber, der mir über den Adapter einen virtuellen COM-Port erstellt.
Diesen kann ich auf dem PC auch ohne weiteres öffnen und Daten senden (über LEDs angesehen)
so weit so gut.
Nun habe ich ein kleines Programm:



$regfile = "m32def.dat"
$crystal = 8000000
$baud = 9600

Ddra = &B00000111

Porta.1 = 1
Porta.2 = 0

Do
Print "Hallo Welt"
Porta.0 = 1
Wait 1
Porta.0 = 0
Wait 1
Loop


laut LEDs (temporär dran gehangen) wird auch alle sekunden etwas gesendet. Das Problem ist nur, das am PC absolut gar nichts ankommt.
Habe versucht die daten über BASCOM zu empfangen, über Hterm und über ein VB-Programm über das MSCOM steuerelement.
Leider kommt absolut gar nichts an. :(
Die Einstellungen für den COM-Port habe ich in der Hardwarekonfiguration entsprechend vorgenommen.

Die Hardware habe ich schon mehrfach überprüft. die haut 100%ig hin.

Hat irgendjemand noch eine Idee was da schief geht?

Gruß Robodriver

PS: Schaltplan ist im Anhang (Den ADS830 habe ich noch nicht in die Schaltung aufgebaut)

^^bitte den Post verschieben wenn er hier falsch ist

Gento
08.06.2007, 20:41
Ich sehe nicht so ganz ein warum Du externen 8 Bit Wandler benutzt.

Zum Kern:
Ich selbst benutze Mega 32 mit 16 MHZ und RS232 auf 9600 Baud.
Manche Kunden haben kein RS232 und drum teste ich selbst einige USB>RS232.
Mit Erfolg unterhält sich der PC > Mega32 >PC über USB im Dialog.

Einmal klappte es bei jemanden nicht, weil es soll auch wenige PC begabte geben.

Gento

Edit weil:Sollte der Elko an 2+6 nicht zur Masse gehen ?

robodriver
08.06.2007, 21:45
hm, also auf allen Plänen die ich bisher gefunden habe geht der Kondensator an Pin2 gegen + und der an Pin6 gegen Masse.

hier z.B. auch:
http://www.rowalt.de/mc/avr/avrbuch/AvrBoard.pdf

warum geht es bei dir und bei mir nicht? :(
Ich verstehe das nicht :(( möchte das entlich hin bekommen.


PS: ich nutze einen externen AD Wandler, weil der interne für meine Anwendung zu langsam ist. die 8MHz nutz ich auch nur vorrübergehend, die Schaltung soll später mal mit 18MHz laufen. (Wegen der Übertaktung, will ich jetzt erstmal mit 8MHz alles zum laufen bringen, um Fehlerquellen aus zu schließen)

Gento
08.06.2007, 21:55
von 2+6 den Elko an Masse , aber wer nicht will der hat schon.

Gento

robodriver
08.06.2007, 23:10
Also der Kondensator am Pin 6 (VS-) geht ja bereits an Masse.
Habe jetzt den Kondensator an Pin 2 (VS+) auch an Masse geschalten. Es funktioniert trotzdem nicht. (Polung der Kondensatoren hab ich wie im Schaltplan gelassen.

robodriver
11.06.2007, 09:05
Ich habe jetzt auch mal versucht meine Schaltung direkt an einen 386er Rechner zu hängen um auszuschließen, dass das Problem an dem seriell/USB Wandler liegt. Jedoch kommt auch auf dem PC scheinbar gar nichts am COM-Port an :(
Wie gesagt, wenn ich aber eine LED an die TxD-Leitung hänge sehe ich, das der Controller definitiv etwas sendet. (LED flackert kurz alle 1 Sekunden)

Mir ist eben noch aufgefallen:
Der MAX232 Invertiert das Signal ja auch noch, da ja bei RS232 eine logische 1 bei -3 bis -15 Volt liegt.
Jetzt habe ich aber gelesen das manche software-USARTs die Invertierung bereits im Controller selber vornehmen.
Wenn das der Fall ist, hätte ich ja eine doppelte Invertierung und somit wäre es dann doch wieder falsch.
Habe im Datenblatt des Mega32 nichts gefunden, wo steht ob er die Pegel normal oder Invertiert aqusgiebt.

Könnte da evtl. mein Fehler liegen?