ATNEL tech-forum https://forum.atnel.pl/ |
|
Możliwości komunikacji procesora AVR z komputerem przez USB https://forum.atnel.pl/topic20852.html |
Strona 1 z 1 |
Autor: | mirekk36 [ 9 cze 2018, o 21:30 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
MSZ98 napisał(a): mimo niedużej szybkości taktowania (16MHz) to zobacz to? MSZ98 napisał(a): Jakieś specyfikacje? Aplikację pisałem w Javie, używałem bibliotek AWT, Swing i LibUsb4Java. to może zainteresuj się TURNIEJEM RYCERSKIM ? https://mirekk36.blogspot.com/2018/05/t ... s-w-3.html MSZ98 napisał(a): Tym projektem powinny się interesować raczej osoby, które potrafią zarówno pisać programy na komputer, jak i programować procesory oraz interesują się elektroniką. Masz 100% racji ale nie dziw się, że zbyt mało osób na to odpoiwada albo w ogóle nikt nie odpowiada ponieważ nie są to proste tematy dla początkujących - a ZDECYDOWANA większość osób początkujących w V-USB działa albo próbuje działać w trybie HID ... pewnie wiesz o co chodzi ... mało kto podejmuje rękawicę aby zmierzyć się z tym zagadnieniem o jakim piszesz i stąd mało odpowiedzi - aczkolwiek szkoda że na forum ele.... jak zwykle włączają się tzw ŚPECE którzy niby wszystko wiedzą ale jedyne co ... to potrafią próbować wszystko obrzydzić Krótko mówiąc temat fajny ale nie jest prosty dla początkującego i musisz zdać sobie z tego sprawę Zobacz ten konkurs ogłoszony przeze mnie - obejmuje również prace w JAVA ... ale na tym polu nikt się jeszcze nie zgłosił zgłosili się Rycerze w działach: - C (Windows/Linux) - C# - Delphi (ja osobiście - ale że organizuję konkurs to nie mogę w nim startować) - Node.js (bardzo ciekawy temat nawet dla mnie osobiście) a ty jako pierwszy wspominasz o JAVA Myślę, że to kwestia aby umieć się z poziomu JAVA dobrać do obsługi biblioteki DLL typu LibUSB0.DLL np pod Windowsem - kłopot polega na tym, że ja nie znam kompletnie JAVA więc nie umiem podpowiedzieć w tym zakresie niestety ale podobnie jak ty uważam temat za bardzo ciekawy ------------------------ [ Dodano po: 2 minutach ] Może się okazać, że na podstawie już dokonanych przez ciebie prac w JAVA możesz wygrać jedną z głównych nagród w TURNIEJU RYCERSKIM a przy okazji może się czegoś dowiedzieć gdy konkurs dobiegnie końca i Rycerze opublikują swoje kody źródłowe - wtedy może będziesz mógł porównać - a nawet jeśli robisz to na własnej implementacji V-USB to może podpatrzysz jakieś ciekawe dla siebie rozwiązania - z różnych języków programowania |
Autor: | MSZ98 [ 9 cze 2018, o 21:37 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
Napisałem bibliotekę do Javy, do obsługi tego dziadostwa. Jest tak banalnie prosta, że ma 4 metody: usbSendData(), usbReadData(), connect(), disconnect(). Wystarczy znać podstawy Javy, żeby napisać program z przyciskami.. albo w konsoli chociaż.. A na elektrodzie, to mnie zaczęli moderatorzy blokować, że niby ironizuję, czy jakoś tak.. zakute łby.. To właśnie, jeżeli dobrze zrozumiałem z tym turniejem, chodzi chyba o to, że można z poziomu PC przesyłać informacje przez różne magistrale. No to.. właśnie taki był zamysł tego, co zrobiłem.. PC => USB => ATmega32 => SPI => Wyświetlacz.. Taki... emulator pinów z komputera. Coś, co Raspberry Pi ma już samo w sobie.. |
Autor: | mirekk36 [ 9 cze 2018, o 21:53 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
dobra zostawmy elektrozgrozę - bo wiadomo jak tam jest V-USB to fajna biblioteka na potrzeby programowego podejścia do USB .... więc w czym masz problem ? I nie pisz, że wystarczy znać podstawy Jaby - bo to, że ty je znasz to nie znaczy że inni na forum je znają ... a zatem postaraj się opisać bardziej szczegółowo problem - być może będę w stanie coś podpowiedzieć - ale jak mówię nie na poziomie JAVA bo ja nie znam JAVA ani w ząb, ale z poziomu np Delphi/Pascal z powodzeniem nawiązuję komunikację z V-USB nie ważne zatem szczegóły syntaktyczne danego języka - być może uda się coś podpowiedzieć na poziomie bardziej ogólnym ale najpierw trzeba umieć jakoś wyzizolować problem no i dobrze go opisać ... nie zaś pisać że to jakieś podstawy JAVA |
Autor: | MSZ98 [ 9 cze 2018, o 21:57 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
Dziękuję bardzo, ale nie mam żadnych problemów. Chciałem tylko pokazać, że ATmega32 nadaje się do stworzenia strumienia przesyłu danych z komputera przez USB. Myślę, że jeżeli będzie mi się chciało bawić z tym dalej, to będę mógł bez problemu pokazać na tym wyświetlaczu widok z kamery internetowej na żywo.. |
Autor: | mirekk36 [ 9 cze 2018, o 22:17 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
no to bardzo dobrze bardzo ciekawe zagadnienie żeby z poziomu JAVA robić sobie takie ciekawostki przy użyciu V-USB |
Autor: | MSZ98 [ 9 cze 2018, o 22:23 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
Hmm.. tak zastanawiam się teraz nad tym konkursem.. w filmie mówi Pan wyłącznie o LibUsb, natomiast nie wyłapałem informacji wystarczających do zrozumienia, co jest dokładnie celem konkursu. Chodzi o to, by zrobić komunikację I2C, albo SPI z komputera używając LibUsb.. Tylko że to fizycznie niemożliwe.. Trzeba by przez LibUsb skontaktować się z procesorem AVR i użyć go, aby skontaktować się z I2C lub SPI. Czy o to Panu chodziło? Proszę o wybaczenie za takie zadręczanie, ale czasami ciężko pojmuję coś na szybko. Dziękuję za odpowiedzi. |
Autor: | mirekk36 [ 10 cze 2018, o 02:52 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
MSZ98 napisał(a): Trzeba by przez LibUsb skontaktować się z procesorem AVR i użyć go, aby skontaktować się z I2C lub SPI. Czy o to Panu chodziło? Ale dobrze rozumiesz, o to chodziło ... a dokładniej mówiąc o skorzystanie z gotowego już hardware jakim jest programator ATB-USBasp który ma zaimplementowane komendy API do tego celu. I właśnie żeby się posługiwać tymi komendami API, opisanymi w PDF na stronie producenta: http://atnel.pl/programator-atb-usbasp.html można używać LibUSB z poziomu komputera w różnych językach programowania ... Tak tylko o tym wspomniałem jak zobaczyłem, że umiesz korzystać z LibUSB w JAVA ... o ile też dobrze zrozumiałem |
Autor: | MSZ98 [ 10 cze 2018, o 09:02 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
Tak, jak wspomniałem, całe oprogramowanie użyte do tego "wyświetlacza na usb" pisałem sam, na komputerze używałem LibUsb, żeby móc korzystać z USB, a na mikroprocesorze, ponieważ to jest ATmega32 i nie ma wbudowanego USB, jak np. ATmega8U2, ATmega16U2, ATmega32U2, korzystam z dzieła Pana Starkjohanna, jakim jest VUSB. A wszystkiego uczyłem się z 5 źródeł: specyfikacja oraz kod VUSB, wikipedia po angielsku, specyfikacja USB, MSDN - bardzo dobrze wytłumaczone transfery kontrolne, specyfikacja LibUsb. Ponieważ używam javy, to używam biblioteki LibUsb4Java. Taka sama, jak LibUsb, tylko że na javę. Podam przykład.. Transfer kontrolny w LibUsb: libusb_control_transfer ( libusb_device_handle * dev_handle, uint8_t bmRequestType, uint8_t bRequest, uint16_t wValue, uint16_t wIndex, unsigned char * data, uint16_t wLength, unsigned int timeout ); Transfer kontrolny w LibUsb4Java: LibUsb.control_transfer ( DeviceHandle devHandle, byte bRequestType, byte bRequest, word wValue, word wIndex, ByteBuffer data, long timeout ); Jak widać w javie nie operujemy na niskopoziomowych wskaźnikach do pamięci, jak libusb_device_handle *, ale na obiektach typu DeviceHandle. Już w C++ byłoby podobnie, jak w javie. W javie nie ma też parametru wLength, ponieważ on jest częścią ciągu bajtów, jakim jest ByteBuffer, a w C bez niego nie byłoby nawet wiadomo, gdzie kończy się wskaźnik unsigned char * data. Ja sprowadziłem tę funkcję do postaci bez bitmapy bmRequestType, która między innymi określa kierunek danych w "Data Stage" transferu kontrolnego. Ogólnie, żeby VUSB odebrało do funkcji USB_PUBLIC uchar usbFunctionSetup() transfer kontrolny, to trzeba odpowiednio skonfigurować bmRequestType, dlatego łatwiej było mi napisać funkcję typu sendData, readData, niż za każdym razem musieć się bawić bezpośrednio z LibUsb. Gdzie Panu wysłać kod, program i resztę? Aaa.. chciałem Panu jeszcze wspomnieć, że kilka lat temu, swoje pierwsze kroki z mikrokontrolerami robiłem przy Pańskich godzinnych filmach. Bardzo dziękuję i za to. Niestety, jak pan widzi po schemacie.. nie wiele dobrego weszło mi w krew.. nawet nie stosuje kondensatorów przy rezonatorze . |
Autor: | mirekk36 [ 10 cze 2018, o 11:00 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
MSZ98 napisał(a): Tak, jak wspomniałem, całe oprogramowanie użyte do tego "wyświetlacza na usb" pisałem sam, na komputerze używałem LibUsb, żeby móc korzystać z USB, a na mikroprocesorze, ponieważ to jest ATmega32 i nie ma wbudowanego USB, jak np. ATmega8U2, ATmega16U2, ATmega32U2, korzystam z dzieła Pana Starkjohanna, jakim jest VUSB Dlatego od razu zobaczyłem i doceniłem twój spory wkład pracy - sam wiem ile to kosztuje, że tak powiem ... no trzeba troszkę posiedzieć ale efekty są świetne oczywiście o tym konkursie to tak przy okazji powiedziałem widząc, że te zagadnienia nie są ci obce a na dodatek akurat wpasowujesz się w kategorię JAVA w tym konkursie MSZ98 napisał(a): Ja sprowadziłem tę funkcję do postaci bez bitmapy bmRequestType, która między innymi określa kierunek danych w "Data Stage" transferu kontrolnego. Ogólnie, żeby VUSB odebrało do funkcji USB_PUBLIC uchar usbFunctionSetup() transfer kontrolny, to trzeba odpowiednio skonfigurować bmRequestType, dlatego łatwiej było mi napisać funkcję typu sendData, readData, niż za każdym razem musieć się bawić bezpośrednio z LibUsb. No i DOKŁADNIE tak się to robi i do tego również sprowadza się korzystanie z tego API dla ATB-USBasp ... nie wiem czy widziałeś na forum, ale już dwóch poważnych Rycerzy startuje - jeden z nich tworzy program w C# , a drugi w bardzo dalekim mi języku programowania - chociaż to nie jest może stricte język - ale za to bardzo interesujący: Node.js - również rewelacyjne efekty pokazał już ten kolega na forum ... gdybyś jeszcze ty coś zrobił w Java to pięknie zamknęłyby się wszystkie kategorie konkursu MSZ98 napisał(a): Gdzie Panu wysłać kod, program i resztę? Prześlij na mój adres biuro@atnel.pl ale tylko wtedy jeśli zgadzasz się na upublicznienie kodu, żeby później inni również mogli z tego skorzystać w Java. Jeśli wolałbyś aby nie publikować - co ja oczywiście SZANUJĘ - to wtedy z kolei nie za bardzo można wziąć udział w tym konkursie a zatem nawet nadsyłać swojej pracy ... Tymczasem jeśli masz już takie duże doświadczenie w Java z LibUSB to wydaje mi się właśnie, że po zapoznaniu się z dokumentacją API dla ATB-USBasp byłbyś w stanie nawet na sucho, jak to się mówi napisać chociażby mały programik do migania diodą LED i gdyby działał - a źródła byś chciał pokazać również albo szczególnie innym tu na forum, czy ja to później zrobię ogłaszając zwycięzców - no to uważam, że również miałbyś dużą szansę na wygranie właśnie tego programatorka plu DODATKU do niego ------------------------ [ Dodano po: 1 minucie ] MSZ98 napisał(a): Niestety, jak pan widzi po schemacie.. nie wiele dobrego weszło mi w krew.. nawet nie stosuje kondensatorów przy rezonatorze wiesz do prototypu, na stykówce przy takim prostym projekcie to ja też często nie daję kondensatorów do kwarca ... ale mówię do prototypów ... za to myślę, że jeśli tworzysz gotowe urządzenie dla klienta np - to raczej na pewno dbasz o dobre praktyki projektowania |
Autor: | MSZ98 [ 10 cze 2018, o 13:21 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
Przejrzałem API tego całego USBASP, ale nie widzę nigdzie Vendor ID ani Product ID. Czy może napisać program, w którym będzie Pan mógł wpisać ID urządzenia i producenta? Przy okazji chciałem zapytać o coś.. Otóż.. kiedy korzystałem z VUSB, to zauważyłem, że VUSB nie przyjmuje ode mnie transferów kontrolnych bez "Data Stage". To znaczy, parametr wLength ustawiam na 0. I nie wiem do końca, czy to VUSB nie chce przyjąć takich transferów, czy LibUsb ich nie wysyła. I to jest właśnie pytanie.. udało się Panu do VUSB wysłać transfer kontrolny o parametrze wLength = 0? |
Autor: | mirekk36 [ 10 cze 2018, o 13:35 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
MSZ98 napisał(a): Przejrzałem API tego całego USBASP, ale nie widzę nigdzie Vendor ID ani Product ID. Czy może napisać program, w którym będzie Pan mógł wpisać ID urządzenia i producenta? Nie dość że widać VID i PID - to wystarczy w necie wpisać USBASP .... VID PID i masz pan od razu toż to najpopularniejszy programator do AVRków na świecie |
Autor: | MSZ98 [ 10 cze 2018, o 13:46 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
Ok, dziękuję. |
Autor: | MSZ98 [ 18 kwi 2020, o 09:33 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
Link do programów i kodu źródłowego https://www.dropbox.com/s/d94ygt4dbs5or ... a.zip?dl=0 |
Autor: | mirekk36 [ 18 kwi 2020, o 09:57 ] |
Tytuł: | Re: Możliwości komunikacji procesora AVR z komputerem przez |
I bardzo fajnie - przyda się ludziom szczególnie po projekcie ORANGEBOOK Ja tam w ogóle nie umiem pisać w Java no ale przecież wielu innych chętnie używa tego języka. tylko może dodam ten twój plik ZIP jako złącznik na forum, bo takie linki dziwne do dropboxów i innych stron później znikają i są dziury na forum. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |