Rev 1954 Rev 2338
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 <html> 2 <html>
3 <head> 3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <title> S3AN01A </title> 5 <title> S3AN01A </title>
6 <meta name="keywords" content="stavebnice MLAB univerzální moduly FPGA XILINX Spartan3"> 6 <meta name="keywords" content="stavebnice MLAB univerzální moduly FPGA XILINX Spartan3">
7 <meta name="description" content="Projekt MLAB, školní vývojová deska pro práci s obvody FPGA XILINX Spartan3"> 7 <meta name="description" content="Projekt MLAB, školní vývojová deska pro práci s obvody FPGA XILINX Spartan3">
8 <!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE --> 8 <!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
9 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl"> 9 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
10 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print"> 10 <link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
11 <link rel="shortcut icon" type="image/x-icon" href="../../Web/PIC/MLAB.ico"> 11 <link rel="shortcut icon" type="image/x-icon" href="../../Web/PIC/MLAB.ico">
12 <script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script> 12 <script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script>
13 <!-- AUTOINCLUDE END --> 13 <!-- AUTOINCLUDE END -->
14 </head> 14 </head>
15   15  
16 <body lang="cs"> 16 <body lang="cs">
17   17  
18 <!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE --> 18 <!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
19 <!-- ============== HLAVICKA ============== --> 19 <!-- ============== HLAVICKA ============== -->
20 <div class="Header"> 20 <div class="Header">
21 <script type="text/javascript"> 21 <script type="text/javascript">
22 <!-- 22 <!--
23 SetRelativePath("../../../../../"); 23 SetRelativePath("../../../../../");
24 DrawHeader(); 24 DrawHeader();
25 // --> 25 // -->
26 </script> 26 </script>
27 <noscript> 27 <noscript>
28 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> 28 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
29 </noscript> 29 </noscript>
30 </div> 30 </div>
31 <!-- AUTOINCLUDE END --> 31 <!-- AUTOINCLUDE END -->
32   32  
33 <!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE --> 33 <!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
34 <!-- ============== MENU ============== --> 34 <!-- ============== MENU ============== -->
35 <div class="Menu"> 35 <div class="Menu">
36 <script type="text/javascript"> 36 <script type="text/javascript">
37 <!-- 37 <!--
38 SetRelativePath("../../../../../"); 38 SetRelativePath("../../../../../");
39 DrawMenu(); 39 DrawMenu();
40 // --> 40 // -->
41 </script> 41 </script>
42 <noscript> 42 <noscript>
43 <p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p> 43 <p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
44 </noscript> 44 </noscript>
45 </div> 45 </div>
46 <!-- AUTOINCLUDE END --> 46 <!-- AUTOINCLUDE END -->
47   47  
48 <!-- ============== TEXT ============== --> 48 <!-- ============== TEXT ============== -->
49 <div class="Text"> 49 <div class="Text">
50 <p class="Title"> 50 <p class="Title">
51 Školní deska s FPGA XILINX Spartan 3AN 51 Školní deska s FPGA XILINX Spartan 3AN
52 </p> 52 </p>
53 <p class=Autor> 53 <p class=Autor>
54 Milan Horkel 54 Milan Horkel
55 </p> 55 </p>
56 <p class="Subtitle"> 56 <p class="Subtitle">
57 Školní deska vznikla protože jsem se nechal přesvědčit kluky na radiotechnickém kroužku, že 57 Školní deska vznikla protože jsem se nechal přesvědčit kluky na radiotechnickém kroužku, že
58 by je zajímalo jak fungují obvody FPGA a že by si rádi zkusili něco s nimi udělat. Tento 58 by je zajímalo jak fungují obvody FPGA a že by si rádi zkusili něco s nimi udělat. Tento
59 dokument ale nepopisuje desku,  spíše ukazuje, že i taková deska se dá vyrobit podomácku. 59 dokument ale nepopisuje desku,  spíše ukazuje, že i taková deska se dá vyrobit podomácku.
60 Skutečnou dokumentaci naleznete u verze S3AN01B, která se od této liší jen minimálně. 60 Skutečnou dokumentaci naleznete u verze S3AN01B, která se od této liší jen minimálně.
61 </p> 61 </p>
62   62  
63 <p class="Subtitle"> 63 <p class="Subtitle">
64 <img width="401" height="441" src="S3AN01A_files/image001.jpg" alt="Image"> 64 <img width="401" height="441" src="S3AN01A_files/image001.jpg" alt="Image">
65 </p> 65 </p>
66   66  
67 <p> 67 <p>
68 <a href="../S3AN01A.cs.pdf"><img class="NoBorder" 68 <a href="../S3AN01A.cs.pdf"><img class="NoBorder"
69 src="../../Web/PIC/FileIco_PDF.ico" 69 src="../../../../../Web/PIC/FileIco_PDF.ico"
70 alt="Acrobat">&nbsp;PDF verze</a> 70 alt="Acrobat">&nbsp;PDF verze</a>
71 </p> 71 </p>
72 72
73 <h1> Technické parametry </h1> 73 <h1> Technické parametry </h1>
74 <table> 74 <table>
75 <tr> 75 <tr>
76 <td> Parametr </td> 76 <td> Parametr </td>
77 <td> Hodnota </td> 77 <td> Hodnota </td>
78 <td> Poznámka </td> 78 <td> Poznámka </td>
79 </tr> 79 </tr>
80 <tr> 80 <tr>
81 <td> Použitý obvod FPGA </td> 81 <td> Použitý obvod FPGA </td>
82 <td> XILINX Spartan3 XC3S50AN </td> 82 <td> XILINX Spartan3 XC3S50AN </td>
83 <td> &nbsp; </td> 83 <td> &nbsp; </td>
84 </tr> 84 </tr>
85 <tr> 85 <tr>
86 <td> Náhrada </td> 86 <td> Náhrada </td>
87 <td> Deska S3AN01B </td> 87 <td> Deska S3AN01B </td>
88 <td> &nbsp; </td> 88 <td> &nbsp; </td>
89 </tr> 89 </tr>
90 </table> 90 </table>
91   91  
92 <h1> Popis konstrukce </h1> 92 <h1> Popis konstrukce </h1>
93   93  
94 <h2> Úvodem </h2> 94 <h2> Úvodem </h2>
95   95  
96 <p> 96 <p>
97 Jak jsem psal v úvodu, motivace byla jednoznačná. Postavit dostatečně 97 Jak jsem psal v úvodu, motivace byla jednoznačná. Postavit dostatečně
98 jednoduchou školní vývojovou desku s obvodem programovatelné logiky. 98 jednoduchou školní vývojovou desku s obvodem programovatelné logiky.
99 Původně jsem uvažoval o obvodu CPLD, ale ukázalo se, že obvod FPGA se dá 99 Původně jsem uvažoval o obvodu CPLD, ale ukázalo se, že obvod FPGA se dá
100 koupit za velmi podobnou cenu a přitom přináší nesrovnatelně bohatší 100 koupit za velmi podobnou cenu a přitom přináší nesrovnatelně bohatší
101 možnosti. 101 možnosti.
102 </p> 102 </p>
103   103  
104 <p> 104 <p>
105 Protože jsem od přírody skeptik, rozhodl jsem se nejdříve realizovat 105 Protože jsem od přírody skeptik, rozhodl jsem se nejdříve realizovat
106 prototyp podomácku. Jen tak pro případ, že bych udělal nějakou chybu 106 prototyp podomácku. Jen tak pro případ, že bych udělal nějakou chybu
107 v návrhu. Přeci jenom objednání plošných spojů není úplně zdarma. 107 v návrhu. Přeci jenom objednání plošných spojů není úplně zdarma.
108 A ukázalo se, že se to vyplatilo. Jak člověk dělá konstrukci po kouskách 108 A ukázalo se, že se to vyplatilo. Jak člověk dělá konstrukci po kouskách
109 po večerech, skoro jako televizní seriál, přehlédne snadno spoustu 109 po večerech, skoro jako televizní seriál, přehlédne snadno spoustu
110 drobností. Až se sám diví. 110 drobností. Až se sám diví.
111 </p> 111 </p>
112   112  
113 <p> 113 <p>
114 Takže jaké chyby se objevily? Tyhle: 114 Takže jaké chyby se objevily? Tyhle:
115 </p> 115 </p>
116   116  
117 <ul> 117 <ul>
118 <li> Chyběly odpory v sérii s LED displejem, né že by displej nesvítil… </li> 118 <li> Chyběly odpory v sérii s LED displejem, né že by displej nesvítil… </li>
119 <li> Přehlédl jsem, že některé nožičky jsou jen vstupní, ty pak neumí budit LED… </li> 119 <li> Přehlédl jsem, že některé nožičky jsou jen vstupní, ty pak neumí budit LED… </li>
120 </ul> 120 </ul>
121   121  
122 <p> 122 <p>
123 První chyba, je skoro nepochopitelná. Normálně bych jí neudělal, ale 123 První chyba, je skoro nepochopitelná. Normálně bych jí neudělal, ale
124 protože jsem schéma kreslil na pokračování, snadno jsem zapomněl, že 124 protože jsem schéma kreslil na pokračování, snadno jsem zapomněl, že
125 odpory nejsou ani stránce schématu s obvodem FPGA, ani na stránce 125 odpory nejsou ani stránce schématu s obvodem FPGA, ani na stránce
126 schématu s LED displejem. 126 schématu s LED displejem.
127 </p> 127 </p>
128   128  
129 <p> 129 <p>
130 Druhá chyba je taková hloupá. Je trochu nepochopitelné, proč u tak 130 Druhá chyba je taková hloupá. Je trochu nepochopitelné, proč u tak
131 komplexní součástky je několik nožiček (asi 6) jen vstupních. 131 komplexní součástky je několik nožiček (asi 6) jen vstupních.
132 </p> 132 </p>
133   133  
134 <h2> Návrh desky </h2> 134 <h2> Návrh desky </h2>
135   135  
136 <p> 136 <p>
137 Základem je chytrý návrh desky. Součástka je dost rychlá (stovky MHz) a 137 Základem je chytrý návrh desky. Součástka je dost rychlá (stovky MHz) a
138 tomu musí odpovídat kvalita zemní plochy a rozvod napájení. Protože 138 tomu musí odpovídat kvalita zemní plochy a rozvod napájení. Protože
139 design je dost složitý, nelze vystačit s jednou stranou spojů a jednou 139 design je dost složitý, nelze vystačit s jednou stranou spojů a jednou
140 stranou zemní plochy. Snahou bylo navrhnout desku tak, aby zemní plocha 140 stranou zemní plochy. Snahou bylo navrhnout desku tak, aby zemní plocha
141 byla nezbytnými spoji narušena co nejméně. I na straně zemní plochy musí 141 byla nezbytnými spoji narušena co nejméně. I na straně zemní plochy musí
142 být pár spojů. 142 být pár spojů.
143 </p> 143 </p>
144   144  
145 <p> 145 <p>
146 Profesionální deska bude tedy klasická dvoustranná se spoji na jedné 146 Profesionální deska bude tedy klasická dvoustranná se spoji na jedné
147 straně a se zemní plochou a několika spoji na straně druhé. 147 straně a se zemní plochou a několika spoji na straně druhé.
148 </p> 148 </p>
149   149  
150 <p> 150 <p>
151 <img width="286" height="227" src="S3AN01A_files/image002.jpg" 151 <img width="286" height="227" src="S3AN01A_files/image002.jpg"
152 alt="Image"> 152 alt="Image">
153 <img width="283" height="227" src="S3AN01A_files/image003.jpg" 153 <img width="283" height="227" src="S3AN01A_files/image003.jpg"
154 alt="Image"> 154 alt="Image">
155 </p> 155 </p>
156   156  
157 <p> 157 <p>
158 Obrázek vlevo ukazuje detail rozvodu napájení pro obvod FPGA. Jsou tam 158 Obrázek vlevo ukazuje detail rozvodu napájení pro obvod FPGA. Jsou tam
159 pěkně vidět prokovy a propojky. Velká plocha uprostřed je plocha 159 pěkně vidět prokovy a propojky. Velká plocha uprostřed je plocha
160 napájecího napětí +1.2V pro jádro obvodu a tlustý vodič okolo plochy je 160 napájecího napětí +1.2V pro jádro obvodu a tlustý vodič okolo plochy je
161 +3.3V pro napájení IO vývodů. Blokování zajišťují kondenzátory vně 161 +3.3V pro napájení IO vývodů. Blokování zajišťují kondenzátory vně
162 obvodu FPGA zapojené do zemní ploch pomocí prokovů. Obrázek vpravo 162 obvodu FPGA zapojené do zemní ploch pomocí prokovů. Obrázek vpravo
163 ukazuje celý motiv zemní strany včetně rozlité zemní plochy. 163 ukazuje celý motiv zemní strany včetně rozlité zemní plochy.
164 </p> 164 </p>
165   165  
166 <h2> Amatérská výroba desky </h2> 166 <h2> Amatérská výroba desky </h2>
167   167  
168 <p> 168 <p>
169 Pro amatérskou výrobu si život usnadníme tím, že strana součástek bude 169 Pro amatérskou výrobu si život usnadníme tím, že strana součástek bude
170 celá měděná (zemní plocha přes celou desku) a chybějící spoje 170 celá měděná (zemní plocha přes celou desku) a chybějící spoje
171 realizujeme propojkami. Prokovy realizujeme drátovými spoji pájenými z 171 realizujeme propojkami. Prokovy realizujeme drátovými spoji pájenými z
172 obou stran desky. To je běžné. 172 obou stran desky. To je běžné.
173 </p> 173 </p>
174   174  
175 <p> 175 <p>
176 Chybějící spoje nahradíme drátovými propojkami. Pokud na desku nalepíme 176 Chybějící spoje nahradíme drátovými propojkami. Pokud na desku nalepíme
177 na samolepce vytištěný „potisk“, zabijeme tím dvě mouchy najednou. 177 na samolepce vytištěný „potisk“, zabijeme tím dvě mouchy najednou.
178 Nebudeme muset při používání desky koukat do dokumentace a propojky 178 Nebudeme muset při používání desky koukat do dokumentace a propojky
179 můžeme udělat z pocínovaného drátu. <i>Jen nesmíme zapomenou vrtákem 179 můžeme udělat z pocínovaného drátu. <i>Jen nesmíme zapomenou vrtákem
180 odvrtat okraje zemní plochy kolem otvorů, které nemají být uzemněné.</i> 180 odvrtat okraje zemní plochy kolem otvorů, které nemají být uzemněné.</i>
181 Spoje od prokovů na straně součástí děláme co nejplacatější aby nevadily 181 Spoje od prokovů na straně součástí děláme co nejplacatější aby nevadily
182 pod samolepkou. 182 pod samolepkou.
183 </p> 183 </p>
184   184  
185 <p> 185 <p>
186 <img width="197" height="201" src="S3AN01A_files/image004.jpg" 186 <img width="197" height="201" src="S3AN01A_files/image004.jpg"
187 alt="Image"> 187 alt="Image">
188 </p> 188 </p>
189   189  
190 <p> 190 <p>
191 Problém je co se spoji pod obvodem FPGA? Obvod je velmi placatý a pod 191 Problém je co se spoji pod obvodem FPGA? Obvod je velmi placatý a pod
192 břichem má opravdu velmi málo místa. Tak asi 50um. 192 břichem má opravdu velmi málo místa. Tak asi 50um.
193 </p> 193 </p>
194   194  
195 <p> 195 <p>
196 <img width="192" height="69" src="S3AN01A_files/image005.jpg" 196 <img width="192" height="69" src="S3AN01A_files/image005.jpg"
197 alt="Image"> 197 alt="Image">
198 </p> 198 </p>
199   199  
200 <h2> 50um, co s tím? </h2> 200 <h2> 50um, co s tím? </h2>
201   201  
202 <p> 202 <p>
203 Jde to kupodivu snadno. Vezmeme dobrou vrtačku a upneme do ní malou 203 Jde to kupodivu snadno. Vezmeme dobrou vrtačku a upneme do ní malou
204 frézu o průměru 2-3mm. Naštelujeme si doraz tak, abychom neodfrézovali 204 frézu o průměru 2-3mm. Naštelujeme si doraz tak, abychom neodfrézovali
205 měď, ale jen nadbytečný cín. 205 měď, ale jen nadbytečný cín.
206 </p> 206 </p>
207   207  
208 <p> 208 <p>
209 <img width="166" height="227" src="S3AN01A_files/image006.jpg" 209 <img width="166" height="227" src="S3AN01A_files/image006.jpg"
210 alt="Image"> 210 alt="Image">
211 <img width="256" height="227" src="S3AN01A_files/image007.jpg" 211 <img width="256" height="227" src="S3AN01A_files/image007.jpg"
212 alt="Image"> 212 alt="Image">
213 </p> 213 </p>
214   214  
215 <p> 215 <p>
216 Po dokončení ozkoušíme, jestli přeci jen spoje pod obvodem FPGA 216 Po dokončení ozkoušíme, jestli přeci jen spoje pod obvodem FPGA
217 nepřečuhují a jestli se obvod neviklá a když je vše v pořádku pustíme se 217 nepřečuhují a jestli se obvod neviklá a když je vše v pořádku pustíme se
218 do osazování. 218 do osazování.
219 </p> 219 </p>
220   220  
221 <h1> Osazení a oživení </h1> 221 <h1> Osazení a oživení </h1>
222   222  
223 <p> 223 <p>
224 Aby deska mohla fungovat, je třeba udělat tyto opravy. 224 Aby deska mohla fungovat, je třeba udělat tyto opravy.
225 </p> 225 </p>
226   226  
227 <h2> Oprava chyb </h2> 227 <h2> Oprava chyb </h2>
228   228  
229 <p> 229 <p>
230 Doplníme 2 drátové spoje dle obrázku. Tím se připojí LED displej chybně 230 Doplníme 2 drátové spoje dle obrázku. Tím se připojí LED displej chybně
231 připojený na vývody FPGA, které jsou jen vstupní na vývody, které jsou i 231 připojený na vývody FPGA, které jsou jen vstupní na vývody, které jsou i
232 výstupní. 232 výstupní.
233 </p> 233 </p>
234   234  
235 <p> 235 <p>
236 <img width="256" height="173" src="S3AN01A_files/image008.jpg" 236 <img width="256" height="173" src="S3AN01A_files/image008.jpg"
237 alt="Image"> 237 alt="Image">
238 </p> 238 </p>
239   239  
240 <p> 240 <p>
241 Tyto použité vývody patřily rozhraní PS/2 a proto je třeba jejich 241 Tyto použité vývody patřily rozhraní PS/2 a proto je třeba jejich
242 spojení s PS/2 rozraním přerušit. Přiškrábneme dva spoje na obrázku 242 spojení s PS/2 rozraním přerušit. Přiškrábneme dva spoje na obrázku
243 vpravo od odporů 4k7. Aby mohlo PS/2 rozhraní fungovat doplníme 2 nové 243 vpravo od odporů 4k7. Aby mohlo PS/2 rozhraní fungovat doplníme 2 nové
244 spoje směrem dolu na dosud nevyužité vývody (testovací body). 244 spoje směrem dolu na dosud nevyužité vývody (testovací body).
245 </p> 245 </p>
246   246  
247 <p> 247 <p>
248 <img width="255" height="302" src="S3AN01A_files/image009.jpg" 248 <img width="255" height="302" src="S3AN01A_files/image009.jpg"
249 alt="Image"> 249 alt="Image">
250 <img width="243" height="302" src="S3AN01A_files/image010.jpg" 250 <img width="243" height="302" src="S3AN01A_files/image010.jpg"
251 alt="Image"> 251 alt="Image">
252 </p> 252 </p>
253   253  
254 <p> 254 <p>
255 Po dokončení těchto úprav získáme desku, která je kompatibilní s 255 Po dokončení těchto úprav získáme desku, která je kompatibilní s
256 aktualizovanou deskou S3AN01B. 256 aktualizovanou deskou S3AN01B.
257 </p> 257 </p>
258   258  
259 </div> 259 </div>
260   260  
261 <!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE --> 261 <!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
262 <!-- ============== PATIČKA ============== --> 262 <!-- ============== PATIČKA ============== -->
263 <div class="Footer"> 263 <div class="Footer">
264 <script type="text/javascript"> 264 <script type="text/javascript">
265 <!-- 265 <!--
266 SetRelativePath("../../../../../"); 266 SetRelativePath("../../../../../");
267 DrawFooter(); 267 DrawFooter();
268 // --> 268 // -->
269 </script> 269 </script>
270 <noscript> 270 <noscript>
271 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> 271 <p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
272 </noscript> 272 </noscript>
273 </div> 273 </div>
274 <!-- AUTOINCLUDE END --> 274 <!-- AUTOINCLUDE END -->
275   275  
276 </body> 276 </body>
277 </html> 277 </html>