Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Podłącz swoją płytkę rozwojową Mojo do zewnętrznych wejść za pomocą tej osłony.
Czym jest tablica rozwojowa Mojo?
Płytka rozwojowa Mojo to płytka rozwojowa oparta na układzie FPGA Xilinx spartan 3. Płytę wykonała firma Alchitry. Układy FPGA są bardzo przydatne, gdy wiele procesów musi być wykonywanych jednocześnie.
Czego będziesz potrzebować?
Kieszonkowe dzieci
Płytka rozwojowa Mojo
Plik Gerbera
Rezystory 8 x 15 kΩ (opcjonalnie*)
Rezystory 4 x 470 omów
Rezystory 4 x 560 omów
4 x 7-segmentowe wyświetlacze CC
4x3mm diody LED
4 x przełączniki dotykowe SPDT
1 x 4-pozycyjny przełącznik DIP do montażu powierzchniowego
2 x 25 na 2 lub 4 x 25 nagłówków
1x2 na 5 pinów w pudełku!
Lutownica
Lutować
Strumień
*(jeśli te rezystory zostaną pominięte, wewnętrzne pullup/pulldown musi być włączone dla odpowiednich pinów)
Krok 1: Prześlij Gerbera do wybranego producenta PCB
Do moich płyt zamówiłem z JLC PCB.
Jedyną zmianą, jaką wprowadziłem, był kolor, który chciałem dopasować do czerni Mojo.
Krok 2: Montaż płyty
Podczas lutowania zawsze przydaje się lutowanie najpierw najniższych części, więc dobrym pomysłem jest rozpoczęcie od rezystorów.
R5, R6, R7, R8, R9, R10, R11 i R12 to rezystory 15 kΩ używane do ściągania przełączników (jeśli używasz wewnętrznego pullup/pulldown, zignoruj to).
R1, R2, R3, R4 to rezystory 560 omów, które odpowiadają za ograniczenie prądu przez 7-segmentowy wyświetlacz.
R13, R14, R15, R16 to rezystory 470 omów, które są odpowiedzialne za ograniczenie prądu przez 4 diody LED.
Następnie w takiej kolejności przylutuj przełącznik dip, przełączniki dotykowe, diody LED, wyświetlacze siedmiosegmentowe i złącze nagłówka skrzynki.
Teraz umieść 25 na 2 (lub 2 25 na 1) w mojo, aby wyrównać szpilki. Dopasuj osłonę do kołków i przylutuj ją na miejscu.
Krok 3: Konfiguracja oprogramowania
Oprogramowanie odwołujące się do strony internetowej Alchitry poinformuje Cię, czego potrzebujesz, aby rozpocząć i zainstalować Xilinx ISE. Jednak zmiana pliku.ucf, aby wiedział, które piny są podłączone do tego, co jest ważne, aby Twój program działał.
Oto plik.ucf, którego używam z tarczą:
KONFIG VCCAUX=3,3;
NET "clk" TNM_NET = clk; TIMESPEC TS_clk = OKRES "clk" 50 MHz WYSOKI 50%; NET „clk” LOC = P56 | IOSTANDARD = LVTTL; LOC NET „rst_n” = P38 | IOSTANDARD = LVTTL; LOC „cclk” NETTO = P70 | IOSTANDARD = LVTTL; NET „spi_mosi” LOC = P44 | IOSTANDARD = LVTTL; NET „spi_miso” LOC = P45 | IOSTANDARD = LVTTL; NET „spi_ss” LOC = P48 | IOSTANDARD = LVTTL; NET „spi_sck” LOC = P43 | IOSTANDARD = LVTTL; LOC „kanał_spi” NET = P46 | IOSTANDARD = LVTTL; LOC „kanał_spi” NET = P61 | IOSTANDARD = LVTTL; LOC „kanał_spi” NET = P62 | IOSTANDARD = LVTTL; LOC „kanał_spi” NET = P65 | IOSTANDARD = LVTTL; NET „avr_tx” LOC = P55 | IOSTANDARD = LVTTL; NET "avr_rx" LOC = P59 | IOSTANDARD = LVTTL; NET „avr_rx_busy” LOC = P39 | IOSTANDARD = LVTTL; NET „Q[0]” LOC = P26 | IOSTANDARD = LVTTL; NET „Q[1]” LOC = P23 | IOSTANDARD = LVTTL; NET „Q[2]” LOC = P21 | IOSTANDARD = LVTTL; NET „Q[3]” LOC = P16 | IOSTANDARD = LVTTL; NET „S[0]” LOC = P7 | IOSTANDARD = LVTTL; NET „S[1]” LOC = P9 | IOSTANDARD = LVTTL; NET "S[2]" LOC = P11 | IOSTANDARD = LVTTL; NET „S[3]” LOC = P14 | IOSTANDARD = LVTTL; NETTO „pb[1]” LOC = P30 | IOSTANDARD = LVTTL; NET „pb[2]” LOC = P27 | IOSTANDARD = LVTTL; NET „pb[3]” LOC = P24 | IOSTANDARD = LVTTL; NET „pb[4]” LOC = P22 | IOSTANDARD = LVTTL; NET „sevsega[0]” LOC = P57 | IOSTANDARD = LVTTL; NET „sevsegb[0]” LOC = P58 | IOSTANDARD = LVTTL; NET „sevsegc[0]” LOC = P66 | IOSTANDARD = LVTTL; NET „sevsegd[0]” LOC = P67 | IOSTANDARD = LVTTL; NET „sevsege[0]” LOC = P74 | IOSTANDARD = LVTTL; NET „sevsegf[0]” LOC = P75 | IOSTANDARD = LVTTL; NET „sevsegg[0]” LOC = P78 | IOSTANDARD = LVTTL; NET „sevsegdp[0]” LOC = P80 | IOSTANDARD = LVTTL; NET „sevsega[1]” LOC = P82 | IOSTANDARD = LVTTL; NET „sevsegb[1]” LOC = P83 | IOSTANDARD = LVTTL; NET „sevsegc[1]” LOC = P84 | IOSTANDARD = LVTTL; NET „sevsegd[1]” LOC = P85 | IOSTANDARD = LVTTL; NET „sevsege[1]” LOC = P87 | IOSTANDARD = LVTTL; NET „sevsegf[1]” LOC = P88 | IOSTANDARD = LVTTL; NET „sevsegg[1]” LOC = P92 | IOSTANDARD = LVTTL; NET „sevsegdp[1]” LOC = P94 | IOSTANDARD = LVTTL; NET „sevsega[2]” LOC = P97 | IOSTANDARD = LVTTL; NET „sevsegb[2]” LOC = P98 | IOSTANDARD = LVTTL; NET „sevsegc[2]” LOC = P99 | IOSTANDARD = LVTTL; NET „sevsegd[2]” LOC = P100 | IOSTANDARD = LVTTL; NET „sevsege[2]” LOC = P101 | IOSTANDARD = LVTTL; NET „sevsegf[2]” LOC = P102 | IOSTANDARD = LVTTL; NET „sevsegg[2]” LOC = P104 | IOSTANDARD = LVTTL; NET „sevsegdp[2]” LOC = P111 | IOSTANDARD = LVTTL; NET „sevsega[3]” LOC = P114 | IOSTANDARD = LVTTL; NET „sevsegb[3]” LOC = P115 | IOSTANDARD = LVTTL; NET „sevsegc[3]” LOC = P116 | IOSTANDARD = LVTTL; NET „sevsegd[3]” LOC = P117 | IOSTANDARD = LVTTL; NET „sevsege[3]” LOC = P118 | IOSTANDARD = LVTTL; NET „sevsegf[3]” LOC = P119 | IOSTANDARD = LVTTL; NET „sevsegg[3]” LOC = P1120 | IOSTANDARD = LVTTL; NET „sevsegdp[3]” LOC = P121 | IOSTANDARD = LVTTL;
Pamiętaj, jeśli nie zainstalowałeś rezystorów pulldown do edycji pinów w.ucf za pomocą
| ROZBIERAĆ, OPUSZCZAĆ; o
| PODCIĄGNIĘCIE;
Jeśli chcesz użyć bloku do czegokolwiek, połączenia są następujące. Lewy to numer pinu bloku, a prawy to numer pinu mojo, który należy przypisać w pliku.ucf:
pin 1 = 29
pin 2 = 51
pin 3 = 32
pin 4 = 41
pin 5 = 34
pin 6 = 35
pin 7 = 40
pin 8 = 33
pin 9 = GND
pin 10 = +V