Hallo zusammen, ich habe ein größeres Problem mit meiner Strommessung (s. Anhang). Funktiosbeschreibung: Am Knotenpunkt R62, R62 und D24 messe ich eine Spannung, die dem Strom entspricht der über GND -> K1 nach "Zur Kaskade" fließt. Der Filter R62, L2 und C41 dient zum Filtern der doch sehr unsauberen Spannung. Danach siehst aber sehr gut aus. Das funktioniert soweit auch, messe ich mit einem Multimeter am Knotenpunkt, dann messe ich genau die Spannung im gleichen Verhältniss zum Strom. Wenn 200 µA fließen also 200 mV. Sobald ich aber nun den ADC "Zum ADC0" des ATMega128 drann hänge, zieht dieser mir die Spannung total in den Keller. Kann mir das jemand erklären? Ich steig da nämlich gerade garnicht durch. Gruß Snatch
Wie sieht denn der Rest der Schaltung aus?
Welche Masse hat der uC?
> zieht dieser mir die Spannung total in den Keller.
Hast du dazu auch einen Wert?
Ist der uC richtig konfiguriert (ADC-Eingang)?
Wahrscheinlich ist der Port als Ausgang Initialisiert welcher auf Low steht und dann halt die Spannung "runterzieht"
> Wahrscheinlich ist der Port als Ausgang Initialisiert welcher auf Low
steht und dann halt die Spannung "runterzieht"
...oder dem ADC fehlt die Betriebsspannung
Hallo, ich arbeite mit Bascom.
1 | Ddrf.0 = 0 |
2 | portf.0 = 0 |
Das was ihr schreibt ist richtig. Hatte den Fehler am Anfang auch gemacht, weil ich vom A16 auf den A128 portiert habe und den Code nicht dazu angepasst habe. Aber jetzt ist alles korrekt. Port F als eingang und Pullups aus. Er zieht die Spannung zwar nicht mehr so weit runter aber immer noch weit genug (in einem Beispiel von 100 mV auf 70 mV) Gibt es noch etwas zu beachten? Was mit aufgefallen ist, wenn ich den Filter weglasse, also R62 abtrenne und den ADC direkt an R63 am Knotenpunkt hänge, dann zieht der die Spannung nicht mehr runter, sondern sie geht ums 4 fache hoch. Nun ist aus mit Verständniss :( Gruß Snatch
Da ist entweder was faul in Deiner Hardware oder Software. Die ADCs sind sehr hochohmig. Ich hab am ATmega8 nen 1M in Reihe und 100nF gegen GND am ADC und der mißt ohne Probleme. Die Drossel kannste weglassen, hat keinerlei Wirkung. Der 1k hat auch kaum Wirkung, ich würde mindestens 10k..100k nehmen. Peter
Hallo, ja, da ist was faul, ich weis nur nicht was. Den ATmega habe ich bereits 3x getauscht. Die Software ist gerade sehr minimal (s. unten). Die Schaltung der Platine ist auch sehr minimal da dies nur ein Testboard ist (s. Anhang). Die Schaltung ist auch sehr minimal, da dies nur ein Testboard ist (s. Anhang) Aber vielleicht seht ihr ja was was ich nicht sehe. Im Prinzip hängt der ADC direkt am Pin aus dem Anhamg im ersten Posting.
1 | $regfile = "m128def.dat" |
2 | $crystal = 16000000 |
3 | |
4 | Dim Adcwert2 As Word |
5 | |
6 | Ddrf.0 = 0 |
7 | Portf.0 = 0 |
8 | Ddrf.1 = 0 |
9 | Portf.1 = 0 |
10 | Ddrf.2 = 0 |
11 | Portf.2 = 0 |
12 | Ddrf.3 = 0 |
13 | Portf.3 = 0 |
14 | Ddrf.4 = 0 |
15 | Portf.4 = 0 |
16 | Ddrf.5 = 0 |
17 | Portf.5 = 0 |
18 | Ddrf.6 = 0 |
19 | Portf.6 = 0 |
20 | Ddrf.7 = 0 |
21 | Portf.7 = 0 |
22 | |
23 | Config Adc = Single , Prescaler = Auto , Reference = Avcc |
24 | Enable Adc |
25 | |
26 | Do |
27 | |
28 | Adcwert2 = Getadc(1) |
29 | |
30 | Loop |
31 | End |
> zieht dieser mir die Spannung total in den Keller. Kann mir das jemand > erklären? Mit dem Multimeter am ADC0 gemessen ? Ansonsten wäre es ziemlich ratsam auch ADC0 auszulesen, und nicht ADC1 wie in Deinem Code. :D > ...Getadc(1)
Hallo, sorry, ich lese den richtigen aus. Mir gehts auch weniger ums auslesen, sondern ich messe den Spannungsabfall mit dem Multimeter direkt am Pin. Ob ich den nun in der Software auslese oder nicht ist ja egal, er würde ja die zu niedere Spanung auslesen die ich auch mit dem Multimeter am Pin messe. Gruß Snatch
> er würde ja die zu niedere Spanung auslesen die ich auch mit dem > Multimeter am Pin messe. Das ist richtig, nur war aus Deinem Post nicht ersichtlich, ob auch per Multmeter gemessen wurde. So kurz der Code auch ist, so hast Du es doch geschafft zwei massive Fehler reinzuschreiben, einmal falscher Pin, und dann noch Enable Adc, das erlaubt den ADC Interrupt, nur ist keiner definiert, dafür sind wenigstens die Interrupts global auch nicht erlaubt. Wenn sich diese Sorgfalt in der Hardware fortsetzt, dann ist mir klar warum das nicht hinhaut, da ist irgendein Murks in der Schaltung. Die Eingänge des PortA sind auf jeden Fall sehr hochohmig und werden, falls korret beschaltet, das Messergebnis nicht beeinflussen.
Hallo, sorry, ich bin schon Sorgfälltig. Das kommt nur, vom hin und her kompieren und schnell schnell machen weil ich ne Antwort will. Ich sehe das wie du, es sollte das Messergebniss nicht beeinflussen, tut es aber dennoch. Ich habe heute keine Zeit mehr, werde morgen mal den kompletten schaltplan posten. GRuß Snatch
Hallo zusammen, ich habe mal den Schaltplan eben für hier ins Forum neu dahingezeichnet. Ist nur eine Skizze soll aber die Schaltung im groben zeigen. Problem ist auch Schaltplan beschrieben. Bitte keine nicht verbundenen Kontakte bemängeln, soll mehr zum Verständniss dienen :D Die Frage lautet, warum zeigt das Voltmeter die Spannung richtig an, und sobald der µC drann kommt steigt diese. Was macht das Voltmeter richtig, dass der µC falsch macht. hier noch der Abgespekte CODE
1 | $regfile = "m128def.dat" |
2 | $crystal = 16000000 |
3 | |
4 | Config Lcdmode = Port |
5 | Config Lcd = 16 * 2 |
6 | Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.3 , Db6 = Portc.2 , Db7 = Portc.1 , E = Portc.4 , Rs = Portc.5 |
7 | Initlcd |
8 | Config Lcdbus = 4 |
9 | |
10 | Waitms 150 |
11 | Cursor Off Noblink |
12 | Cls |
13 | |
14 | Dim Adcwert2 As Word |
15 | |
16 | Ddrf.0 = 0 |
17 | Portf.0 = 0 |
18 | |
19 | Config Adc = Single , Prescaler = Auto , Reference = Avcc Referencespannung Avcc = 5 V |
20 | Enable Adc |
21 | |
22 | Do |
23 | Adcwert2 = Getadc(0) |
24 | |
25 | Locate 1 , 1 |
26 | Lcd Adcwert2 |
27 | Waitms 500 |
28 | Cls |
29 | |
30 | Loop |
31 | |
32 | End |
Danke und Gruß Snatch
gehört beim BASCOM nicht ein "Start Adc" mit dazu ??? In den Beispielen ist es immer mit drin...
Lies doch mal, was die Leute schreiben. MWS schrieb: > und dann noch Enable Adc, > das erlaubt den ADC Interrupt, nur ist keiner definiert, dafür sind > wenigstens die Interrupts global auch nicht erlaubt.
Also, nochmals zu software. Auch so bleibt das Problem bestehen. Selbst wenn ich den ADC-Teil weg lasse geht es nicht. Problem wie oben beschrieben bleibt bestehen. Es sollte nicht an der Software hängen.
1 | $regfile = "m128def.dat" |
2 | $crystal = 16000000 |
3 | |
4 | Config Lcdmode = Port |
5 | Config Lcd = 16 * 2 |
6 | Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.3 , Db6 = Portc.2 , Db7 = Portc.1 , E = Portc.4 , Rs = Portc.5 |
7 | Initlcd |
8 | Config Lcdbus = 4 |
9 | |
10 | Waitms 150 |
11 | Cursor Off Noblink |
12 | Cls |
13 | |
14 | Dim Adcwert2 As Word |
15 | |
16 | Ddrf.0 = 0 |
17 | Portf.0 = 0 |
18 | |
19 | Config Adc = Single , Prescaler = Auto , Reference = Avcc Referencespannung Avcc = 5 V |
20 | Enable Adc |
21 | |
22 | Do |
23 | Adcwert2 = Getadc(0) |
24 | |
25 | Locate 1 , 1 |
26 | Lcd Adcwert2 |
27 | Waitms 500 |
28 | Cls |
29 | |
30 | Loop |
31 | |
32 | End |
Auch mit dieser Verion geht es nicht.
1 | $regfile = "m128def.dat" |
2 | $crystal = 16000000 |
3 | |
4 | Ddrf.0 = 0 |
5 | Portf.0 = 0 |
6 | |
7 | |
8 | Do |
9 | |
10 | Loop |
11 | |
12 | End |
Wenn ich den Schaltplan richtig lese, dann liegt am Widerstand WECHSELspannung an. Das kann der ATMega nicht!
Route_66 schrieb: > Wenn ich den Schaltplan richtig lese, dann liegt am Widerstand > WECHSELspannung an. Das kann der ATMega nicht! Ja, könnte man denken, aber ist nicht so. Das Oszi zeigt eine fast Saubere gleichspannung an. Des weiteren liegt der ADC ja im Pfad der Ausgangsspannung der Kaskade und somit wieder in einem Gleichspannungspfad. Das Multimeter an diesem Punkt ist auch auf Gleichspannungsmessung eingestellt und mist ohne den µC ja den richtigen Wert. Komisch oder? Was macht das Multimeter denn so anders? Gruß Snatch
Denis H. schrieb: > Was macht das Multimeter denn so anders? Wie jetzt? Steigt die Spannung, oder fällt sie, wenn du den µC anklemmst Am Anfang war von 'die Spannung fällt, sobald der AVR drannhängt' die Rede. Irgendwo in einem der letzten Posts wars dann plötzlich 'die Spannung steigt, sobald der AVR drannhängt'
Ja, im Moment steigt sie an, am Anfang fiel sie. Ich habe nun herrausgefunden, dass es etwas mit der Masse zu tun haben muss. Jenadem wo ich die Masse (ERDE) verbinde, bekomme ich unterschiedliche Werte. Obwohl ich alle ERDEN am Netzteil an einem Kotenpunkt zusammengeführt habe. GRuß Snatch
Denis H. schrieb: > Ich habe nun herrausgefunden, dass es etwas mit der Masse zu tun haben > muss. Du schliesst also nicht "nur" den Pin an, sondern die ganze uC-Schaltung incl. deren Masse? Was kommt raus, wenn du den Pin ablötest und hochbiegst?
> Jenadem wo ich die Masse (ERDE) verbinde, bekomme ich unterschiedliche > Werte. Obwohl ich alle ERDEN am Netzteil an einem Kotenpunkt > zusammengeführt habe. Da fehlen im Schaltplan die Details, Masse kann man nur einmal verbinden, µC Masse muss natürlich gleich Masse an der Kaskade/Fuß von R1 sein, sonst fehlt der Bezugspunkt. Das hört sich alles so an, als ob eine Ableitung über den µC ergfolgt, da der Massepunkt nicht richtig definiert ist. Würde man aber auch rausbekommen, indem man die Verbindung zwischen PortA.0 und Strommeßwiderstand öffnet und dort das Voltmeter reinhängt, bzw. zwischen µC Masse und Strommeßwiderstand.
MWS schrieb: >> Jenadem wo ich die Masse (ERDE) verbinde, bekomme ich unterschiedliche >> Werte. Obwohl ich alle ERDEN am Netzteil an einem Kotenpunkt >> zusammengeführt habe. > > Da fehlen im Schaltplan die Details, Masse kann man nur einmal > verbinden, µC Masse muss natürlich gleich Masse an der Kaskade/Fuß von > R1 sein, sonst fehlt der Bezugspunkt. > > Das hört sich alles so an, als ob eine Ableitung über den µC ergfolgt, > da der Massepunkt nicht richtig definiert ist. > > Würde man aber auch rausbekommen, indem man die Verbindung zwischen > PortA.0 und Strommeßwiderstand öffnet und dort das Voltmeter reinhängt, > bzw. zwischen µC Masse und Strommeßwiderstand. So ist es. Ich habe das ganze Board an der Stromklemme mit ERDE verbunden. Habe also einen geerdeten -. Alle Masseflächen auf dem Board sind Sternförmig mit diesem Punkt verbunden. Und genau so sieht es nun auch besser aus. Hatte vorher die Schaltung auf einem Steckbrett und die Masse (ERDE) wo anders her geholt. Jetzt funktioniert es soweit. Weder geht die Spannung hoch noch runter, wenn ich den µC Dranhänge. Teste jetzt gerade die ergebnisse in allen Lastbereichen und lasse Sie auf dem LCD anzeigen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.