LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
Artykuły

[RAQ] Bo tak powiedział pan Ohm…

Pytanie:

W moim systemie interfejs SPI przetwornika ADC zwraca wartość 0xFF dla każdego odczytu. Co może być tego przyczyną?

Odpowiedź:

Nowa generacja przetworników analogowo-cyfrowych (ADC) o szybkości Gsps (gigasamplowej) zapewnia najlepszą w branży wydajność i niezawodność przy odpowiedniej implementacji systemu. Jeśli jednak interfejs SPI zwraca za każdym razem wartość 0xFF to z pewnością jest to brak wyzwalania przetwornika. Taki wynik oznaczać, że coś nie działa prawidłowo wewnątrz przetwornika ADC. Zastanówmy się, co to może być.

Najnowsza generacja przetworników Gsps, takich jak na przykład AD9680, została wykonana w procesie technologicznym CMOS na poziomie 65 nm. W celu uzyskania wymaganej wydajności w zakresie zmiennych sygnałów, w projekcie musi wystąpić kilka napięć zasilania (1,25 V, 2,5 V, 3,3 V). Zazwyczaj każdy układ krzemowy pracujący z wieloma napięciami wymaga jakiegoś sekwencjonowania zasilania. Jednak projektanci Analog Devices opracowali dodatkowe układy sterujące wbudowane w układ AD9860, dzięki którym jego implementacja z punktu widzenia użytkowników jest łatwiejsza, eliminując potrzebę sekwencjonowania zasilania.

Przetwornik AD9680 ma wewnętrzny obwód resetowania po włączeniu zasilania (POR), który nadzoruje wszystkimi liniami zasilania. Dopóki ten obwód nie uzyska potwierdzenia odpowiednich poziomów napięć na liniach zasilania, przetwornik pozostanie w trybie resetu. W trybie resetu, gdy poziom napięcia SPIVDD wynosi 1,8, 2,5 lub 3,3 V, przetwornik będzie wystawiał wartość 0xFF na porcie SPI przy każdym odczycie. To przypomina opisaną sytuację. W takim przypadku najlepszym przyjacielem będzie tradycyjny, niezawodny multimetr cyfrowy.

Przy użyciu multimetru należy sprawdzić napięcia zasilania na różnych pinach AD9680. Istnieje ryzyko, że jedno z nich znajdzie się poza zakresem dopuszczalnym przez wewnętrzny blok POR.

W tym momencie sprawy się komplikują. Na rysunku 1 widać schemat blokowy przetwornika AD9680-1250 taktowanego zegarem 1,25 GHz. Dla kogoś, kto po raz pierwszy spojrzy na ten schemat, wszystko wygląda normalnie. Nie są widoczne kondensatory odsprzęgające ani inne linie zasilania. Skupiono się na zasilaniu 1,25 V, ponieważ jest to najmniejsze napięcie zasilania.

Rys. 1. Zasilanie linii 1,25 V układu AD9680 przy użyciu zasilacza LDO ADP1741

Układ ADP1741 wydaje się mieć wystarczającą wy­dajność, aby zasilić wszystkie linie dołączone do na­pięcia 1,25 V. Jednak przyczyną problemów nie jest ani zasilacz, ani przetwornik, lecz o nic niepodejrzewany koralik ferrytowy. Zazwyczaj koraliki ferrytowe są stosowane w sieciach zasilania, aby odfiltrować napięcie zasilania docierające do określonego urządzenia. Jednym z parametrów koralika, który często umyka uwadze, jest DCR – rezystancja dla prądu stałego.

Dlaczego jest to istotne? Ponieważ tak dowiódł pewien dżentelmen o nazwisku Georg Simon Ohm.

Prawo Ohma mówi, że prąd płynący przez przewodnik między dwoma punktami jest wprost proporcjonalny do różnicy potencjałów między tymi punktami. Zatem na wyjściu LOD ADP1741 możemy zmierzyć napięcie 1,25 V, czyli prawidłową wartość. Jednak pomiar napięcia na pinach ADC, lub po drugiej stronie koralika ferrytowego daje wynik 1,12 V (przyjmując prądy nominalne). To właśnie jest przyczyną odczytu 0xFF na wyjściu SPI przetwornika. Wewnętrzny blok nadzoru napięć nie widząc odpowiednich napięć blokował pracę AD9680.

Jak rozwiązać ten problem? Jest kilka możliwości.

  1. Zrezygnować z koralika ferrytowego. To może, ale nie musi zwiększyć wrażliwość systemu na zakłócenia.
  2. Zmienić wartość napięcia zasilacza LDO, aby uwz­ględnić spadek napięcia na koraliku, który jest rów­ny IxR(DCR). Jednak to rozwiązanie może narazić AD9680 na potencjalnie zbyt wysokie napięcia w sytuacji, gdy nie pobiera on wystarczająco dużego prądu.
  3. Wybrać inny koralik ferrytowy, który ma tą sama impedancję i dopuszczalny prąd, ale niższy parametr DCR (poniżej 50 mOhm).
  4. Podzielić wyjścia napięciowe pomiędzy szyny (AVDD1, AVDD1_SR, DVDD, SRVDD) i użyć koralika ferrytowego z niższym DCR na każdej, aby zapewnić odpowiednie napięcie pracy.

Rysunek 2 przedstawia opcje 2. i 4. wymienione po­wyżej. Opcja 4. zapewnia najlepszy kompromis, jednak zwiększa całkowity koszt rozwiązania – o czym warto pamiętać. Opcja 4. zwiększa ponadto odporność na zakłócenia, dodając pewną filtrację między liniami AVDD, DVDD oraz DRVDD.

Rysunek 2. Różne opcje wyboru i zastosowania koralika ferrytowego w zasilaniu AD9680

Więc następnym razem po podłączeniu przetwornika, doprowadzeniu zegara i uzyskania wartości 0xFF w każdym cyklu odczytu, będzie już jasne, co robić. W takim przypadku czcigodny multimetr cyfrowy staje się Twoim ulubionym przyjacielem, a nie oscyloskop czy zaprzyjaźniony inżynier aplikacyjny. Koralik ferrytowy z pewnością może poprawić odporność syste­mu na zakłócenia. Jednak jego niepoprawny dobór oraz nierespektowanie prawa Ohma może skutkować poważnymi problemami w poprawnym działaniu przetwornika ADC.

Umesh Jayamohan jest inżynierem aplikacyjnym w grupie Analog Devices zajmującej się przetwornikami wysokiej szybkości. Pracuje w firmie od roku 2010. Umesh uzyskał licencjat na uniwersytecie Kerala w Indiach w roku 1998 i dyplom magistra na uniwersytecie w Arizonie w roku 2002.