ADC LTC1407A-1
Transkrypt
ADC LTC1407A-1
Programowanie Układów Logicznych kod kursu: ETD6203 Komunikacja z układami cyfrowymi W5 – 30.03.2016 dr inż. Daniel Kopiec Plan wykładu 1 2 3 4 5 6 2 • Standard komunikacji RS232 • Enkoder obrotowy • Wyświetlacz 7-segmentowy • Przetworniki ADC, DAC wiadomości ogólne • DAC LTC2624 • ADC LTC1407A-1 Peryferia – port szeregowy RS232 3 Pin Sygnał Nazwa Kierunek 1 2 3 4 DCD RXD TXD DTR Data Carrier Detect Receive Data Transmit Data Data Terminal Ready In In Out Out 5 6 7 8 9 GND DSR RTS CTS RI Ground Data Set Ready Request to Send Clear to Send Ring Indicator In Out In In LPC2368: UART0/2/3 UART1 – możliwość budowy modemu RS232 – ramka danych UART – Universal Asynchronous Receiver Transmitter 3,3 V 0 1 2 3 4 5 6 7 P +8 V -8 V stan IDLE bit startu „0” 4 8 – bitów danych bit parzystości bity stopu: 1, 2 lub 1.5 Peryferia – port szeregowy RS232 • Transmisja synchroniczna • Transmisja asynchroniczna 5 Peryferia – port szeregowy RS232 - szybkość transmisji • Szybkość transmisji (Baud Rate) podawana zazwyczaj jako: np.9600 bodów – czyli 9600 bitów na sekundę czas transmisji 1-bitu -> 1/9600 -> 104,16 µs 0 1 2 3 4 5 6 7 P STOP 12 x 104,16 µs = 1,25 ms Inne typowe szybkości transmisji danych: 110, 150, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 …. 6 Dlaczego stan „X” ..? entity LED_blink is port ( CLK_50MHz : in std_logic; LED : out std_logic; nreset : in std_logic); end LED_blink; architecture Behavioral of LED_blink is signal counter: std_logic_vector (2 downto 0); signal CLK_1Hz: std_logic := '0'; begin prescaler: process (nreset, CLK_50MHz) begin if (nreset = '0') then counter <=(others => '0'); LED <= '0’; elsif rising_edge(CLK_50MHz) then if counter < "111" then counter <= counter + 1; else CLK_1Hz <= not CLK_1Hz; counter <=(others => '0'); end if; end if; end process prescaler; LED <= CLK_1Hz; end Behavioral; stim_proc: process begin nreset <='1'; LED <= '1'; wait for 100 ns; assert false severity failure; end process; Ten sygnał otrzymujemy jako rezultat działania kodu z pliku *.vhd Enkoder obrotowy • Sygnały wyjściowe z enkodera obrotowego Enkoder obrotowy – zasada działania • sygnał kwadraturowy pomiędzy wyjściami A, B, • alternatywa dla klasycznych potencjometrów, klawiatur itp. • sygnał na wyjściach A oraz B a dokładniej faza i częstotliwość sygnału niosą informację o: kierunku obrotu osi enkodera oraz szybkości jego obracania 9 Enkoder obrotowy – drgania styków • Oscylogram przedstawiający drgania styków mechanicznych 1 http://www.onsemi.com/pub_link/Collateral/MC14490-D.PDF Usuwanie drgań mechanicznych • Jednym z możliwych sposobów usuwanie drgań styków jest zapamiętanie stanu wejścia w kilku kolejnych cyklach zegara • Wyjście out zmienia się tylko wtedy gdy wejście ma tą samą wartość przez N kolejnych zboczy narastających zegara, • Okres zegara musi być jednak dłuższy od czasu drgania styków mechanicznych, zegar 50 MHz (T=20 ns), drgania mechaniczne ~1ms !!! 11 Enkoder obrotowy – pełen okres 12 źródło: EP 11/2002 Enkoder obrotowy – ¼ okresu 00/1 01/0 S00 00/0 S01 11/0 01/1 AB/K 10/1 S10 AB/K gdzie: AB – wyjścia enkodera K – kierunek działania 10/0 S11 11/1 • Stan początkowy automatu jest taki jak bieżące położenie pokrętła 13 Wyświetlacz 7-segmentowy wspólny „minus” stan aktywny: „1” 14 wspólny „plus” stan aktywny: „0” Wyświetlacz 7-seg. multipleksowany 15 Wyświetlacz 7-seg. multipleksowany - układ z PUL 16 Sterowanie katod poszczególnych segmentów Wyświetlacz 7-seg. multipleksowany Cykl działania wyświetlacza 1 ms – 50 ms ¼ cyklu ¼ cyklu ¼ cyklu ¼ cyklu CYFRA 1 CYFRA 2 CYFRA 3 CYFRA 4 Sterowanie anod – 7 linii odpowiedzialnych za wyświetlenie cyfr 17 Wyświetlacz 7-seg. multipleksowany 18 Wyświetlacz 7-seg. multipleksowany btn(3) btn(2) btn(1) btn(0) s(1) 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 X 0 0 1 1 s(1) = btn(2) or btn(3); s(0) = btn(1) or btn(3); 19 s(0) X 0 1 0 1 Przetworniki AC, CA • Rozróżniamy 2 typy przetworników: – analogowo-cyfrowe AC (ADC), – cyfrowo-analogowe CA (DAC). 20 http://www.analog.com/library/analogDialogue/archives/3906/data_conversion_handbook.html Kwantowanie, próbkowanie 21 Przetwornik AC – typ wejścia 22 Kwantowanie, próbkowanie Twierdzenie o próbkowaniu: częstotliwość próbkowania (fs) powinna być dwukrotnie większa niż pasmo przenoszonych częstotliwości (f). Przykład: • Sygnał akustyczny o częstotliwości do 20 kHz, zgodnie z twierdzeniem ShannonaKotielnikowa powinien być próbkowany z częstotliwością co najmniej 40 kHz. • W praktyce częstotliwość próbkowania jest równa 44 kHz. Jeśli w sygnale pojawi się częstotliwość 46 kHz to po próbkowaniu z fs=44 kHz w widmie znajdziemy prążek 2 kHz (tzw. alias)-czyli dźwięk słyszalny. W takiej sytuacji konieczne jest zastosowanie tzw. filtrów antyaliasingowych (dolnoprzepustowych). 23 Rozdzielczość w bitach Dobór przetwornika … Szybkość próbkowania 24 Liczba bitów N Liczba poziomów kwantyzacji Kwant dla napięcie 5V 8 256 19,5 mV 10 1024 4,8 mV 12 4096 1,2 mV 16 65536 76,3 µV Parametry wejściowe: - rozdzielczość, - rodzaj kodu - poziomy logiczne, - format danych A Glossary of Analog-to-Digital Specifications and Performance Characteristics http://www.ti.com/lit/an/sbaa147b/sbaa147b.pdf Rozdzielczość w bitach Dobór przetwornika … Szybkość próbkowania 25 Zastosowania … 26 Spartan 3E Starter Board ADC LTC1407A-1 SCK (U16) MISO (N10) CONV (P11) DAC LTC2624 MOSI (T4) MISO (N10) SCK (U16) CS (N8) CLR (P8) LTC6912 27 Dual Programmable Gain Amplifiers with Serial Digital Interface MOSI (T4) CS (N7) SCK (U16) SHDN (P7) DOUT (E18) DAC LTC2624 Quad DAC 28 DAC LTC2624 Quad DAC 29 http://cds.linear.com/docs/en/datasheet/2604fd.pdf DAC LTC2624 Quad DAC 30 http://cds.linear.com/docs/en/datasheet/2604fd.pdf DAC LTC2624 Quad DAC 31 DAC LTC2624 Quad DAC LTC2624: - ilość bitów N=12, tak więc 212 = 4096 - załóżmy REFx = 3,3V, REFLO = 0V (GND) 𝑼𝑶𝑼𝑻 𝒌 = 𝑵 𝑹𝑬𝑭𝒙 𝟐 𝒌= 32 http://cds.linear.com/docs/en/datasheet/2604fd.pdf 𝑼𝑶𝑼𝑻 𝟐𝑵 𝑹𝑬𝑭𝒙 DAC LTC2624 – ramka danych 𝒌= 33 𝑼𝑶𝑼𝑻 𝟐𝑵 𝑹𝑬𝑭𝒙 34 Sygnały pomocnicze w architekturze: 35 Złożenie ramki danych DAC LTC2624 Quad DAC - na pokładzie Spartan 3E Starter Board 36 DAC LTC2624 Quad DAC - maszyna stanów rst=’1’ IDLE CHECK index < ’32’ SEND 37 READY ADC LTC1407A-1 38 ADC LTC1407A-1 39 ADC LTC1407A-1 40 ADC LTC1407A-1 Wzmacniacz wejściowy LTC6912-1, kondycjonowanie sygnału Przetwornik ADC LTC 1407A-1 41 ADC LTC1407A-1 • ilość bitów N=14, tak więc 214 = 16384 poziomów kwantowania, • zakres przetwarzanych napięć ± 1,25 V (2,5 V), • rozdzielczość przetwarzania: 𝑹= 𝑼𝑰𝑵 𝟐, 𝟓 𝑽 = = 𝟏𝟓𝟑 𝝁𝑽 𝟐𝑵 𝟏𝟔𝟑𝟖𝟒 • Zakres przetwarzania w Spartan 3E Starter Board: 𝑼𝑰𝑵 − 𝟏, 𝟔𝟓𝑽 𝒌 = 𝑮𝑨𝑰𝑵 × × 𝟖𝟏𝟗𝟐 𝟏, 𝟐𝟓𝑽 wzmocnienie układu LTC6912 42 ADC LTC1407A-1 43 Przykładowe pytania 1. Zasada działania enkodera obrotowego 2. Metody eliminacji drgań styków 3. Na czym polega multipleksowanie wyświetlacze segmentowego 4. Przetworniki AC, CA – szybkość, rozdzielczość 5. Przykłady zastosowań przetworników AC, CA 6. Interfejs SPI – przykład maszyny stanów 7. W jaki sposób określane jest słowo cyfrowe przetworników AC, CA 44