Hallo,
nun bin ich schon wirklich seit einigen Wochen dran mir eine Schaltung
zu bauen, mit der ich eine temperatur mit dem ic auf dem Computer
anzeigen kann, aber es klappt einfach nicht..... ich habe auch keine
Ahnung warum, das Lampen-testprogramm funktoniert, auch die UART geht
eigentlich (ich hab hier den in und output verbunden und die daten der
Tastatur kommen so wie beschrieben) - aber es wird es kommt eben über
den ic nichts am PC an.
Irgendwas ist falsch
- nun die Frage: wenn ich mir das STK500 kaufe, ist darauf dann alles
schon aufgebaut und ich muss nur noch den IC aufstecken und die RS232
anschließen und es läuft? (wenn ich das programm auf den IC aufgespielt
habe), ist der Quarz schon drauf?
Ist das meine Lösung?
Oder hat einer ein Board, auf dem das UART-beispiel vom Tutorial läuft
und verkauft mir es, mehr will ich ja garnicht.
Gruß und bitte um Hilfe
Pfeiffy
Du schreibst immer nur von „dem IC“. Offensichtlich meinst Du damit den
ATmega und das legt in der Tat nahe, dass es keinen zweiten IC gibt,
nämlich den MAX232 o.ä. Poste (oder beschreibe wenigstens) mal Deine
Schaltung mit Beschreibung des Fehlers.
Sich einen kompletten STK500 zuzulegen, weil man ein einfaches
anspruchsloses Design nicht zum Laufen bringt, scheint mir ein wenig
Kanonen auf Spatzen. Davon einmal abgesehen, ist er für den Einstieg
natürlich keine schlechte Wahl, aber nicht besonders nötig.
Hallo,
ja, da habe ich etwas vergessen, ich habe natürlich den Atmega8 und den
Max232. der Fehler ist, dass im Hyperterminal nicht ankommt.
Ich werde versuchen mein Schaltung zu skizzieren: die UART-
(Max)-Beschaltung habe ich genau aus dem Tutorial übernommen und die
Datenleitung mit Pin 2 und 3 des Atmega8 verbunden.
Die Beschaltung des Atmegas ist die in hier verwendete:
http://home.arcor.de/fuenfundachtzig/thermo/schaltplan.png
Ich weiss, im Tutorial hier ist eine andere Schaltung mit 4 MHZ
angegeben, abr diese hier müsste doch auch gehen - oder?
Gruß
Pfeiffy
Ein paar Anmerkungen zu deinem Schaltplan:
1. Jeder VCC-Pin des ATmegas sollte einen 100 nF KerKo haben (VCC +
AVCC)
2. Der Spannungsregeler braucht auch je einen 100 nF KerKo am Ein- und
Ausgang.
Ansonsten sollte das doch eigentlich funktionieren.
MfG
Marius
Somit hätten wir nun (wenigstens in etwa) die Hardware. Nun zeig mal
Deine Software (komplett posten, wenn länger, als Anhang). Und
beschreibe den Fehler: Kommt gar nichts? Kommen undefinierbare Zeichen?
Wenn ich Dich richtig verstanden habe, hast Du am µC-Sockel Rx und Tx
probeweise gebrückt und die Zeichen wurden geechot. Stimmt das? Bei
der gewählten Beschaltung mit externem Quarz: Hast Du die Fuses
geändert?
Im STK500 sind auch noch die Pins 6 mit 4 und 7 mit 8 an der 9pol. D-Sub
Buchse verbunden. Vielleicht werden diese Verbindungen von der
AVR-Studio Software abgefragt.
aber die Schaltung, die Du angegeben hast, hat einen 16 MHz-Quarz und
die Frage nach den Fuses hast Du bisher nicht beantwortet. Also: mit
welcher Frequenz von welchem Oszillator läuft Dein µC?
warum nimmst du nicht einfach den internen zähler auf 1mhz das reicht
für solsche sachen dicke und genau genug für sowas ist er auch, dann
haste schon einmal die fehlerquelle quarz und fusebits ausgeschlossen.
Als übertragungsrate nimmst du dann 1200 baud
Hallo,
ok - Fuses könnte nun wirklich mein Problem sein. Kannst du mir sagen,
was ich hier einstellen muss, wie gesagt habe ich den Atmega8 mit dem
externen 16 MHZ und den geposteten Code.
Gruß
Pfeiffy
(ich habe schon probiert die 4 MHZ in 16 umzuwandeln, ging aber auch
nicht)
Gruß
Pfeiffy
Probiers mal mit fcpu = 1MHz als Frequenzangabe im Programm.Wenn bis
jetzt die fuses noch nicht verändert worden sind, wird der interne
RC-Takt auf dieser Frequenz benutzt.
Einen anderen Test, auf welcher Frequenz der Kontroller im Moment läuft,
kann man über ISP machen:
ISP-Frequenz so hoch einstellen, dass das Lesen der Signatur nicht mehr
klappt. Dann ist die Bedingung ISP-Frequenz < 1/4 f-Takt verletzt. Die
Grenze ist zwar nicht so schrf, aber trotzdem ist ein Rückschluss auf
die Taktfrequenz möglich.
Hallo,
ich hab es nun probiert die Frequenz auf 1 MHZ umzustellen, aber es kam
auch nichts raus, danach habe ich probiert meinen Atmega8 auf 16MHZ
umzustellen, seitdem antwortet er garnicht mehr, hat aber die FUSES
richtig angezeigt!?.
Ich denke ich muss mich hier nun geschlagen geben, ich denke nicht dass
ich diese Schaltung, auch wenn Sie so simpel ist zum laufen bringe,
obwohl ich nun schon 8 Wochen dran bin, möglich wäre nun natürlich das
STK500, aber es ist wohl auch nicht Sinn der Sache für so ein einfaches
Problem.
Kann mir irgendjemand eine solche simple Schaltung verkaufen?,
eigentlich möchte ich nur eine Temperatur auf den PC bringen und dies
dann später mal erweitern, ich denke wenn ich mal eine Schaltung habe,
die funktioniert komme ich dann auch weiter?
Gruß und Dank Pfeiffy
Um TXD benutzen zu können, muss man natürlich auch den Portpin auf
Ausgang schalten.
Ansonsten solltest Du Dich nicht geschlagen geben, sondern kleiner
anfangen. Dein Quelltext sieht nicht so aus, als hättest Du ihn selbst
geschrieben und würdest jedes Wort genau verstehen. Mit Kopieren hast Du
zwar einen schnellen Erfolg, aber nichts gelernt. Das kehrt sich aber
schnell in einen Misserfolg um, wenn Du den kopierten Code nicht
nachvollziehen kannst und daher auch nicht auf Vollständigkeit prüfen
kannst. Da passiert es eben mal, dass der TXD-Pin nicht auf Ausgang
umgeschaltet wurde.
Mein Tip: Fang kleiner an, erarbeite Dir durch kleinere Projekte erstmal
etwas Grundwissen und Routine. Es reicht auch nicht, die Beispiele des
Tutorials zu kopieren. Und gewöhne Dich an den Grundsatz, keine
unverstandenen Programmteile fremder Herkunft zu verwenden. Ich verwende
zwar auch Programmroutinen, die ich nicht selbst geschrieben habe, aber
ich habe sie analysiert und kann sie nachvollziehen. Und ja, auch ich
habe klein angefangen...
...
Hallo,
ich hab ja klein angefangen, das Beispiel mit den Lampen an hat ja auch
funktioniert. Mein Problem ist halt, dass ich denke, dass ich in meiner
Hardware noch ein Problem habe, auf das ich einfach nicht komme.
Gruß
Pfeiffy
Hallo,
ok, ich habe den takt auf 1MHZ und 1200 Baud getaktet und es läuft aber
immer noch nichts. Was könnte denn noch eine Fehlerquelle sein, wenn ein
einfaches Beispiel mit port auf 1 oder null schalten funktioniert?
Kann ich irgendwie messen, ob auf dem TXD was rauskommt, oder gibt es
einen einfachen Quelltext, mit dem irgendetwas am com ankommt, damit ich
wenigstens mal weiss, ob die Fehlerquelle hardware ausgeschlossen ist?
Gruß
Pfeiffy
Wichtel schrieb:> Pfeiffy schrieb:>> Kann ich irgendwie messen, ob auf dem TXD was rauskommt>> Das Messgerät dazu heisst Oszilloskop
Wenn du kein Oszilloskop hast, reicht auch eine LED mit 220 Ohm
Vorwiderstand. Ein Ende an Masse und mit dem anderen Ende gehst du an
den Tx Pin vom µC. Wenn der sendet, dann blinkt die LED. Eher mehr
funzelt, aber das hängt von der Baudrate ab.
Hallo,
ich habe jetzt folgendes gemacht:
Programm mit 1200 Baud und 1 MHZ, mc programmiert.
Als Ergebnis messe ich am TXD eine Spannung von 3,88 bis 4,4 V
(flackert), am T1OUT vom Max232 messe ich 3,83 bis 3,78 V (flackernd),
übers Hyperteminal kommt über COM1 jedoch nichts an
(1200,8,keine,1,kein)?
was kann ich tun?
Gruß
Pfeiffy
Pfeiffy schrieb:> (flackert), am T1OUT vom Max232 messe ich 3,83 bis 3,78 V (flackernd),> übers Hyperteminal kommt über COM1 jedoch nichts an> (1200,8,keine,1,kein)?> was kann ich tun?
Weitersuchen.
Am Ausgang vom Max hast du ein Signal.
Was ist direkt an der Buchse, dan der das Kabel angesteckt wird?
Wenn du das RS232 Kabel ansteckst, ist dann am anderen Ende das Flackern
immer noch da? Ist es am richtigen Pin?
Hallo,
das Flackern habe ich auch, wenn ich das kabel am PC abziehe und dort
dann am Kabel messe am PIN mit der gleichen Nummer (also hier 2). Stecke
ich das kabel in den PC ein, flackert es wenige, so zwischen 3,88 und
3,89 V.
Gruß
Pfeiffy