Witajcie,
mam do zrobienia bardzo prosty woltomierz na ATtiny44. Zasilanie z baterii napięciem 3V, chcę wykorzystać napięcie referencyjne 1,25V.
Taktowanie wewnętrznym oscylatorem RC 8MHz + BOD 1,8V.
Układ połączeń nie jest skomplikowany:
PA0 - ADC0 - wejście napięcia referencyjnego
PA1 - załączenie napięcie referencyjnego (układ TS432BCX-RFG zasilany przez rezystor 15k)
PA2 - ADC2 - wejście napięcia mierzonego (posiada rezystor pull-down)
Fragmenty kodu testowego, odpowiedzialne za odczyt i konwersję:
Na innych wyprowadzeniach mam podłączony wyświetlacz LCD, ale jest obsługa jest już dobrze działająca, a do tego bardzo rozbudowana, dlatego nie ma potrzeby cytowania całości.
Problem: w zmiennej adc mam wynik 1023 niezależnie od wartości napięcia na wejściu ADC2. Zmierzone napięcie zasilania wynosi 3,18V, na wejściu ADC0 1,22V, zaś na wejściu ADC2 0V - wynik przetwarzania wynosi 1023. Podając jakieś napięcie na ADC2, sytuacja nie zmienia się.
Przestawiając ADMUX na wewnętrzną referencję 1,1V albo VCC, nie dokonując przy tym jakichkolwiek innych zmian w kodzie ani w układzie, działa prawidłowo.
Próbowałem:
- podać inne napięcie na ADC0 z zasilacza
- użyć innego wejścia do pomiaru napięcia
- zmieniać szybkość taktowania ADC
- użyć trybu różnicowego
- wymienić sam układ scalony na nowy
- pewnie całą masę innych rzeczy, niekiedy mało sensownych
i nic. 1023 jak było, tak jest.
Ktoś miał do czynienia z podobnym problemem?
mam do zrobienia bardzo prosty woltomierz na ATtiny44. Zasilanie z baterii napięciem 3V, chcę wykorzystać napięcie referencyjne 1,25V.
Taktowanie wewnętrznym oscylatorem RC 8MHz + BOD 1,8V.
Układ połączeń nie jest skomplikowany:
PA0 - ADC0 - wejście napięcia referencyjnego
PA1 - załączenie napięcie referencyjnego (układ TS432BCX-RFG zasilany przez rezystor 15k)
PA2 - ADC2 - wejście napięcia mierzonego (posiada rezystor pull-down)
Fragmenty kodu testowego, odpowiedzialne za odczyt i konwersję:
Kod: C / C++
Na innych wyprowadzeniach mam podłączony wyświetlacz LCD, ale jest obsługa jest już dobrze działająca, a do tego bardzo rozbudowana, dlatego nie ma potrzeby cytowania całości.
Problem: w zmiennej adc mam wynik 1023 niezależnie od wartości napięcia na wejściu ADC2. Zmierzone napięcie zasilania wynosi 3,18V, na wejściu ADC0 1,22V, zaś na wejściu ADC2 0V - wynik przetwarzania wynosi 1023. Podając jakieś napięcie na ADC2, sytuacja nie zmienia się.
Przestawiając ADMUX na wewnętrzną referencję 1,1V albo VCC, nie dokonując przy tym jakichkolwiek innych zmian w kodzie ani w układzie, działa prawidłowo.
Próbowałem:
- podać inne napięcie na ADC0 z zasilacza
- użyć innego wejścia do pomiaru napięcia
- zmieniać szybkość taktowania ADC
- użyć trybu różnicowego
- wymienić sam układ scalony na nowy
- pewnie całą masę innych rzeczy, niekiedy mało sensownych
i nic. 1023 jak było, tak jest.
Ktoś miał do czynienia z podobnym problemem?