Hallo,
Also mein Projekt ist ein Atmega8, Display und Temperatursensor der pro
Kelvin änderung 10 mV die Ausgangsspannung ändert und am ADC
digitalisiert wird. Spannung und Temp wird auf UART und Display
ausgeben. UART Ausgabe funktioniert auch (am Board, aber nicht auf der
Platine implementiert). Wenn ich die Spannung von dem Sensor mit dem
Multimeter nachmesse, stimmt sie innerhalb der +-5mV
Digitalisierungsgenauigkeit mit dem angezeigten Wert aufm Display
überein.
Als Indikator ob der Chip auch schön seine Aufgabene abarbeitet blinkt
ein LED im Sekundentakt.
( also Led pin eingeschaltet -> ADC, LCD ausgabe, UART wird abgearbeitet
-> Led pin ausgeschalten)
Also am Polling Evaluation Board alle Funktionen gestet und alles hat
funktioniert.Der chip benutz 8mhz interner Takt. Also sollte unabhängig
vom Board sein.
Nächstest Ziel ist das ganze auf eine Platine zu löten. So und da ist
der Wurm drin...die meiste Zeit funktioniert ist, aber eben nur die
meiste Zeit, bis auf ein paar Macken die ich mir nicht erklären
kann...(muss auch sagen meine Elektronik Kentnisse sind eher bescheiden,
nicht prügeln wenn ich einen ganz offensichtlichen Fehler gemacht
habe)als Spannungsquelle für die Platine habe ich das Pollin Evaluation
board angezapft (die stabilisierte Spannungsquelle implemntiere ich erst
psäter selbst auf der Platine)
a) Wenn ich das Netzteil fürs Evaluation Board anstecke....Blickt das
Indikator Licht im 2 Sekunden Takt...obwohl es in der Programmierung 1
sek blinken soll, und auf dem Evaulation Board auch macht...erst nach
ein paar mal Reset auf 0 ziehen wirds es normal...aber mal öfters mal
weniger oft...scheint mir irgenwie Glückspiel zu sein und ich kann kein
Muster dahinter erkennen. Jedenfalls anstecken -> chip läuft normal,
funktioniert nicht. Wenn es dann einmal läuft, läuft es und der Chip
macht seine aufgaben wie er soll...
b) Ich hab wie in so einigen Grundschaltungen zu finden ist, zwischen
Vcc und Gnd direkt am controller statt dem 100nF zwei 50nF Keramik
paraell gelötet (hatte leider keinen 100nF zur verfügung...ist das ein
krtischer Fehler?)
Hier an dieser Stelle das nächste Verhalten...wenn ich mit dem Finger in
nähe der beiden Stützkondensatoren komme...beginnt das Display zu
flackern und das LED immer schneller zu blinken je näher ich den
Kondensatoren komme)...daraus schließe ich der Chip wird immer öfterer
Folge neu gestartet...aber warum? und wie verhindern? (ich muss für den
Effekt den Kondensator nicht berühren in die nähe kommen reicht aus
...ab nem halben cm ca.)
ich hab die Schlatung auf der Platine 1:1 versucht zu skiztieren (tut
mir leid wenn ich nicht alle Konventionen weiß, ich hab noch nie zuvor
einen Schaltplan gezeichnet)
Ich denke die C und H Files brauche ich ncit anhängen, da ja die
Programmierung selbst problemlos Funktioniert und auf dem Evaluation
Board getestet wurde...also vermute ich ein reines Hardware Problem.
sollte natürlich überempflindliche Schlatung heißen und Anfälle hat sie
hoffentlich nicht :)
vlt hat jemand von euch Zeit mir damit etwas auf die Sprüng ezu
helfen...Danke schon im vorraus.
Haben deine LEDs (am ATmega und für die LCD-Hintegrundbeleuchtung) beide
einen Vorwiderstand oder bricht möglicherweise deine Spannungsversorgung
zusammen, so dass der µC sich immer neu startet.
Als Referenzspannung wirst du VCC genommen haben, dann fehlt schon mal
der 100n von AREF nach GND.
Sind die beiden Stützkondensatoren so nahe wie möglich an VCC und AVCC?
100n von Reset nach GND sollten auch noch sein.
Für eine einigermaßen genaue Messung sollte die Beschaltung von AVCC
laut Datenblatt sein.
Die Led ist ohne Vorwiderstand angeschaltet?
ok, die LEDs haben keinen Vorwiederstand...werd ich nachhohlen..auch
wenn mir noch ncith ganz klar ist warum...aber ich seh grad auf dem
pollin board haben sie auch einen...
die Stützkondensatoren sind direkt beim chip, näher geht nicht.
ok, ich werd mir schnell ein paar 100nF Kondensatoren besorgen...da werd
ich alt mit den 50nF Dingern....
und den an AREF kommt auch nocht dran, das hatte ich übersehen, danke
danke für die schnellen Antworten, ich werde das mal umsetzen und wenn
es nicht klappt mich nochmal melden.
der reset ist an Vcc, da hab ich mich nur verzeichnet, stelle den
aktualisierten plan rein..ach wenn doch schlatung bauen nur so einfach
wär wie programmieren ;)
Die LEDs brauchen immer einen Vorwiderstand, d.h auch die LED des LCD!
Ob 47nF oder 100nF Kondis, ist egal.
Ein Kondi an UREF kann ran, muß aber nicht.
Man kriegt auch stabile AD-Wandlungen ohne ihn.
Bei den ATtiny gehts ja auch ohne.
Peter
Peter Dannegger schrieb:> Die LEDs brauchen immer einen Vorwiderstand, d.h auch die LED des LCD!
Beim LCD kann es aber sein das bereits ein Vorwiderstand verbaut ist,
meist nahe der LED.
mfg Andreas
Andreas B. schrieb:> Beim LCD kann es aber sein das bereits ein Vorwiderstand verbaut ist,> meist nahe der LED.
Bei allen LCDs, die ich bisher benutzt habe, war das nicht der Fall.
Man sieht oft Pads für Widerstände, die sind aber nicht bestückt.
Peter
Peter Dannegger schrieb:> Andreas B. schrieb:>> Beim LCD kann es aber sein das bereits ein Vorwiderstand verbaut ist,>> meist nahe der LED.>> Bei allen LCDs, die ich bisher benutzt habe, war das nicht der Fall.> Man sieht oft Pads für Widerstände, die sind aber nicht bestückt.
Im Anhang ein Bild eines 3€ China LCDs mit blauer
Hintergrundbeleuchtung.
R8 ist der Vorwiderstand für die LED.
Erstaunlicherweise ist sogar noch ein 2. 0Ω Widerstand bestückt (R9)...
mfg Andreas
ich benutze ein 11 eur display von Gleichmann electronics...wenn ich mit
multimeter über die beiden LED Anschlüsse messe und ein paar kOhm
messe..kann ich wohl davon ausgehen, dass die Displayblechtung
Vorwiderstände hat...oder nicht?
Jürgen Kratochwill schrieb:> wenn ich mit multimeter über die beiden LED Anschlüsse messe und ein> paar kOhm messe..kann ich wohl davon ausgehen, dass die Displayblechtung> Vorwiderstände hat...oder nicht?
Nein, das sagt mehr über die Spannung an den Prüfspitzen des Multimeters
aus. Der Widerstand liegt meist in der Größenordnung von 100Ω. Der Rest
ist LED-Kennlinie.
Jürgen Kratochwill schrieb:> wenn ich mit> multimeter über die beiden LED Anschlüsse messe und ein paar kOhm> messe..kann ich wohl davon ausgehen, dass die Displayblechtung> Vorwiderstände hat...oder nicht?
Nein. Du kannst mit einem normalen Ohmmeter (ohne Erfahrung) keine
Halbleiter messen...
Du kannst aber einfach mal die Anschlüsse des Backlights verfolgen. So
ein Vorwiderstand kann sich nicht verstecken.
Andreas B. schrieb:> R8 ist der Vorwiderstand für die LED.>> Erstaunlicherweise ist sogar noch ein 2. 0Ω Widerstand bestückt (R9)...
Wenn die Widerstände bestückt sind, dann ist die LED mit an GND und VCC,
daher sind 2 Widerstände nötig. Die Anschlüsse A, K bleiben dann frei.
Peter
hier mal eine Musterbeschaltung aus eien ATTiny26 Datenblatt ich
verwende die gleiche Schaltung meist auch für VCC falls ein anderer
Verbraucher die VCC verseucht. Und dann noch eine Application Note von
Atmel, lese dir das mal durch Bild 4 und 5 erklärt dir etwas warum die
Kerkos so nah wie möglich an den AVR sollen. Sie dir auch die empfohlene
Resetbeschaltung an.
Peter Dannegger schrieb:> Andreas B. schrieb:>> R8 ist der Vorwiderstand für die LED.>>>> Erstaunlicherweise ist sogar noch ein 2. 0Ω Widerstand bestückt (R9)...>> Wenn die Widerstände bestückt sind, dann ist die LED mit an GND und VCC,> daher sind 2 Widerstände nötig. Die Anschlüsse A, K bleiben dann frei.>>> Peter
Nein, auch das ist nicht der Fall, die LED ist nur mit Pin 15 und Pin 16
verbunden. (Frag mich nicht warum)
Jürgen Kratochwill schrieb:> ich benutze ein 11 eur display von Gleichmann electronics...wenn ich mit> multimeter über die beiden LED Anschlüsse messe und ein paar kOhm> messe..kann ich wohl davon ausgehen, dass die Displayblechtung> Vorwiderstände hat...oder nicht?
Die LED Pins sind warscheinlich sichtbar, dann misst du vom einen LED
Pin zum Pin 16 / 15 und vom anderen LED Pin auch zu Pin 16 / 15.
Dann siehst du ob ein Widerstand eingebaut ist, > 1kΩ ist unrealistisch
(dann misst du über die LED) < 10Ω ist kein Widerstand, Messtoleranz.
Misst du etwas dazwischen, z.B. 470Ω dann ist ein Widerstand drin,
ansonsten brauchst du noch einer.
mfg Andreas
das hat funktioniert...also wenn ich das so mache messe ich <10Ohm ->
also Display LED hat kein vorwiderstand....
hab jetzt einfach display LED und das blinke LED mal abgeklemmt und
geschaut was passiert. Die Probleme nachen einstecken scheinen damit
gelöst zu sein...
Chip läuft weitgehend stabil, jedoch Diplay Flackert und chip startet
sich wohl ständig wenn ich mit den Fingern in 0.5 cm Radius zu dem
Kondensator komme....damit kann ich leben...
die andern Vorschläge muss ich erst noch umsetzen (mit dem AREF Pin, und
halt die LEDs mit Vorwiderstand neu einlöten)
>Chip läuft weitgehend stabil, jedoch Diplay Flackert und chip startet>sich wohl ständig wenn ich mit den Fingern in 0.5 cm Radius zu dem>Kondensator komme....damit kann ich leben...
So ein Quatsch, da stimmt doch was nicht. Irgendwo hängt
eine wichtige Leitung in der Luft. Irgendwas ist nicht verbunden.
Mit sowas kann man nicht leben.
Handempfindlich sieht nach offenem EIngang aus. Deshalb würde ich
vorsichtshalber LCD Pin7, Pin8, Pin9 und Pin10 auf GND legen.
Oft haben die Displays keinen Blockkondensator on Board, deshalb
zwischen Pin1 und Pin2 einen C mit 47 bzw. 100nF vorsehen.
Pin1 des Display möglichst kurz mit dem GND der CPU verbinden.
@Hackyber
> z.B. /Reset auf GND statt Vcc ???
Du hast hoffentlich schon das zweite Schaltbild gesehen?
>Deshalb würde ich>vorsichtshalber LCD Pin7, Pin8, Pin9 und Pin10 auf GND legen.
Klasse. Dann kommt einer auf die Idee den RW Pin auf lesen zu setzen
und schon hast du 4 Ausgänge auf GND liegen.
Ja, genau! Was macht der Spannungsteiler aus 10k Pulldown und internen
40..60k Pullup aus den 5v Vcc? Und wie sind die Schwellwerte für Reset?
Nach DB bewegt sich Reset bei der Beschaltung genau da, wo es Zufall
ist, ob Reset oder Run.
Mach den 10k weg!!
>> Deshalb würde ich>> vorsichtshalber LCD Pin7, Pin8, Pin9 und Pin10 auf GND legen.> Klasse. Dann kommt einer auf die Idee den RW Pin auf lesen zu> setzen und schon hast du 4 Ausgänge auf GND liegen.
Im Datenblatt des HD44780 steht nur:
These pins are not used during 4-bit operation
und
Pull-up MOS current DB0–DB7, RS, R/: Typ. 125µA
Es sollte also keine Probleme mit offenen Pins geben, denn sie werden
auf high gezogen.
Deshalb vorsichtshalber LCD Pin7, Pin8, Pin9 und Pin10 doch nicht auf
GND legen.
wieso soll das einen Spannungsteiler ergeben? Der externe Pullup wird
parallel zum internen liegen.
5V/40kOhm=0,125 mA, so leicht kann das also beeinflusst werden.
Da ich mich bisher immer an die Empfehlung gehalten habe und noch nie
Probleme damit hatte kann ich nichts dazu sagen ich würde mich aber
keinesfalls aussperren und den Resetpin direkt auf VCC legen.
B e r n d W. schrieb:> Handempfindlich sieht nach offenem EIngang aus.
dass kann einen Effekt haben?
mhmm ich glaube ich hab an einem Pin Interrupt aktiviert der wenn ich so
recht überlege auf der Platine garnicht benutzt wird (hatte vorher auf
dem Evaluation board ein Taster damit verbunden)
ich werde das bei Gelegnheit austesten (leider im mom etwas angebunden)
aber danke an alle für die Vorschläge und Ideen.
das mit den eingeschaltenen Interrupts (wovon bei einem die Interrupt
routine leer war) an den freien Pins scheint die Lösung für das "Chip
macht komische Sachen wenn Finger in der nähe" Problem zu sein.
So jetzt noch die Beleuhctungen mit den Vorwiderständen passend
bestücken, dann sollte vorerst alles laufen :)
ich schreibe den Resetvector eigentlich immer ins Programm uns gebe halt
ein reti vor wenn ich den Interrupt nicht nutze, so das der Interrupt
gleich wieder beendet wird, so kommt es nicht vor das ein
eingeschalteter Interrupt "wilde" Programmsprünge ausführt.
>ich schreibe den Resetvector eigentlich immer ins Programm uns gebe halt>ein reti vor wenn ich den Interrupt nicht nutze, so das der Interrupt>gleich wieder beendet wird, so kommt es nicht vor das ein>eingeschalteter Interrupt "wilde" Programmsprünge ausführt.
Mach das mal mit z.B. dem UART Empfangsinterrupt.
Wenn UDR nicht gelesen wird feuert der Interrupt gleich
wieder und bremst das komplette Programm aus. Nützt also
nicht viel.
>dieser Interrupt wird aber erst aktiviert werden müssen und wenn man das>macht sollte man sich auch um die Interrupt Routine kümmern.
Genau das hat er ja gemacht, Interrupt freigeschaltet aber
vergessen einen Vector dafür zu definieren;)
Da führt beim AVR-GCC dann zum Reset.
hallo, so hab nun alle (die meisten) Tipps umgesetzt, Vorwiderstände
sind eingelötet, Diplay funzt, keine Störungen so weit.
Das nächste ist das Übertragen des UART vom Evaluation board auf meine
Platine. Leider will am PC nicht so wirklich was ankommen...
Also zuerst, wenn ich Chip auf Pollin Board stecke, Serielles Kabel
ansteck und mit HyperTerminal am PC auslese, funzt alles wunderbar, Chip
macht was er soll.
Ich habe einen RS232N IC gekauft, und ihn mit dem auf dem Pollin board
vertauscht, funzt trotzdem alles. Also gehe ich davon aus, das der den
ich gekauft habe in der Funktion und Beschaltung gleich ist wie der auf
dem Pollin board.
Ich hab die RS232 Schlatung vom Pollin board 1:1 (hoffentlich) auf dem
Steckbrett nachgebaut und mit meiner Chip Platine verbunden. Ich hab
dabei nur den Tx Anschluss vom Chip benutzt, weil Empfangen auf dem UART
ist nichts geplant. Nur Temp. Messen und an PC übertragen.
(den Seriellen-Anschluss hab ich ein altes Kabel dafür zerlegt). Aber
sobald Chip auf meiner Platine steckt und ich über RS232 am PC auslesen
will kommt nix an, was Sinn machen würde.
Chip ist 8 Mhz, interner Oszi, BAUD 9600 ...die Konfiguration funzt ja
auch und ist getestet auf dem Pollin-Board. Schaltplan im Anhang (also
der untere Teil mit dem RS232 ist noch nichtauf der Platine sondern am
Steckbrett ausgelagert). Hat vlt von euch jem eine Idee was ich dabei
falsch mache?
Auf meinem Pollin Board musst ich die 10µ Elkos gegen 1µ Kondensatoren
tauschen damit die Verbindung richtig funktionierte. Solltest du auch
machen.
In deiner Zeichnung fehlt auch noch ein Kondensator.
auf dem Pollin Board funktioniert alles einwandfrei...geht um den bau
auf die Platine.
mhm was das für ein Kabel war bin ich nicht sicher....aber ich hab nur
den Stecker davon rutnergebastelt und die Kabel direkt am Stecker
angelötet...also keine überkreuzten Kabel oder sowas...
auweh stimmt, da sind ja noch 2 Ports oben und unten eingezichnet für
Versorgung/GNd im Schaltplan die ich übersehen habe...danke, das könnte
die Lösung sein