projekty avt 5726 rysino · 2020. 1. 21. · układy fpga z rodziny max10 mają kilka . ciekawych...
TRANSCRIPT
54 ELEKTRONIKA PRAKTYCZNA 11/2019
PROJEKTY
Rysino
Minimalistyczna płytka ewalu-acyjna do prototypowania wła-snych projektów opartych na FPGA z rodziny Intel MAX10. Doskonale sprawdzi się jako baza do tworze-nia własnych konstrukcji bazują-cych na tym ciekawym układzie.
płytka ewaluacyjna z FPGA Intel MAX10
Dodatkowe materiały do pobrania ze strony www.media.avt.pl
W ofercie AVT* AVT-5726Podstawowe parametry:• zastosowany układ FPGA to 0M04SAE144C8Gz rodziny Intel MAX10,
• układ FPGA wyposażony w cztery tysiąceelementów logicznych LE,
• pamięć RAM o rozmiarze 189 Kb pamięci(w 21 blokach po 9 Kb),
• 1248 Kb pamięci Flash dzielonejpomiędzy bitstream oraz aplikacjęużytkownika,
• programowanie poprzez interfejs JTAGprzy użyciu, np. programatora USBBlaster,
• wbudowany konwerter USB-UART,• zasilanie poprzez złącze miniUSB.
Wykaz elementów:Rezystory:R1…R8, R13: 220 Ω SMD0603R9…R12, R14…R17: 10 kΩ SMD0603
Kondensatory:C1, C2: 10 mF SMD0405C3…C10: 100 nF SMD0603
Półprzewodniki:LED1…LED9: zielona SMD0603IC1: 10M04SAE144C8GIC2: FT230XSIC3: LF33CDTQG1: generator kwarcowy 8 MHz DIL08s
Pozostałe:USB: złącze mikroUSB SMDRST: uSwitchS1: dipSwitch poczwórnyJTAG: wtyk kątowy goldpin 2×5 ARDUINO: gniazda goldpin 6, 6, 8, 10 pinów
Projekty pokrewne na www.media.avt.pl:AVT-5574 Płytka ewaluacyjna dla STM32F2/F4/F7
do celów SDR i nie tylko (EP 2/2017)AVT-5529 Zestaw uruchomieniowy
z mikrokontrolerem ATXMega256A3U(EP 2/2016)
AVT-1875 Kieszonkowa płytka prototypowa(EP 8/2015)
AVT-1675 STM32duino – kompatybilna z Arduinopłytka z STM32F103C8T6 (EP 5/2012)
AVT-1620 Cortexino – Kompatybilna z Arduinopłytka z LPC1114 (EP 5/2011)
AVT-5288 Zestaw ewal. dla FPGA (EP 4/2011)AVT-1610 Minimoduł z ATTiny 2313 (EP 3/2011)AVT-5275 ZEPIC – Zestaw ewaluacyjny dla
mikrokontrolerów PIC (EP 2/2011)
* Uwaga! Elektroniczne zestawy do samodzielnego montażu.Wymagana umiejętność lutowania!Podstawową wersją zestawu jest wersja [B] nazywana potocznieKIT-em (z ang. zestaw). Zestaw w wersji [B] zawiera elementyelektroniczne (w tym [UK] – jeśli występuje w projekcie),które należy samodzielnie wlutować w dołączoną płytkędrukowaną (PCB). Wykaz elementów znajduje się w dokumentacji,która jest podlinkowana w opisie kitu.Mając na uwadze różne potrzeby naszych klientów, oferujemydodatkowe wersje: wersja [C] – zmontowany, uruchomiony i przetestowany zestaw[B] (elementy wlutowane w płytkę PCB)
wersja [A] – płytka drukowana bez elementów i dokumentacjiKity w których występuje układ scalony wymagającyzaprogramowania, mają następujące dodatkowe wersje: wersja [A+] – płytka drukowana [A] + zaprogramowany układ[UK] i dokumentacja
wersja [UK] – zaprogramowany układNie każdy zestaw AVT występuje we wszystkich wersjach! Każdawersja ma załączony ten sam plik pdf! Podczas składaniazamówienia upewnij się, którą wersję zamawiasz!http://sklep.avt.pl. W przypadku braku dostępnościna http://sklep.avt.pl, osoby zainteresowane zakupem płytekdrukowanych (PCB) prosimy o kontakt via e-mail: [email protected].
Napięcie jest obniżane do 3,3 V za pomocą stabilizatora LF33 (IC3). Dioda LED9 sygna-lizuje podłączenie zasilania, a kondensatory C1...C10 odpowiadają za jego filtrację.
Najważniejszą częścią projektu jest 10M04SAE144C8G – tak oznaczony jest układ FPGA z rodziny Intel MAX10 (IC1). Zastoso-wana wersja wyposażona jest w cztery tysiące elementów logicznych. Schemat pojedyn-czego LE pokazano na rysunku 2. Składa się z dwóch tablic LUT oraz jednego przerzut-nika D. Wartość z pierwszej, czterobitowej ta-blicy może być wyprowadzona na zewnątrz albo zatrzaśnięta w przerzutniku. Natomiast druga, trzybitowa pozwala na wyznacze-nie przeniesienia, które za pomocą szybkiej ścieżki jest połączone z sąsiednim LE.
Wewnątrz układu zawarta jest pamięć RAM o rozmiarze 189 Kb pamięci (w 21 blo-kach po 9 Kb) oraz 1248 Kb pamięci Flash dzielonej pomiędzy bitstream oraz aplikacją użytkownika. Dostępnych jest także 20 blo-ków mnożących 18-bitowe liczby oraz jeden przetwornik analogowo-cyfrowy.
Układy FPGA z rodziny MAX10 mają kilka ciekawych rozwiązań, rzadko występują-cych w innych podzespołach tego typu, które przekonują do stosowania tych układów we własnych projektach. Pierwszą zaletą jest zin-tegrowana nieulotna pamięć Flash. Pozwala nie tylko na przechowywanie konfiguracji, ale może być także dostępna dla aplikacji w cza-sie pracy układu. Drugim elementem uła-twiającym stosowanie układów MAX10 jest możliwość zasilania za pomocą tylko jednego napięcia 3,3 V. Równie istotną cechą jest do-stępność podzespołów w łatwej do montażu obudowie EQFP. Dzięki temu zaprojektowanie i wykonanie PCB jest znacznie łatwiejsze niż w przypadku podobnych układów w obudowie BGA. Układy są dostępne w wersjach zawie-rających od 2 do 50 tysięcy elementów logicz-nych (LE – logic element), zatem umożliwiają realizację dość zaawansowanych projektów.
BudowaSchemat układu pokazano na rysunku 1. Zasilanie jest dostarczone przez port USB.
AVT 5726
55ELEKTRONIKA PRAKTYCZNA 11/2019
Rysino – płytka ewaluacyjna z FPGA Intel MAX10
Rysunek 1. Schemat ideowy układu
Rysunek 2. Uproszczony schemat pojedynczego elementu logicznego (LE) w układzie MAX10
42
53
63
68
83
95
104
116
125
133
137
142
61
62
64
65
66
69
70
LE
D4
LE
D5
LE
D6
LE
D7
LE
D8
RX
DT
XD
IO_P
61_V
RE
FB
4N
OIO
_P
62
IO_P
64
IO_P
65
IO_P
66
IO_P
69
IO_P
70
IOB
AN
K_4
IOB
AN
K_3
38
39
41
43
44
45
46
47
48
50
52
54
55
56
57
58
59
60
LE
D1
LE
D2
LE
D3
IO_P
38
IO_P
39
IO_P
41
IO_P
43
IO_P
44
IO_P
45
IO_P
46
IO_P
47
IO_P
48_V
RE
FB
3N
0IO
_P
50
IO_P
52
IO_P
54
IO_P
55
IO_P
56
IO_P
57
IO_P
58
IO_P
59
IO_P
60
120
121
122
123
124
126
127
129
130
131
132
134
135
136
138
140
141
RS
T
IOB
AN
K_8
CO
NF
_S
EL
NC
ON
FIG
NS
TA
TU
SC
ON
F_D
ON
E
IO_P
120
IO_P
121_D
EV
_C
LR
NIO
_P
122_D
EV
_O
EIO
_P
123_V
RE
FB
8N
0IO
_P
124
IO_P
126_C
ON
F_S
EL
IO_P
127
IO_P
129_N
CO
NF
IGIO
_P
130
IO_P
131
IO_P
132
IO_P
134
IO_P
135
IO_P
136_N
STA
TU
SIO
_P
138_C
ON
F_D
ON
EIO
_P
140
IO_P
141
26
27
28
29
30
32
33
110
111
112
113
114
118
119
CLK
IO_P
26_C
LK
0N
IO_P
27_C
LK
0P
IO_P
28_C
LK
1N
IO_P
29_C
LK
1P
IO_P
30_V
RE
FB
2N
0IO
_P
32
IO_P
33
IOB
AN
K_2
IOB
AN
K_1B
15
16
17
18
19
20
21
22
24
25
JTA
GE
NT
MS
TC
KT
DI
TD
O
IO_P
15_JT
AG
EN
IO_P
16_T
MS
IO_P
17_V
RE
FB
1N
0IO
_P
18_T
CK
IO_P
19_T
DI
IO_P
20_T
DO
IO_P
21
IO_P
22
IO_P
24
IO_P
25
A0
A1
A2
A3
A4
A5
3 4 5 6 7 810 11 12
13
14
AN
AIN
1R
EF
GN
DA
DC
_V
RE
F
IO_P
6_A
DC
1IO
_P
7_A
DC
2IO
_P
8_A
DC
3IO
_P
10_A
DC
4IO
_P
11_A
DC
5IO
_P
12_A
DC
6IO
_P
13_A
DC
7IO
_P
14_A
DC
8
IOB
AN
K_1A
IO_P
74
IO_P
75
IO_P
76
IO_P
77
IO_P
78
IO_P
79
IO_P
80_V
RE
FB
5N
0IO
_P
81
IO_P
84
IO_P
85
IO_P
86
IO_P
87
IOB
AN
K_5
S4
S3
S2
S1
74
75
76
77
78
79
80
81
84
85
86
87
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
D15
88
89
90
91
92
93
96
97
98
99
100
101
102
105
106
IO_P
88_C
LK
2P
IO_P
89_C
LK
2N
IO_P
90_C
LK
3P
IO_P
91_C
LK
3N
IO_P
92
IO_P
93
IO_P
96
IO_P
97_V
RE
FB
6N
0IO
_P
98
IO_P
99
IO_P
100
IO_P
101
IO_P
102
IO_P
105
IO_P
106
IOB
AN
K_6
IOB
AN
K_7
IO_P
110
IO_P
111
IO_P
112_V
RE
FB
7N
0IO
_P
113
IO_P
114
IO_P
118
IO_P
119
VC
C_O
NE
_1
VC
C_O
NE
_2
VC
C_O
NE
_3
VC
C_O
NE
_4
VC
C_O
NE
_5
VC
C_O
NE
_6
VC
C_O
NE
_7
VC
C_O
NE
_8
VC
C_O
NE
_9
VC
C_O
NE
_10
VC
CA
1V
CC
A2
VC
CA
3V
CC
A4
VC
CA
5V
CC
A6
VC
CIO
1A
VC
CIO
1B
VC
CIO
2V
CC
IO3_1
VC
CIO
3_2
VC
CIO
4V
CC
IO5
VC
CIO
6_1
VC
CIO
6_2
VC
CIO
7V
CC
IO8_1
VC
CIO
8_2
GN
D_1
GN
D_2
GN
D_3
GN
D_4
GN
D_5
GN
D_6
GN
D_7
GN
D_8
GN
D_9
GN
D_10
GN
D_11
GN
D_12
GN
D_B
IC1
10M
04S
AE
144C
8G
145 G
ND
+3V
3
136
37
51
72
73
108
109
115
144
35
34
107
143
71 2 9
23
31
40
49
67
82
94
103
117
128
139
GN
DG
ND
GN
DG
ND
GN
DG
ND
GN
DG
ND
LED1
LED2
LED3
LED4
LED5
LED6
LED7
LED8
R1
220
R2
220
R3
220
R4
220
R5
220
R6
220
R7
220
R8
220
LED1
LED2
LED3
LED4
LED5
LED6
LED7
LED8
SCLSDAAREFGNDD13D12D11D10D9D8
D7D6D5D4D3D2D1D0
GN
D
D15D14
D13D12D11D10D9D8
D7D6D5D4D3D2
TXDRXD
RST +3V
3+
5V
A0A1A2A3A4A5
GN
D
/RESET3V5V
GND2GND1
VIN
A0A1A2A3
A4/SDAA5/SCL
AR
DU
INO
UN
O R
3
GN
DG
ND
GN
DG
ND
S1 S1-1 8
8
8
8
S1-2
S1-3
S1-4
S2
S3
S4
Weak p
ull-
up
+3V
3TCK
GN
D
R17
10k
R11
10k
R12
10k
R14
10k
R15
10k
R16
10k
JTAGEN
NCONFIG
CONF_DONE
CONF_SEL
TDI
TMS
AD
C o
n: B
ank
1a, 1b, 2, 8 o
ff4, 6 O
K3, 5, 7 r
est
rict
ions
– lo
w d
rive
str
enght
GN
D
+3V
3G
ND
GN
D
US
B
D+
D–
TX
D
D+
RX
D
3V
3
1 2 3 4 5 6 7 8
16
15
14
13
12
11 10
9D
–
C5
100n
IC2
FT
230X
S-R
TX
DR
TS
#V
CC
IOR
XD
GN
D_1
CT
S#
CB
US
2U
SB
DP
+5V +
5V
1 34
IC3
LF
33C
DT
GN
D
VB
US
D+
D– ID
GN
D
CB
US
3C
BU
S0
CB
US
1G
ND
_2
VC
CR
ES
ET
#3V
3O
UT
US
BD
M
INP
UT
OU
TP
UT
GN
D_(T
HE
RM
ALP
AD
)
+3V
3
GN
D
GN
D+
3V
3
++
C1
10u
C3
100n
C2
10u
C10
100n
C9
100n
C8
100n
C7
100n
C6
100n
C4
100n
GN
DG
ND
GN
D
+3V
3
+3V
3
+3V
3
R13
220
R9
10k
RS
T
JTA
G
TC
KT
DO
TM
S
TD
I
1 3 5 7 9
2 4 6 8 10
LE
D9
RST
12
34
8 4
VC
C
GN
DO
UT
5C
LK
8 M
Hz
QG
1
+3V
3
GN
D
+5V
A B CLUT
DQ
CLK
REG
COMB
Cin
A B C D
Cout
A B C D
LUT
Programowanie jest moż-liwe poprzez interfejs JTAG wyprowadzony na złączu goldpin. Do programowania można użyć programatora USB Blaster. Rezystory R10...R12 i R14...R17 ustalają odpo-wiednie stany na wejściach konfiguracyjnych. Więcej na ten temat można się do-wiedzieć z dokumentacji [1], natomiast pełną bazę wiedzy znajdziemy na stronie [2].
Poza u k ładem F P GA na płytce znajduje się kilka podstawowych peryferiów ułatwiających rozpoczę-cie własnych eksperymen-tów. Generator kwarcowy QG1 dostarcza stabilny sy-gnał zegarowy o częstotli-wości 8 MHz, który może być użyty do taktowania układu, bądź jako referencja dla wewnętrznej pętli PLL. Diody LED1...LED8 oraz przełącznik dip switch S1 są podłączone bezpośred-nio do FPGA. Piny obsługu-jące włączniki muszą mieć włączony wewnętrzny rezy-stor podciągający do plusa zasilania. Część pinów zo-stała także wyprowadzona na złącze zgodne z Arduino. Należy jednak pamiętać, że maksymalne napięcie, ja-kie można na nie doprowa-dzić, to 3,3 V.
Z łącza A0...A5 mogą służyć jako wejścia dla przetwornika ADC. Jego włączenie powoduje ogra-niczenia przy korzystaniu z niektórych portów wejścia/
56 ELEKTRONIKA PRAKTYCZNA 11/2019
Rysunek 3. Schemat montażowy
Rysunek 5. Numery pinów układu FPGA pod-łączonych do poszczególnych peryferiów
RST 1213V5VGNDGND5V
A0 6A1 7A2 8A3 10A4 11A5 12
105 D15102 D14
NCGND
101 D13100 D12
99 D1198 D1097 D996 D8
93 D792 D691 D590 D489 D388 D270 D169 D0
LED 1 ... 858 59 60 61 62 64 65 66
RST
121
JTA
G
FT230Tx Rx
70 69
S 1...477 76 75 74
CLK 278 MHz
wyjścia. Bloki 1a, 1b, 2 i 8 są wtedy niedo-stępne, natomiast liczba pinów z bloków 3, 5 i 7 jest ograniczona. Konfiguracja ADC nie ma wpływu jedynie na bloki 4 i 6.
Przycisk RST jest podłączony do wejścia DEV_CLRn. Domyślnie pracuje ono jako normalny pin, jednak ma także specjalną opcję. Jeżeli włączymy tryb device wide reset, to stan niski na nim spowoduje reset wszyst-kich przerzutników. Dzięki układowi FT230 (IC2) port USB nie służy tylko do zasilania, ale umożliwia także komunikację poprzez port szeregowy. Linie Tx i Rx są podłączone bezpośrednio do MAX10.
Schemat płytki jest także dostępny na li-cencji BSD i można go pobrać z repozyto-rium [3].
Montaż i uruchomienieProjekt dwustronnej płytki drukowanej po-kazano na rysunku 3, a zdjęcie gotowego układu prezentuje fotografia tytułowa. Montaż warto rozpocząć od fragmentu od-powiedzialnego za zasilanie. Najpierw lutu-jemy złącze USB, stabilizator, kondensatory C1...C4 oraz diodę LED9 i opornik R13.
znajduje się w pliku board_test/board_test.sof. W demonstracyjnym bitstreamie cztery diody są sterowane za pomocą przełączni-ków. Pozostałe zostały podłączone do wyjść licznika binarnego. Linie Tx i Rx portu sze-regowego zostały „zwarte” wewnątrz układu FPGA, powodując powstanie „echa”. Ozna-cza to, że jeśli otworzymy port com za po-mocą programu PuTTY, w konsoli powinien pojawiać się dokładnie taki sam tekst, jaki wpisujemy na klawiaturze.
Układ jest gotowy do pracy. Aby stabilniej stał na stole, do spodniej strony PCB można dokleić gumowe nóżki.
Podczas uruchamiania własnych pro-jektów pomocna może okazać się rozpiska numerów pinów podłączonych do różnych peryferiów pokazana na rysunku 5.
Rafał [email protected]
Bibliografia[1] Intel® MAX® 10 FPGA Device Family
Pin ConnectionGuidelines,https://intel.ly/2NemCeS
[2] https://intel.ly/2JoQqEw[3] http://bit.ly/33Xec2e
Rysunek 4. Wybór typu układu podczas wykrywania urządzenia
Po sprawdzeniu, czy nie występują zwarcia, podłączamy kabel USB. Powinna zaświecić się dioda. Woltomierzem sprawdzamy, czy napięcie na wyjściu stabilizatora jest równe 3,3 V.
Następnie przechodzimy do układu IC2. Po sprawdzeniu poprawności jego mon-tażu podłączamy układ do komputera PC. System operacyjny powinien wykryć kon-werter FT230. Teraz możemy przystąpić do lutowania układu FPGA i pozostałych komponentów. Po końcowym sprawdzeniu połączeń za pomocą testera zwarć podłą-czamy zasilanie.
Teraz potrzebny będzie programator USB Blaster, należy dołączyć go do płytki. Można go nabyć na popularnych serwisach aukcyj-nych: zarówno polskich, jak i zagranicznych. Po wybraniu opcji Auto Detect w programie Quartus Prime Programmer układ powinien zostać wykryty. W oknie dialogowym (rysu-nek 4) wybieramy opcję 10M04SA. Do prze-testowania płytki można wykorzystać przykładowy projekt znajdujący się także w repozytorium [3]. Wygenerowany wsad
PROJEKTY
R E K L A M A
http
://bit
.ly/2
GaDw
tQ
Wstąp do Klubu AVT Elektronikabędziesz miał prawo do korzystania z szeregu przywilejów:
• do 50% zniżki w Sklepie AVT
• darmowe prenumeraty Wydawnictwa AVT
• do 50% zniżki w Ulubionym Kiosku
• Zapraszamy do zapoznania się z zasadami Klubu!