Układ PCB z mieszanym sygnałem dla PSoC

16

Rozwijam płytkę drukowaną do zastosowania w wykrywaniu analogowym. Wykorzystuje wewnętrzny ADC na PSoC3. Jak zwykle aplikacja ma bardzo ograniczoną przestrzeń (11 mm x 21 mm), więc musiałem dokonać pewnych kompromisów w układzie płytki drukowanej, czego nie zrobiłbym na większej płytce drukowanej.

PSoC PCB

Płytka jest zasilana regulowanym napięciem 6 V i zawiera dwa regulatory liniowe 5 V. MCP1702 na dostawę cyfrowego i MIC5205 na dostawę analogowego. Płytka wykrywa pięć czujników efektu Halla A1324 . Każdy sygnał wyjściowy z efektem Halla jest filtrowany przez filtr RC 100nF + 1k. Jeden czujnik znajduje się na samej płytce drukowanej (prawy dolny róg). Pozostałe 4 wtyczki podłącz do 6-stykowego złącza po prawej stronie.

Układ działa jako urządzenie podrzędne SPI, ale próbki ADC są zawsze pobierane między transakcjami SPI, więc SPI nie powinien zakłócać sygnałów analogowych.

Niestety nadal widzę szum (około 1,5 LSB przy 12 bitach) na sygnałach analogowych i zastanawiam się, czy mógłbym coś zrobić inaczej w układzie, aby to poprawić.

Układ PSoC

Otwórz obraz w nowej karcie, aby zobaczyć go w wyższej rozdzielczości.


Dodany:

Inne konstrukcje PCB, które zrobiłem przy użyciu MCP3208 , i te same podwójne zasilacze 5 V, te same czujniki i te same filtry RC nie osiągnęły zauważalnego hałasu przy 12 bitach.

ADC na PSoC3 jest typu sigma delta. Ta wersja PSoC jest ograniczona do 12 bitów, ale inny numer części ma 16-bitowy ADC (chociaż z niższą częstotliwością próbkowania).

Dbam o hałas i naprawdę chciałbym przesunąć go nieco dalej w stronę 12 ENOB. Powodem nie jest dokładność, ale pomiar prędkości. Obecnie ten poziom hałasu uniemożliwia dokładną kontrolę położenia i prędkości na robocie.


Dodany:

Schematyczny. Niestety jest trochę ciasno, ale możesz tylko przeczytać wartości.

Schemat PSoC

Rocketmagnet
źródło
1
Przestań także używać etykiet sieciowych! Twój obwód nie jest na tyle skomplikowany, by wymagał ich, a nie pokazując połączeń, znacznie utrudniasz wykrywanie połączeń. Ponownie, celem schematu jest uwidocznienie zamierzonej funkcji i funkcjonalności obwodu . Następnie pozwalasz komputerowi przetłumaczyć wizualną reprezentację na rzeczywisty fizyczny układ urządzeń (w czym komputery są bardzo dobre).
Connor Wolf,
1
@Rocketmagnet - Z pewnością są pomocne dla osoby rysującej obwód . Są całkowicie odrażające dla wszystkich innych .
Connor Wolf,
1
Ponadto, jeśli masz problemy z koniecznością prowadzenia przewodów z powodu ograniczeń przestrzennych, desperacko musisz przyjrzeć się funkcjom zamiany pinów w Altium. Zasadniczo możesz określić piny, które można funkcjonalnie zamieniać w definicji komponentu (np. Różne piny IO), a następnie, gdy kierujesz płytkę drukowaną, możesz uruchomić ślady do dowolnego z pinów, który by działał, a nie tylko do jednego określiłeś na schemacie. Następnie możesz zsynchronizować routing wybrany na płytce drukowanej ze schematem.
Connor Wolf,
1
@FakeName, łącząc się z etykietami, może utrudnić śledzenie obwodu, przerysowanie każdego symbolu w celu stworzenia czystego i czystego schematu z ładnymi prostymi liniami może z łatwością czterokrotnie zwiększyć czas wprowadzania schematu. Chciałbym zobaczyć idealny schemat, nie jestem pewien, czy jego realizacja jest realistyczna.
Photon
1
@Rocketmagnet, posiadanie bardzo małej powierzchni płytki nie oznacza, że ​​nie możesz narysować schematu na papierze w rozmiarze D.
Photon

Odpowiedzi:

13

Zawsze będziesz mieć trochę hałasu na ADC, szczególnie na typach SA (sukcesywnej aproksymacji) na matrycy mikrokontrolera. Sigma-delta lepiej sobie radzą z szumem gaussowskim, ponieważ go integrują. Nie oczekuj 12 ENOB od 12-bitowego ADC.

Szum kontrolera jest przyczyną, dla której większość mikrokontrolerów nie zapewnia rozdzielczości wyższej niż 10 bitów, a AVR oferuje możliwość zatrzymania mikrokontrolera podczas akwizycji ADC, co powinno potwierdzić, że przynajmniej część szumu pochodzi z kontrolera .

Ale pytanie brzmi: czy cię to obchodzi? 1,5-bitowy szum w 12-bitowym ADC nadal pozostawia więcej niż 10 bitów, lub lepiej niż 0,1%. Jak dokładny jest Twój czujnik Halla? Inne elementy w obwodzie?

edytuj
Wygląda na to, że używasz wewnętrznego oscylatora PSoC, ponieważ nie widzę kryształu na schemacie. Wygląda OK: masz właściwe odsprzęganie. Poza zegarem wewnętrznym jedyną szybką częścią obwodu wydaje się być SPI, ale mówisz, że będzie cicho podczas pomiarów. Reszta płyty ma prąd stały lub prawdopodobnie stosunkowo niską częstotliwość, jak czujniki Halla. I to Damn Small ™, który również pomaga: krótsze ślady wychwytują mniej hałasu. Pewnie, że mógłbym wytropić MCP1702, który obracałbym o 90 ° CCW, aby kondensator wyjściowy mógł być umieszczony jeszcze bliżej pinów, ale to nie rozwiąże problemów.

Widzę tylko jedną zmianę w układzie, która może poprawić współczynnik S / N:

wprowadź opis zdjęcia tutaj

W arkuszu danych sugerowane są podzielone analogowe i cyfrowe płaszczyzny uziemienia dla „Optymalnej wydajności analogowej” (strona 10).

Co do reszty: to mała plansza, jak powiedziałem, co oznacza krótkie ślady i oddzielenie w odległości kilku mm. Chciałbym więc jeszcze raz przyjrzeć się źródłu hałasu. Najważniejszym podejrzanym jest zegar PSoC. PSoC może zasilać bardzo niskie napięcie zasilania, co zmniejszyłoby jego hałas. Oczywiście bardzo by to pomogło, gdyby VDDA również musiało zostać obniżone, ale nigdzie nie czytałem w arkuszu danych, że VDDA nie powinno być wyższe niż VDDD.

Następnie ADC. Na stronie 55 arkusza danych podano 66 dB SINAD, czyli 11 bitów, czyli blisko tego, co dostajesz teraz. Arkusz danych A1324 daje nam szum 7 mVpp przy spoczynkowym napięciu 2,5 V. To także znacznie mniej niż stosunek S / N 72 dB, który może dać 12-bit. Możesz to trochę ulepszyć dzięki dodatkowemu filtrowaniu.

Wspominasz o lepszej wydajności MCP3208, ale to ADC z dala od mikrokontrolera, a to może wyjaśniać, w jaki sposób ADC SA może radzić sobie lepiej niż sigma-delta o tej samej rozdzielczości.

Tak więc opcje, które widzę: obniżają napięcie zasilacza cyfrowego i dzielą analogowe i cyfrowe masy.

stevenvh
źródło
To bardzo ciekawy pomysł na obniżenie napięcia zasilania cyfrowego PSoC. VDDA z pewnością może być wyższy niż VDDD.
Rocketmagnet,
Czy uważasz, że powinienem odłączyć VSSA od podkładki termicznej? Właściwie opublikowałem to jako zupełnie nowe pytanie .
Rocketmagnet,
2

Zgadzam się z powyższym. 1,5LSB hałasu jest całkiem rozsądne. http://www.cypress.com/?docID=39346 pokazuje minimalny SINAD wynoszący 66 dB w trybie 12-bitowym, co sugeruje ENOB = 10,7.

Wiem, że nie jest to bezpośrednia odpowiedź na twoje pytanie, ale zinterpretuję to pytanie jako „jak rozwiązać moje problemy z kontrolą prędkości?” a nie „Jak uzyskać więcej niż 10.5 ENOB?”.

Jak się różnicujesz? Czy masz dość wolnych tyknięć zegara, aby zrobić coś gładszego niż dwupunktowa centralna różnica? Może opracujesz coś o szerokości 5 próbek, zoptymalizowane w Matlabie?

Może to również zabrzmieć trochę śmiesznie, ale hałas prędkości pogarsza się, gdy próbkujesz szybciej

1L.S.bΔt

Nie obrażaj się, ale również rzuć okiem, aby upewnić się, że nic nie dzieje się głupio w kontroli prędkości, np. Problemy z konwersjami między liczbami całkowitymi ze znakiem i bez znaku, i upewnij się, że liczby całkowite są wystarczająco szerokie, aby uniknąć błędów przepełnienia podczas różnicowania . Moje równania kontrolne często komplikują się na tyle, że czasami jawnie rzucam każdą operację.

Wreszcie, choć być może najbardziej prawdopodobne, czy tracisz efektywne bity poza górą, nie wzmacniając ich do prawie pełnej skali? Jeśli tak, możesz wzmocnić lub zapewnić mniejszy Vref.

Scott Seidman
źródło
Obliczamy pozycję i prędkość za pomocą filtra Alpha Beta . Rozumiem, że hałas prędkości rośnie wraz ze wzrostem częstotliwości próbkowania, jeśli zostanie to wykonane naiwnie. Jestem pewien, że hałas prędkości nie jest spowodowany błędem znaku. I jesteśmy już prawie na pełnej skali, więc nie mogę zrobić żadnego wzmocnienia bez ryzyka uderzenia w górną lub dolną część zakresu.
Rocketmagnet
Czy powiedziałbyś, że nie ma ulepszeń w układzie?
Rocketmagnet
Nic jeszcze nie widzę. Jak wzmacniasz czujniki Halla? Czy rzeczywiście spojrzałeś na wyniki filtrów AB i eqnsów kontrolnych jako sprawdzian rzeczywistości? Zerknął na hałas na zewnątrz Twojego regulatora? Rozsądne może być stworzenie formalnego budżetu na hałas dla całego systemu
Scott Seidman,
1
Ale! Inną zaletą trybu różnicowego jest to, że pozwala mi 4x zwiększyć częstotliwość próbkowania, dzięki czemu mogę wykonać oversampling. To powinno nieco obniżyć hałas.
Rocketmagnet
1
Może Vref ma ograniczenia dotyczące obejścia (nie jestem pewien, jak to zrobić, znajduje się w arkuszu danych). Poza tym myślę, że jesteś bardzo blisko idealnego ENOB dla PSOC 3 ADC na 12 bitów, więc zrobiłeś tak dobrze, jak potrafiłeś!
Scott Seidman