Skocz do zawartości

Microblaze i moduły peryferyjne "Pmod" firmy Digilent


FlyingDutch

Pomocna odpowiedź

Cześć,

miałem dzisiaj chwilę czasu i "posunąłem" troszkę dalej mój projekt - mianowicie udało mi się obsłużyć przerwania z modułu "PmodCAn". dodałem dwa nowe "IP cores" do schematu blokowego: "AXI interrupt Controller i "Concat" i połączyłem z innymi modułami (Pmod i Microblaze). Niestety utknąłem ponownie - nie wiem jak połączyć wyjścia "PmodCAN" (Pmod_out) z "AXI GPIO". Teraz schemat blokowy wygląda jak na tych zrzutach ekranu:

VivadoDes01.thumb.png.7c231fff770d0ccf7d1a4fdc01cf02b6.png VivadoDes02.thumb.png.4ee8a8b0087d86e83c6b1f51ad64e82b.png

Oczywiście będę dalej próbował dokończyć ten projekt, ale gdyby w "między czasie" komuś się nasunął jakiś pomysł będę wdzięczny za uwagi 🙂

W zalączniku zaktualizowana wersja projektu Vivado 2018.2:

Micro4Pmod02.zip

Pozdrawiam

Link do komentarza
Share on other sites

Wiem, że to nie na temat Microblaze, ale polecam ZynqBook - w części "praktycznej" jest opis jak wyklikać przykłady np. z przerwaniami http://www.cse.iitd.ac.in/~kedia/smdp/The_Zynq_Book_Tutorials_Aug_15.pdf

Wydaje mi się, że używając Microblaze jest podobnie, więc może warto chociaż przeczytać jak to działa na Zynq.

Ja kiedyś probowałem podłączyć PMod z wyświetlaczem OLED, chyba do płytki Zybo. Działało bez problemu, ale zniechęciło mnie to, że wszystko działało wręcz automatycznie. Nawet kod przykładowy się pojawił - więc było fajnie bo zadziałało, ale niefajnie bo zupełnie nie wiedziałem co się dzieje...

  • Lubię! 2
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Używanie pmod-ów brzmi ciekawie, więc postanowiłem też spróbować. Używam płytki Arty z tym samym układem FPGA, niestety nie miałem modułu pmodCAN ani niczego co po CAN sensownie by działało - więc podłączyłem pmodOLED i pmodENC.

Wyszedł mi taki schemat:

2018-10-26-230223_1920x1031_scrot.thumb.png.a2417fe688bd7b039644394c41cbf5f3.png

Tak z ciekawości - weryfikacja schematu nie zwracała u Ciebie błędów? Ja musiałem przypisać odpowiednie gniazda, czyli JA oraz JD do modułów PMOD.

Projekt zsyntetyzował się poprawnie, niestety dalej było gorzej. Coś mi się popsuło przy eksporcie danych do Eclipse i nie wiem jak to poprawić. Komunikaty o błędach są takie:

2018-10-26-230653_1920x1031_scrot.thumb.png.a2472d28c10ed7d526775cf7d8292c0c.png

Na razie nie mam pomysłu co z tym zrobić 😞

 

Link do komentarza
Share on other sites

23 godziny temu, Elvis napisał:

Tak z ciekawości - weryfikacja schematu nie zwracała u Ciebie błędów? Ja musiałem przypisać odpowiednie gniazda, czyli JA oraz JD do modułów PMOD.

Projekt zsyntetyzował się poprawnie, niestety dalej było gorzej. Coś mi się popsuło przy eksporcie danych do Eclipse i nie wiem jak to poprawić. Komunikaty o błędach są takie:

Cześć Elvis,

właśnie gdy klikam "Validate design F6" mam komunikat o błędach:

[BD 41-759] The input pins (listed below) are either not connected or do not have a source port, and they don't have a tie-off specified. These pins are tied-off to all 0's to avoid error in Implementation flow. Please check your design and connect them as needed: /PmodCAN_0/Pmod_out_pin10_i /PmodCAN_0/Pmod_out_pin1_i /PmodCAN_0/Pmod_out_pin2_i /PmodCAN_0/Pmod_out_pin3_i /PmodCAN_0/Pmod_out_pin4_i /PmodCAN_0/Pmod_out_pin7_i /PmodCAN_0/Pmod_out_pin8_i /PmodCAN_0/Pmod_out_pin9_i

Na schemacie dla modułu PmodCAN mam niepodłączone wyjścia - patrz zrzut ekranu:

Vivado03.thumb.png.23ff63f1e3f84377e4da924865526e5d.png

Też nie wiem jak to rozwiązać (nie mogę znaleźć w opisie od modułu PModCAN co to są za wyjścia i jaką mają rolę).

Odnośnie błędów w twoim projekcie, to nie wiem, czym mogą być spowodowane.

Pozdrawiam

Link do komentarza
Share on other sites

Wydaje mi się, że w obecnym układzie moduł PmodCAN masz niepodłączony do płytki - stąd to strzeżenie. Pewnie musisz jakoś zdefiniować port oraz pinologię w pliku ograniczeń.

Niestety nie wiem jak to zrobić w Vivado 😞 To jest właśnie ta "magia" na którą narzekałem odnośnie Xilinxa. W Quartusie jest trochę roboty, bo trzeba określić co gdzie podłączyć, ale wszystko jest opisane w tutorialach i dokumentacji. Natomiast Xilinx dostarcza mega wygodne narzędzie - dla płytki Arty A7-35 wszystko zostało już przygotowane. W zakładce Board wybieram gniazdo JA/JB/JC/JD i mam moduł Pmod podłączony... Tylko zupełnie nie wiem jak to działa, ani jak podłączyć innym moduł.

To też jest powód dla którego wolę narzędzia Altery/Intela - nie dość że szybciej działają, to mniej w nich czarnej magii...

Link do komentarza
Share on other sites

(edytowany)
13 godzin temu, Elvis napisał:

Wydaje mi się, że w obecnym układzie moduł PmodCAN masz niepodłączony do płytki - stąd to strzeżenie. Pewnie musisz jakoś zdefiniować port oraz pinologię w pliku ograniczeń.

Niestety nie wiem jak to zrobić w Vivado 😞 To jest właśnie ta "magia" na którą narzekałem odnośnie Xilinxa. W Quartusie jest trochę roboty, bo trzeba określić co gdzie podłączyć, ale wszystko jest opisane w tutorialach i dokumentacji. Natomiast Xilinx dostarcza mega wygodne narzędzie - dla płytki Arty A7-35 wszystko zostało już przygotowane. W zakładce Board wybieram gniazdo JA/JB/JC/JD i mam moduł Pmod podłączony...

U mnie dla "CmodA7" w zakładce board jest dostępne tylko gniazdo "JA" . Płytka PmosCAN ma interfejs Pmod w wersji 1.1.0 (12 pinów):

https://reference.digilentinc.com/_media/reference/pmod/pmod-interface-specification-1_1_0.pdf?

Zrobiłem następujący eksperyment i zmieniłem board (w głównym projekcie z CmodA7 na ArtyS7) i kliknąłem "Run connection automation" i wszystkie wyjścia z PmodCAN się elegancko podłączyły do układu - nie ma żadnych błędów po walidacji. Ale według mnie to jest jakieś nieporozumienie: płytka CmodA7 którąiadam ma rzeczywiście tylko jedno gniazdo dla rozszerzeń Pmod, ale przecież posiada wyprowadzonych 48 pinów I/O i śmiało można by do nich podłączyć ten moduł PmodCAN. Nie wiem tylko jak to osiągnąć na "schemacie blokowym" (Block design).

Wiesz Elvis, chyba masz rację - trzeba przejść na płytki Intela. Dopóki nie próbowałem Microblaze na płytkach Xilinxa wszystko było OK (i poza czasem syntezy nie miałem żadnych zastrzeżeń), ale ta zabawa w "rzucanie czarów" na schemacie blokowym mało mi się podoba.

Pozdrawiam

Edytowano przez Treker
Poprawiłem formatowanie.
Link do komentarza
Share on other sites

Ja myślę że to po prostu moja/nasza niewiedza. Na pewno da się to wszystko elegancko zrobić w narzędziach Xilinxa. Mnie tylko zniechęciło, że tak dużo dzieje się automatycznie, a ja nie rozumiem o co w tym chodzi, ani jak cokolwiek zmienić. Pewnie wystarczyłoby poszukać w dokumentacji, albo zapisać się na dobry kurs... Tylko jak napisałem - jakoś w Quartusie to wszystko jest łatwiejsze i jak dla mnie lepiej opisane.

Link do komentarza
Share on other sites

2 godziny temu, Elvis napisał:

Na zybo jest o wiele łatwiej. Polecam tutorial o którym wspominałem, czyli zynqbook - http://www.zynqbook.com/download-book.php

Ale synteza zajmuje jeszcze więcej niż na Artix7. Ja ostatnio jakoś temat FPGA odłożyłem, ale może wrócę do Nios II 🙂

Cześć,

ja mam pomysł na projekt w VHDLu, ale potrzebuję w nim komunikacji po CAN. Stąd moje próby z Microblaze lub Zynq. Procesor potrzebuję tylko do obsłużenia komunikacji, ale widzę, że muszę się jeszcze dużo nauczyć. Właśnie robię próby z podłączeniem PmodCAN do Zybo - jest łatwiej, ale też napotkałem w pewnym miejscu problemy. jeśli coś z tego wyjdzie to napiszę.

Pozdrawiam

Link do komentarza
Share on other sites

(edytowany)

Cześć,

w końcu udało mi się bez błędów zrobić projekt w Vivado 2018.2 z podłączeniem modułu PmodCAN do płytki Zybo (z SoC Zynq Xilinxa). Tak jak wspominał Elvis dla hard-procesora Zynq jest to łatwiejsze niż dla soft-procesora Microblaze.

Wersja płytki Zybo dla której jest projekt to:

https://reference.digilentinc.com/reference/programmable-logic/zybo/start?redirect=1

Tak to wygląda teraz w vivado (schemat blokowy):

VivadoCanTest.thumb.png.acc927db7bf99f262f59dec7260e6328.png

W projekcie nie ma żadnych krytycznych ostrzeżeń - walidacja przechodzi bez błędów. Potem wygenerowałem 'wrapper" HDL, a następnie uruchomiłem syntezę, implementację i generację bitstream - tu także nie było błędów. Następnie wyeksportowałem projekt do SDK 2018.2 Xilinxa. Projekt w SDK kompiluje się poprawnie. Projekt dla SDK jest w katalogu

wewnątrz projektu Vivado, wystarczy więc kliknąć File -> Launch SDK, aby otworzył się Eclipse. Patrz zrzut ekranu:

CANTestSDK.thumb.png.b0e67f14f08dd5bbf2f540197deada9d.png

Bezpośrednio z SDK (po kompilacji) możemy załadować nasz projekt do płytki Zybo  (FPGA).

Aby sprawdzić czy moduł CAN podłłączony do Zybo działa poprawnie, muszę zaprogramować STM32F103 i połączyć z kostką driverem CAN (mam gdzieś kilka sztuk w szufladzie).

Jak zrobię próby ze sprzętem dam znać. W zalączniku projekt Vivado z projektem SDK (w podkatalogu):

Zybo4Pmod.zip

Edytowano przez FlyingDutch
  • Lubię! 1
Link do komentarza
Share on other sites

(edytowany)

Cześć,

zbudowałem układ testowy - wygląda następująco:

IMG_0118.thumb.JPG.7044c1cfad073c742d088736914ecca8.JPG

Okazało się, iż miałem zakupiony kiedyś shield CAN do Arduino, tak, że nie musiałem pisać nawet programu dla STM32. Z jednej strony magistrali CAN jest Arduino UNO + shield CAN,

a z drugiej płytka Zybo (Xilinx FPGA) z PmodCAN. Skompilowałem program w SDK (test PmodCAN) - projekt zbudował się bezbłędnie. Zaprogramowałem Zybo z SDK - przebiegło poprawnie bez żadnych błędów. Włączyłem debug i program zatrzymał się w pierwszej linii main, gdzie postawiłem breakpointa - była to linia z wyrzuceniem komunikatu na konsolę. Poprzez pracę krokową wykonałem tą linię. Mój problem polega na tym iż, na wirtualnym porcie COM podpiętym do procesora ARM z płytki Zybo nie wyświetlają mi się komunikaty (przełączalem pomiedzy dwom rdzeniami ARM). Gdy uruchomię Run program wykonuje się niby poprawnie, ale nic nie widzę na konsoli. Patrz zrzut ekranu:

SDKCAN01.thumb.png.5fa784ea6ea06aba7ed595debea4b401.png

Czy ktoś może coś doradzić?

Pozdrawiam

Edytowano przez FlyingDutch
  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.