Może najpierw parę słów wprowadzenia :
Atmega128 - jej główne zadanie to sterowanie silnikiem DC, za pomocą tranzystora mosfet. Zasadniczo chodzi tylko o ON/OFF, dodany jest jedynie softstart PWM.
Tranzystor ten sterowany jest z PB4 (OC0).
Atmega zaś taktowana kwarcem 14.745.600 Hz.
Dodatkowo , wykorzystane są 3 kanały ADC, w tym :
ADC1 - do pomiaru prądu pobieranego przez silnik
ADC2 - do pomiaru napięcia zasilania
Cały urządź zasilany jest z zewn. zasilacza 24V, no i potem jest przetwornica na 5V oczywiście.
Mierzone napięcia dostarczane są do ADC za pomocą takich prościutkich wtórników napięciowych :
Sygnał PSU-V-ADC biegnie sobie do ADC2, przy wejściu tym jest jeszcze kondensator 100nF do masy.
Podczas normalnej pracy (silnik nie jest włączany), na ADC2 jest następujący sygnał :
Czyli jest w miarę stały poziom napięcia, raz na sekundę pojawiają się zakłócenia, w chwili kiedy wykonywany jest pomiar (1 na sekundę).
Aha, ADC są skonfigurowane następująco :
Czyli napięcie odniesienia zewnętrzne, zrobione na LM285 2.5V, oczywiście z kondensatorami, dławikiem itp.
I teraz - wszystko działa cacy, do momentu, kiedy nie korzystam z TIMER0, w trybie
FAST PWM, do uruchomienia silnika.
PWM jest uruchamiane poprzez wpisanie do TCCR0 wartości B01101010
(fast PWM, prescale 8).
Samo PWM działa poprawnie, silnik sobie startuje i gitara.
Ale - czasem - nie zawsze - raz na kilka uruchomień silnika, na wejściu ADC2 pojawia się jakby jakiś sygnał zegarowy :
Jak widać okres to 22.4 - 22.6 uS, czyli ok. 44kHz.
Kiedy tylko pojawią się te "oscylacje", to oczywiście dalsze pomiary z tego ADC są już błędne - czyli "pływają".
Co bardzo dziwne - oscylacje nie znikają nawet po resecie !
Dopiero wyłączenie zasilania powoduje ich zniknięcie. Oczywiście sprawdziłem , że zarówno napięcie zasilające wtórnik napięciowy, napięcie wejściowe na ten wtórnik - i nic podejrzanego.
Wygląda to tak, jakby sporadycznie - po włączeniu TIMER0, i użyciu go jako PWM, to po jego wyłączeniu - na ADC2 pozostaje jakiś "zegar".
I tylko na tym ADC! Wszystkie pozostałe działają poprawnie.
Napięcie 24V, które jest mierzone przez ten ADC2, oczywiście podczas uruchamiania silnika, czyli działania PWM, podlega pewnym zakłóceniom. Tyle, że jest to sinusoida (mniej więcej), o okresie zgodnym z PWM, czyli około 10Khz, no i co najważniejsze - po pełnym włączeniu PWM, TIMER0 jest wyłączany, pin włączający silnik jest już "1" na stałe - a te oscylacje na ADC2 są nadal.
Próbowałem zmian w konfiguracji ADC na "FREE", oraz wszystkiego co mi przyszło do głowy, szybkości PWM, itp. Bez efektu.
Co jakiś czas - ok. 1 na 10 uruchomień - mam ten problem.
Podrzucicie jakiś pomysł ??
***
Doczytałem, że stosowanie jako układu kondycjonującego wzmacniacza pracującego przy niskim wzmocnieniu (tutaj 1), i bez odseparowania od wejścia ADC, może powodować takie "dzwonienie", a nawet oscylacje właśnie.
Wydaje się to o tyle prawdopodobne, że podniesienie napięcia zasilającego z 24 do 25 V (czyli także poziomu "normalnego" sygnału na wejście wzmacniacza), powoduje ustanie oscylacji.
Czy ktoś z Was miał podobne przygody z wejściami ADC ?
Po południu sprawdzę, czy zmiana wzmocnienia spowoduje poprawę sytuacji...
Atmega128 - jej główne zadanie to sterowanie silnikiem DC, za pomocą tranzystora mosfet. Zasadniczo chodzi tylko o ON/OFF, dodany jest jedynie softstart PWM.
Tranzystor ten sterowany jest z PB4 (OC0).
Atmega zaś taktowana kwarcem 14.745.600 Hz.
Dodatkowo , wykorzystane są 3 kanały ADC, w tym :
ADC1 - do pomiaru prądu pobieranego przez silnik
ADC2 - do pomiaru napięcia zasilania
Cały urządź zasilany jest z zewn. zasilacza 24V, no i potem jest przetwornica na 5V oczywiście.
Mierzone napięcia dostarczane są do ADC za pomocą takich prościutkich wtórników napięciowych :
Sygnał PSU-V-ADC biegnie sobie do ADC2, przy wejściu tym jest jeszcze kondensator 100nF do masy.
Podczas normalnej pracy (silnik nie jest włączany), na ADC2 jest następujący sygnał :
Czyli jest w miarę stały poziom napięcia, raz na sekundę pojawiają się zakłócenia, w chwili kiedy wykonywany jest pomiar (1 na sekundę).
Aha, ADC są skonfigurowane następująco :
' konfiguracja ADC
Config Adc = Single , Prescaler = 128 , Reference = Aref ' arefCzyli napięcie odniesienia zewnętrzne, zrobione na LM285 2.5V, oczywiście z kondensatorami, dławikiem itp.
I teraz - wszystko działa cacy, do momentu, kiedy nie korzystam z TIMER0, w trybie
FAST PWM, do uruchomienia silnika.
PWM jest uruchamiane poprzez wpisanie do TCCR0 wartości B01101010
(fast PWM, prescale 8).
Samo PWM działa poprawnie, silnik sobie startuje i gitara.
Ale - czasem - nie zawsze - raz na kilka uruchomień silnika, na wejściu ADC2 pojawia się jakby jakiś sygnał zegarowy :
Jak widać okres to 22.4 - 22.6 uS, czyli ok. 44kHz.
Kiedy tylko pojawią się te "oscylacje", to oczywiście dalsze pomiary z tego ADC są już błędne - czyli "pływają".
Co bardzo dziwne - oscylacje nie znikają nawet po resecie !
Dopiero wyłączenie zasilania powoduje ich zniknięcie. Oczywiście sprawdziłem , że zarówno napięcie zasilające wtórnik napięciowy, napięcie wejściowe na ten wtórnik - i nic podejrzanego.
Wygląda to tak, jakby sporadycznie - po włączeniu TIMER0, i użyciu go jako PWM, to po jego wyłączeniu - na ADC2 pozostaje jakiś "zegar".
I tylko na tym ADC! Wszystkie pozostałe działają poprawnie.
Napięcie 24V, które jest mierzone przez ten ADC2, oczywiście podczas uruchamiania silnika, czyli działania PWM, podlega pewnym zakłóceniom. Tyle, że jest to sinusoida (mniej więcej), o okresie zgodnym z PWM, czyli około 10Khz, no i co najważniejsze - po pełnym włączeniu PWM, TIMER0 jest wyłączany, pin włączający silnik jest już "1" na stałe - a te oscylacje na ADC2 są nadal.
Próbowałem zmian w konfiguracji ADC na "FREE", oraz wszystkiego co mi przyszło do głowy, szybkości PWM, itp. Bez efektu.
Co jakiś czas - ok. 1 na 10 uruchomień - mam ten problem.
Podrzucicie jakiś pomysł ??
***
Doczytałem, że stosowanie jako układu kondycjonującego wzmacniacza pracującego przy niskim wzmocnieniu (tutaj 1), i bez odseparowania od wejścia ADC, może powodować takie "dzwonienie", a nawet oscylacje właśnie.
Wydaje się to o tyle prawdopodobne, że podniesienie napięcia zasilającego z 24 do 25 V (czyli także poziomu "normalnego" sygnału na wejście wzmacniacza), powoduje ustanie oscylacji.
Czy ktoś z Was miał podobne przygody z wejściami ADC ?
Po południu sprawdzę, czy zmiana wzmocnienia spowoduje poprawę sytuacji...
