Hallo, wenn ich meinen ATtiny44 mit interner Referenz betreibe funktioniert meine ADC-Wandlung fast ohne Probleme, bis auf die Toleranzen natürlich. Jetzt versuche ich vergeblich mit einer konstanten Spannung von 1,162V an AREF das Ergebnis zu verbessern aber ADC-HIGH und ADC-LOW haben hierbei jeweils 0xFF. Prescaler /128 (wie bei interner Ref.): LDI temp, (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0) OUT ADCSRA, temp Externe Referenz und Kanal 1 sind gesetzt: ORI temp, (0<<REFS1)|(1<<REFS0)|(0<<MUX5)|(0<<MUX4)|(0<<MUX3)|(0<<MUX2)| (1<<MUX1)|(0<<MUX0) OUT ADMUX, temp Schaltung: Konstantspannung an AREF und 100nF gegen Masse. Was mache ich nur falsch? Gruß Bernd
Hi >ORI temp, (0<<REFS1)|(1<<REFS0)|(0<<MUX5)|(0<<MUX4)|(0<<MUX3)|(0<<MUX2)| >(1<<MUX1)|(0<<MUX0) >OUT ADMUX, temp Was soll das 'ori'? Nimm 'ldi'. MfG Spess
Hi Was mich noch stutzig mach: >Jetzt versuche ich vergeblich mit einer konstanten Spannung von 1,162V >an AREF das Ergebnis zu verbessern aber ADC-HIGH und ADC-LOW haben >hierbei jeweils 0xFF. Geht eigentlich nicht. Wie stellst du das fest? Der höchste mögliche Wert in ADCH/ADCL ist $3FF. MfG Spess
Hallo Spess, du wirst Recht haben aber hierbei bekomme ich immer einen Wert der größer ist als OUTPUT_700mA. Komisch ist doch das es bei interner Ref. einwandfrei funktioniert. START_UP: RCALL SET_CHANNEL_ADC1 LDI temp5, LOW(OUTPUT_700mA) LDI temp6, HIGH(OUTPUT_700mA) START_UP_LOOP: RCALL GET_VOLTAGE CP ADC_VAL_LOW, temp5 CPC ADC_VAL_HIGH, temp6 BRSH START_UP_FUNCTION_END IN temp, OCR0B INC temp MOV OCR0B_VALUE, temp OUT OCR0B, OCR0B_VALUE RJMP START_UP_LOOP START_UP_FUNCTION_END: // INC CtrlStatus RET
Hi >ADCH/ADCL ist $3FF >STIMMT !!! Und das bedeutet, das deine Eingangsspannung >= VREF ist. Mess mal deine Spannungen direkt an den Controllerpins. MfG Spess
Hallo Spess, präzise 1,162Volt. Kann es der Kerko sein? Gruß Bernd
Hi
>Kann es der Kerko sein?
Kann man zwar nicht 100%ig ausschließen, aber eher unwahrscheinlich. Wie
hoch ist die Eingangsspannung?
MfG Spess
Hi, die an ADC1 zu messende Spannung = 0V Habe vor den µC zu wechseln, macht das Sinn? Bernd
Hi Mal kurz mit einem ATTiny84 getestet. Anhang funktioniert. MfG Spess
Danke Spess, habe µC gewechselt und nix geht mehr! Wrrde noch einmal wechseln (löten SOIC14) und dich informieren! DANKE
Hallo Spess, habe µC gewechselt und mit int. Ref. funktioniert es. Bei extern. Ref. immer noch nicht. Habe dann dein ;************* AD_CONVERTER ***************** zur Initialisierung genommen, auch ohne Erfolg. Gruss
Hallo Spess, >ldi r16,1<<ADEN|1<<ADIE|1<<ADATE|1<<ADPS2|1<<ADPS1|1<<ADPS0 >;ADEN,ADSC,ADATE,ADIF,ADIE,ADPS2,ADPS1,ADPS0 wenn ich 0<<ADATE statt 1<<ADATE initialisiere dann funktioniert es. Vielen Dank! Bernd
Hi
>wenn ich 0<<ADATE statt 1<<ADATE initialisiere dann funktioniert es.
Das war eigentlich nur für mich zum Testen (Autotrigger).
Diese 0<<xyz solltest du vermeiden. Das vewirrt nur und hat keine
Wirkung.
MfG Spess
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.