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