Skocz do zawartości

Układ testowy szybkiego przetwornika analogowo-cyfrowego (12-bit SAR 1MSPS) AD7091R-2BRUZ


FlyingDutch

Pomocna odpowiedź

Cześć,

jakiś czas temu pisałem, że chcę zaprojektować zestaw uruchomieniowy dla układu FPGA firmy Gowin (GW1N-LV9LQ144C6/I5):

https://www.mouser.pl/ProductDetail/GOWIN-Semiconductor/GW1N-LV9LQ144C6-I5?qs=wnTfsH77Xs6N%2FyGezJZrJQ%3D%3D

Chciałbym, żeby płytka FPGA była dobrze wyposażona w dodatkowe układy pozwalające rozwijać ciekawe projekty na tym zestawie"

1) Szybkie przetworniki ADC i DAC (około 1MSPS: milon sampli na sekundę)

2) Przetworniki ADC iDAC audio I2S (stereofoniczne)

3) Mikrofon I2S stereo

4) Pamieć SRAM 2Mx16-bit jako bufor obrazu

5) Interfejs MIPI dla kamery wideo

W jednym z wcześniejszych postów opisałem test sterownika SRAM i płytkę do testów pamięci SRAM 2Mx16-bit. W tym poście chcę opisać przetwornik ADC AD7091R-2BRUZ:

https://www.mouser.pl/ProductDetail/Analog-Devices/AD7091R-2BRUZ?qs=VUiNDWmc7XE7uhXFyw6PpQ%3D%3D

https://www.mouser.pl/datasheet/2/609/AD7091R_2_7091R_4_7091R_8-2955664.pdf

Jest to 12-to bitowy dość szybki ADC SAR o prędkości do miliona sampli na sekundę z interfejsem SPI (do mikro-kontrolera lub układu FPGA). W układzie testowym przetwornika będą jeszcze potrzebne w miarę szybkie (pasmo do 10MHz) i precyzyjne wzmacniacze operacyjne - wybrałem układ AD8606ARMZ-R7:

https://www.tme.eu/pl/details/ad8606armz-r7/wzmacniacze-operacyjne-smd/analog-devices/

https://www.analog.com/media/en/technical-documentation/data-sheets/AD8605_8606_8608.pdf

Tutaj zamieszczam schemat układu testowego przetwornika ADC:

Schematic_ADC_12bit_1MSPS_AD7091R-2BRUZ_2023-03-18.thumb.png.3be829df8489785937165d9963fa60f7.png

Poniżej płytka testowa PCB.

PCB_ADC_12bit_1MSPS_AD7091R-2BRUZ.thumb.png.379cefd505f0720e8ba55f7b9db1ee2a.png

A tutaj schemat i PCB w PDF, oraz Gerber file dla PCB.

 Schematic_ADC_12bit_1MSPS_AD7091R-2BRUZ.pdf

PCB_ADC_12bit_1MSPS_AD7091R-2BRUZ.pdf

Gerber_PCB_ADC_12bit_1MSPS_AD7091R-2BRUzip.zip

W jak Chińczycy przyślą płytki drukowane, to zamieszczę kod testowego programu (najpierw chcę połączyć przetwornik do jakiejś płytki z MCU  STM32, a potem do układu FPGA Gowin). Będę aktualizował ten post.

BTW: zamówiłem płytki PCB do testu ADC i pamięci SRAM 2Mx16 w JLCPCB i obie płytki (po 5 sztuk) razem z kosztami przesyłki wyszły 13.21$.

Pozdrawiam

Edytowano przez FlyingDutch
update
  • Lubię! 1
Link do komentarza
Share on other sites

Przed chwilą, Elvis napisał:

Szybkość to pojęcie bardzo względne, więc nie będę się kłócił czy 1 MSPS to na pewno szybkie przetworniki 😉

W każdym razie warto popatrzeć jak wyglądają gotowe moduły o podobnej funkcjonalności, przykładowo: https://digilent.com/shop/zmod-scope-1410-2-channel-14-bit-oscilloscope-module/

Cześć @Elvis

to prawda, że nie są to bardzo szybkie przetworniki ADC pozwalające na budowę cyfrowego oscyloskopu, lecz ważnym kryterium ich wyboru była cena. Wiem, że są przetworniki ADC mające prędkość do 40 Giga sampli na sekundę, ale kosztują one majątek 🙂. Chciałbym, żeby cały zestaw uruchomieniowy, który projektuję kosztował mniej niż te 219$, które kosztuje moduł podany przez Ciebie w poście. Chciałbym zaprojektować płytkę FPGA, która oprócz diod LED, switchy, wyjścia VGA będzie zawierała układy pozwalające na obróbkę dźwięku za pomocą bloków DSP z FPGA (np. FFT i filtry cyfrowe) - najważniejsze będą tu ADC i DAC audio oparte na I2S (o nich jeszcze nie pisałem, ale mam już wytypowane układy scalone). Ten przetwornik jest pomyślany raczej jako np. baza do projektu multimetru na zestawie FPGA. Na pewno dodam do płytki pamięć SRAM 2Mx16 bit jako bufor obrazu, oraz interfejs MIPI dla kamer wideo (może skuszę się także na wyjście HDMI, ale na razie nie jest to pewne). Chciałbym, żeby cena zestawu uruchomieniowego FPGA była taka, aby byłoby na niego stać także młode osoby, które studiują, a jednocześnie aby na tym zestawie można rozwijać ciekawe projekty.

Pozdrawiam

Link do komentarza
Share on other sites

@FlyingDutch Nie chciałem żeby moja uwaga zabrzmiała jako krytyka, uważam, że pomysł zrobienia niedrogiej płytki FPGA jest bardzo dobry i kibicuję Twojemu projektowi. Chodziło mi tylko o to, że 1MSPS jest w zasięgu mikrokontrolerów, nawet zwykłych stm32 - więc chyba nie należy obawiać się szczególnych problemów.

  • Lubię! 2
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Przed chwilą, Elvis napisał:

@FlyingDutch Nie chciałem żeby moja uwaga zabrzmiała jako krytyka, uważam, że pomysł zrobienia niedrogiej płytki FPGA jest bardzo dobry i kibicuję Twojemu projektowi. Chodziło mi tylko o to, że 1MSPS jest w zasięgu mikrokontrolerów, nawet zwykłych stm32 - więc chyba nie należy obawiać się szczególnych problemów.

@Elvis,

tak to prawda, pierwsze testy chcę zrobić z płytką Nucleo (STM32), jak program będzie działał to napiszę na jego podstawie kod dla układu FPGA 🙂

Pozdrawiam

  • Lubię! 1
Link do komentarza
Share on other sites

Cześć,

szukałem dzisiaj przetwornika ADC o prędkości większej niż 1MSPS i znalazłem układ MAX1422ECM+D o prędkości 20MSPS i cenie 68 PLN (dostepny od razu w Mouser.com):

https://www.mouser.pl/ProductDetail/Maxim-Integrated/MAX1422ECM%2bD?qs=EJX7GXAF8YMP6mj4JNENAA%3D%3D

https://www.analog.com/media/en/technical-documentation/data-sheets/max1422.pdf

Wyjście cyfrowe układu w tym przypadku nie jest SPI tylko równoległe (12-bit). Układ aplikacyjny jest też bardziej skomplikowany niż w przypadku IC AD7091R-2BRUZ. Na takim układzie teoretycznie można by zbudować oscyloskop cyfrowy o paśmie analogowym wynoszącym kilka MHz. Prawdopodobnie zastosuję ten układ MAX1422ECM+D w projekcie zestawu uruchomieniowego FPGA (Gowin).

Pozdrawiam

  • Lubię! 2
Link do komentarza
Share on other sites

(edytowany)

Cześć,

wczoraj polutowałem płytkę testową z przetwornikiem ADC - AD7091R-2BRUZ - patrz zdjęcie:

PCB_ADC.thumb.jpg.45c90b9faeb1b405338ab0b665cd311b.jpg

W najbliższych dniach będę próbowął uruchomić ten przetwornik ADC.

Pozdrawiam

Edytowano przez FlyingDutch
  • Lubię! 1
Link do komentarza
Share on other sites

Dnia 20.03.2023 o 14:22, FlyingDutch napisał:

znalazłem układ MAX1422ECM+D o prędkości 20MSPS

@FlyingDutch cześć! Widzę że to też mi umknęło 😞  temat nawiązuje do próby połączenia Sipeed Tang Nano z przetwornikiem ADC 🙂 

Tak się zastanawiam, jak się komunikować z szybszymi przetwornikami? 20MSPS to jest jeszcze do pogodzenia z SPI, ale gdyby było dużo więcej?

Dnia 17.03.2023 o 16:13, Elvis napisał:

Patrząc na schemat tego, jest użyty układ AD9648 z 125MSPS i jego wyjście to najwyraźniej równoległe:

image.thumb.png.1c6d642f9f1504e4b17c45fb6c31bc4b.png

i to jest ostateczne rozwiązanie dla szybkich przetworników?

Ciekawy skok cenowy, ten układ kosztuje 100$, proponowany przez ciebie 5$.

  • Lubię! 2
Link do komentarza
Share on other sites

(edytowany)

Cześć,

pamiętajcie, że wybrane przetworniki ADC są w kontekście taniego zestawu uruchomieniowego i nauki wykorzystania różnego rodzaju układów z chipem FPGA, dlatego cena jest jednym z najważniejszych parametrów wyboru.

@Elvis, tego interfejsu JESD204 nie znałem, rzeczywiście wygląda on ciekawie - na pewno o nim poczytam. W kontekście tego zestawu uruchomieniowego FPGA interfejs równoległy będzie prawdopodobnie najlepszym wyborem.

BTW: jeśli macie jakieś ciekawe odnośniki do projektowania PCB dla układów FPGA, oraz ograniczania emisji zakłóceń elektromagnetycznych z PCB to z chęcią skorzystam (przeglądałem wiele filmów na YT dotyczących tych tematów - głównie z kanałów "Altium Designer" i "Phil's Lab").

Jestem w szoku. że "EasyEDA" ma funkcje do projektowania ścieżek dla sygnałów różnicowych, oraz kontroli długości (Impedance and Length matching).

Pozdrawiam

Edytowano przez FlyingDutch
Link do komentarza
Share on other sites

@FlyingDutch  tak to zrozumiałe, ceny przetworników są wysokie.

Co do układu DAC. Ostatnio testowałem płytkę z układem AD5621 Podobny, 12 bit, SPI. https://www.mouser.pl/datasheet/2/609/AD5601_5611_5621-3118345.pdf

Układ miał sterować głośniczkiem przez opamp. Ale jakoś nie przekonał mnie. Strasznie szumiał i oddaliśmy płytkę do rewizji. Nie wiem czy to wina toru analogowego, ale w specyfikacji zastosowania układu były raczej nie audio i raczej nie szybkie:

image.thumb.png.a3e92a839f5da7611cb32c3db71a4126.png

image.thumb.png.9446d99cd499020b119d2d0bb2176fb3.png

Wydaje mi się, że przez to że ten układ nie ma buforowania to jest niezadobrym pomysłem zarówno dla mikrokontrolera i jakości dźwięku.

Układ który podesłałeś ma takie typowe zastosowania:

image.thumb.png.50b8e9d6b498f03a471ad504be00d836.png

Jak myślisz, nie będzie problemów jak będzie potrzeba wysyłać po SPI np 60kHz próbek? Nie zagłębiałem się w dokumentację, czy układ ma jakieś buforowanie sampli i czy w ogóle to jakoś poprawia jakość?

image.thumb.png.3296daf18f9eea6fb100a1d295f5e000.png

  • Lubię! 2
Link do komentarza
Share on other sites

44 minuty temu, FlyingDutch napisał:

pamiętajcie, że wybrane przetworniki ADC są w kontekście taniego zestawu uruchomieniowego

@FlyingDutch masz oczywiście rację, ale szybkie przetworniki ADC są drogie, a nawet bardzo drogie więc raczej ciężko jest je zastosować w tanim zestawie 😞

Inna sprawa, że w przypadku JESD łatwo pokazać sens używania FPGA. Natomiast jeśli przetwornik jest podpięty przez SPI to w sumie wystarczy mikrokontroler, a używanie FPGA jest nieco na siłę.

  • Lubię! 2
Link do komentarza
Share on other sites

1 godzinę temu, Gieneq napisał:

@FlyingDutch  tak to zrozumiałe, ceny przetworników są wysokie.

Co do układu DAC. Ostatnio testowałem płytkę z układem AD5621 Podobny, 12 bit, SPI. https://www.mouser.pl/datasheet/2/609/AD5601_5611_5621-3118345.pdf

Układ miał sterować głośniczkiem przez opamp. Ale jakoś nie przekonał mnie. Strasznie szumiał i oddaliśmy płytkę do rewizji. Nie wiem czy to wina toru analogowego, ale w specyfikacji zastosowania układu były raczej nie audio i raczej nie szybkie:

image.thumb.png.a3e92a839f5da7611cb32c3db71a4126.png

image.thumb.png.9446d99cd499020b119d2d0bb2176fb3.png

Wydaje mi się, że przez to że ten układ nie ma buforowania to jest niezadobrym pomysłem zarówno dla mikrokontrolera i jakości dźwięku.

Układ który podesłałeś ma takie typowe zastosowania:

image.thumb.png.50b8e9d6b498f03a471ad504be00d836.png

Jak myślisz, nie będzie problemów jak będzie potrzeba wysyłać po SPI np 60kHz próbek? Nie zagłębiałem się w dokumentację, czy układ ma jakieś buforowanie sampli i czy w ogóle to jakoś poprawia jakość?

image.thumb.png.3296daf18f9eea6fb100a1d295f5e000.png

Cześć @Gieneq,

ten ADC AD7091R-2BRUZ z interfejsem SPI chcę przetestować, bo go już kupiłem i zaprojektowałem płytkę testową. Test zrobię na RPI Zero. Docelowo w projektowanym zestawie FPGA użyję jednak MAX1422ECM+D o prędkości 20MSPS i interfejsie równoległym. Dodatkowo zestaw będzie wyposażony w ADC i DAC I2S do celów obróbki audio - mowa tutaj o zestawie FPGA na układzie GW1N-LV9 w obudowie BGA256 (który dopiero będę projektował). Ten przetwornik MAX1422ECM+D chciałbym uzyć do projektu prostego oscyloskopu cyfrowego (pasmo analogowe gdzieś do kilku MHz) na tym zestawie FPGA.

Pozdrawiam

  • Lubię! 2
Link do komentarza
Share on other sites

(edytowany)

Podaję kilka linków do dokumentacji i kodu źródłowego dla ADC AD7091R-2BRUZ:

1) Dokumentacja na stronie "Analog Devices WiKi":

https://wiki.analog.com/resources/eval/user-guides/ad7091r5

2) Kod źródłowy na Github'ie:

https://github.com/analogdevicesinc/no-OS/tree/master/drivers/adc/ad7091r

3) Kod źódłowy dla  "Raspberry Pi" (Github):

https://github.com/lesterlecong/AD7091R_Raspberry_Pi

Update: dodaję jeszcze linki do dokumentacji jak budować aplikacje z repo "Analog devices" No-OS:

https://wiki.analog.com/resources/no-os/make

https://wiki.analog.com/resources/no-os/build

https://wiki.analog.com/resources/no-os

https://github.com/analogdevicesinc/no-OS

Pozdrawiam

Edytowano przez FlyingDutch
update
  • Lubię! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.