albertb napisał: tmf napisał: Dzięki temu "spieprzeniu" ADC ma możliwość detekcji przejścia przez zero.
A tak trochę offtopic. Nie krytykuję rozwiązania Atmela, nawet nie zamierzam wnikać w szczegóły.
Ale powiedz mi, naprawdę z ciekawości, jaki jest sens używania ADC do detekcji przejścia przez zero.
Na chwilę obecną wydaje mi się to najbardziej przekombinowanym rozwiązaniem.
Albert
Albert, nie potrafię czytać w myślach inżynierów Atmela

Moja hipoteza jest taka - w XMEGA masz rejestr compare, umożliwiający zrobienie na ADC dyskryminatora. Czyli możesz sobie samplować (i to nawet szybko bo masz 2 Msps), a info o konwersji ADC jest przekazywane tylko wtedy, gdy uzyskana wartość jest powyżej lub poniżej określonego progu. Czyli robisz z ADC komparator analogowy, przy czym jedno z wejść może byc programowo precyzyjnie sterowane. Być może zrobili tak, żeby uniknąć jakiś zniekształceń, gdy Vin jest w okolicach GND? Może coś to daje jeśli mierzymy prądy płynące przez mostek H sterujący silnikami? Może da się to jakoś wykorzystać przy komutacji BLDC?
Żeby nie było - nie bronię tego, też wydaje mi się to przekombinowane, ale nie demonizuję problemu. Ot, taki folklor

Jak znajdę inne rozsądne zastosowanie dla tego trybu to dam znać
Dodano po 10 [minuty]: Marek_Skalski napisał: Pomiar <Vss to 5% z 2.7V, czyli całe 135mV. Zazwyczaj jak ktoś potrzebuje detektor zera to ten detektor będzie traktowany napięciem +/- (symetrycznym). Tutaj mam -135mV/+2565mV w idealnym przypadku. Jak podam +/-2V, to układ tego raczej nie przeżyje...
Marku, dlaczego nie przeżyje? Kwestia impedancji wyjścia źródła. Jeśli jest odpowiednio wysoka (szeregowy rezystor), to to co jest poniżej -0,6V zostanie obcięte. A więc zero wykryję i nic mi się nie sfajczy.
Marek_Skalski napisał: Mogę wprowadzić kolejny offset, ale wtedy nie wykryję przejścia przez zero. A przecież gdybym wprowadził offset 50%, to przejście przez zero mogę wykryć na drodze porównania wartości z ciągłej konwersji. Naprawdę ten 5% offset jest jak kwiatek do kożucha.
Inna opcja: Używam trybu różnicowego i mam przetwornik 11-bitowy. Czy to dlatego Xmega jest wyjątkowa, że mając 12-bitowy ADC daje tylko 11-bitowy wynik?
Oczywiście masz rację, ponieważ nigdy tej funkcji nie użyłem, myślę, tak jak ty. Tylko jedna uwaga - "Czy to dlatego Xmega jest wyjątkowa" - no właśnie, w tej i innych dyskusjach mam wrażenie, że wychodzisz z założenia (nie tylko Ty), że próbuję (ktoś próbuje) udowodnić, że XMEGA jest wyjątkowa i lepsza niż nie daj Boże ARM. Otóż nikt tak nie pisze i nikt niczego nie udowadnia.
Marek_Skalski napisał: Inna opcja: Doprowadzam Vref 2.7V, używam dzielnika 1:2 i wykorzystuję jedynie 61% zakresu. To ma być ulepszenie? No chyba, że w systemie jest 5V i tylko uC chodzi na 3.3V. Ale to też jest dziwaczne, bo Xmega nie toleruje na wejściach napięć >3.6V, więc taki układ jest z założenia bezsensowny.
Ale dlaczego chcąc mierzyć napięcie max 3,3V używasz Vref 2,7V? Opisany przez ciebie problem jest niezależny od ADC - w ogólności - jeśli masz źle dobrane napięcie referencyjne i dzielnik, to tracisz część zakresu.