Probleme mit ADC Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
|
|
|
BID = 365758
ffeichtinger Schreibmaschine
Beiträge: 1050 Wohnort: Traunkirchen im Salzkammergut
|
|
Hallo
Ich habe einen ATmega128, der auf einem Board von Olimex sitzt. Da ich mich für yC interessierte borgte mir ein ehemaliger Lehrer, das Ding zum Anfangen. Einige grundlegende Schritte, habe ich schon bewältigt, die Kontrolle über die Ein- und Ausgänge, den Timer, und die serielle Schnittstelle habe ich bereits.
Jetzt wollte ich mich über den ADC, den Analog-Digital-Converter hermachen. Also habe ich mir, wie schon öfter, das Datenblatt gekrallt, und mich mal hinein gelesen, bis ich, wie ich glaubte, das meiste verstanden habe. So schloss ich kurzerhand die Hardware (siehe Anhang) so, wie ich es für richtig hielt, und schrieb ein Programm (siehe Anhang) dazu.
Bald fand ich heraus, wie der ADC gestartet wurde und er schickte tatsächlich Daten, allerdings die falschen, denn egal ob an dem ADC was hängt oder nicht, er steuert immer voll aus, d.h. alle 10 Bits sind gesetzt.
Was sagt Ihr dazu, Hardwarefehler, oder Softwarefehler?
PS: an PortB hängen 8 LED's, am Eingang des ADC hängt eine Photodiode, als Referenz dient ein Poti.
_________________
|
|
BID = 365760
Ltof Inventar
Beiträge: 9329 Wohnort: Hommingberg
|
|
Zitat :
ffeichtinger hat am 2 Sep 2006 12:29 geschrieben :
|
Was sagt Ihr dazu, Hardwarefehler, oder Softwarefehler?
|
Denkfehler!
Eine Photodiode in dieser Art und ohne Last anzuschließen, kann nicht funktionieren.
Was macht der µC bei negativen Spannungen am ADC? Zufällig alle Bits setzen?
Zum Betrieb einer Photodiode empfehle ich, diesen Thread aufmerksam zu lesen:
https://forum.electronicwerkstatt.d.....56836
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
[ Diese Nachricht wurde geändert von: Ltof am 2 Sep 2006 12:40 ] |
|
BID = 365763
ffeichtinger Schreibmaschine
Beiträge: 1050 Wohnort: Traunkirchen im Salzkammergut
|
Hallo
Zitat :
| Eine Photodiode in dieser Art und ohne Last anzuschließen, kann nicht funktionieren. |
Das wär schon möglich, obwohl mir nicht ganz klar wird warum.
Aber darum geht es nicht. Der yC setzt auch dann alle Bit's wenn keine Fotodiode dranhängt. Also muss zumindest noch ein anderer Fehler drin sein und den suche ich.
PS: den besagten Thread kenn ich in- und auswendig, ich hab in begonnen!
_________________
|
BID = 365777
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Ich habe dir doch in dem Thread gesagt, lass es mit dem ADC! Ein 1bit-ADC ("Schmitttrigger" oder einfacher Komparator) wäre besser!
Ansonsten:
- Sind die Referenzselektor-Bits im entsprechenden Register richtig gesetzt?
- Wurde alles korrekt initialisiert?
- Welchen Modus benutzt du? (Single oder Free Running)
- Ist der richtige Kanal gewählt?
- Ist die Versorgungsspannung für den ADC sauber?
Als Test:
AReferenz auf interne 2.56V stellen, Elko 10µF an AREF anschließen (nach GND) und dann die beiden Bytes des Ergebnisses per UART am Rechner betrachten. Als Analogwertgeber Poti mit 10kΩ mit Schleifer an ADC-Eingang. Das ganze als variablen Spannungsteiler schalten. Nun sollte am Monitor die jeweils abgegriffene Spannung mit einer 10bittigen Auflösung erscheinen.
Zum betrachtwen von Hex-Werten emphielt sich RealTerm (Terminalprogramm, sehr gut!)
Edit: Oups, habe den Programmcode übersehen...
_________________
[ Diese Nachricht wurde geändert von: DonComi am 2 Sep 2006 13:33 ]
|
BID = 365794
Ltof Inventar
Beiträge: 9329 Wohnort: Hommingberg
|
Zitat :
ffeichtinger hat am 2 Sep 2006 12:50 geschrieben :
|
Das wär schon möglich, obwohl mir nicht ganz klar wird warum.
|
Weil die Photodiode als Stromquelle arbeitet. Der Photostrom fließt von Kathode zu Anode. So ist eine Quelle an dem ADC-Eingang, die negativ ist.
Ob da noch weitere Fehler sind, kann ich nicht beurteilen. Da wird DonComi besser bescheid wissen.
Wenn Du weiter mit dem ADC Erfahrungen sammeln willst, so empfehle ich dazu ein Poti an den ADC zu hängen und erst mal damit variable und sinnvolle Messwerte aufzuprägen.
Dass der Einsatz eines ADC an dieser Stelle weder notwendig, noch sinnvoll ist, hatte auch ich Dir bereits geschrieben.
Dass Du den Thread in- und auswendig kennst, mag sein. Du scheinst Dich gegen Vereinfachungen zu sträuben - wieso das?
Gruß,
Ltof
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
|
BID = 365812
ffeichtinger Schreibmaschine
Beiträge: 1050 Wohnort: Traunkirchen im Salzkammergut
|
Zur Photodiode:
möglicher Weise habe ich das Symbol der Photodiode falsch herum gezeichnet, jedenfalls ist die Spannung am Eingang positiv!
Zitat :
| Du scheinst Dich gegen Vereinfachungen zu sträuben |
Für dich mag es einfacher sein, eine Schaltung zu basteln, die die Photodiode anders beschaltet, für mich ist es einfacher die Diode ohne viel Schnick-Schnack anzuschließen und alles andere der Software zu überlassen.
@DonComi:
Zitat :
| - Sind die Referenzselektor-Bits im entsprechenden Register richtig gesetzt?
- Wurde alles korrekt initialisiert?
- Welchen Modus benutzt du? (Single oder Free Running)
- Ist der richtige Kanal gewählt?
- Ist die Versorgungsspannung für den ADC sauber?
|
müsste eigentlich alles passen, aber überzeuge dich selbst.
den Test werde ich gleich mal probieren, dauert aber ein bisschen.
_________________
|
BID = 365841
ffeichtinger Schreibmaschine
Beiträge: 1050 Wohnort: Traunkirchen im Salzkammergut
|
Juhu, jetzt tut sich was.
Hab mal die Referenz intern bezogen, wie vorgeschlagen. Jetzt funktioniert es, und was die Ungläubigen auch davon halten mögen, auch mit Photodiode.
1. Warum geht es mit interner Referenz, mit externer aber nicht?
2. Wofür ist eigentlich der Elko?
Danke für den Test.
_________________
|
BID = 366726
cholertinu Inventar
Beiträge: 3755 Wohnort: CH
|
Was genau machst du mit deiner Schaltung?
Durch Verstellen der Analog-Referenzspannung wird der Messwert an ADC0 verändert?
D.h. der Analogwert an ADC0 wäre eigentlich konstant, wird aber durch das Verändern der Spannungsreferenz anders?
Wozu soll das gut sein? Bereichseinstellung der Messung?
|
BID = 367271
ffeichtinger Schreibmaschine
Beiträge: 1050 Wohnort: Traunkirchen im Salzkammergut
|
Zitat :
| Was genau machst du mit deiner Schaltung?
Durch Verstellen der Analog-Referenzspannung wird der Messwert an ADC0 verändert?
D.h. der Analogwert an ADC0 wäre eigentlich konstant, wird aber durch das Verändern der Spannungsreferenz anders?
Wozu soll das gut sein? Bereichseinstellung der Messung?
|
Hääää? Ich versteh kein Wort. Die Spannung der Diode wird nicht verändert. Was verstellt wird ist die Referenzspannung. Damit kann man die Obergrenze des Signals einstellen. d.h. Ist die Beleuchtung 0, ist auch der Messwert 0; erreicht die Beleuchtung das zu erwartende Maximum, ist der Messwert 1024.
Inzwischen habe ich den Fehler gefunden: Die Referenzspannung darf nicht unter 2V fallen!
Danke für eure Hilfe!
_________________
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 24 Beiträge im Durchschnitt pro Tag heute wurden bisher 1 Beiträge verfasst © x sparkkelsputz Besucher : 182289292 Heute : 115 Gestern : 4667 Online : 576 6.11.2024 0:57 0 Besucher in den letzten 60 Sekunden ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0590319633484
|