ATNEL tech-forum https://forum.atnel.pl/ |
|
V-USB - ATMEGA1284 - intx https://forum.atnel.pl/topic23523.html |
Strona 1 z 1 |
Autor: | drakston [ 8 sty 2021, o 21:53 ] |
Tytuł: | V-USB - ATMEGA1284 - intx |
Witam Pytanie odnośnie podłączenia linii transmisji usb do atmega1284, wg orange book pin D+ musi być podany na port typu INTx, czyli pod wejściem PB2 w atmega1284 gdzie jest INT2, też powinno wszystko działać? Bo mam z tym problem i nie wiem czy trzeba inaczej ten port skonfigurować czy powinno od kopa działać. Program jest ok, działał na atmega328 - samo wykrycie urządzenia w menedzerze urządzeń, nic więcej, przekopiowałem pod atmege1284 z przeportowaniem i nie wykrywa. |
Autor: | mirekk36 [ 8 sty 2021, o 22:07 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
pamiętaj że to nie tylko sekcja INTx ale i piny - na początku pliku |
Autor: | drakston [ 8 sty 2021, o 22:18 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
usb mam podpięte pod poniższe piny Cytuj: #define USB_CFG_IOPORTNAME B /* This is the port where the USB bus is connected. When you configure it to * "B", the registers PORTB, PINB and DDRB will be used. */ #define USB_CFG_DMINUS_BIT 1 /* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected. * This may be any bit in the port. */ #define USB_CFG_DPLUS_BIT 2 Wrócilem do ksiązki i doczytałem tą sekcje Cytuj: jeśli zechcemy użyć mikrokontrolerów ATmega644P lub ATmega1284P (odpowiednik, jeśli chodzi o wyprowadzenia, tak jak ATmega32), to proponujemy w ramach ćwiczeń wykorzystać przerwanie PCINTx dostępne również na pinie INT1, czyli PCINT27. W takim przypadku konfiguracja będzie wyglądała tak: /* -------------------------- Hardware Config ------------------------ */ #define USB_CFG_IOPORTNAME D #define USB_CFG_DMINUS_BIT 5 // pin PD5 #define USB_CFG_DPLUS_BIT 3 // pin PCINT27 (PD3) dla ATmega644/1284 /* -------------------- Optional MCU Description --------------------- */ #define USB_INTR_CFG PCMSK3 #define USB_INTR_CFG_SET (1 << PCINT27) #define USB_INTR_CFG_CLR 0 #define USB_INTR_ENABLE PCICR #define USB_INTR_ENABLE_BIT PCIE3 #define USB_INTR_PENDING PCIFR #define USB_INTR_PENDING_BIT PCIF3 #define USB_INTR_VECTOR PCINT3_vect Jak rozumiem muszę się wokół tego w pliku zakręcić? Można gdzieś znaleźć opis/rozwinięcie powyższych definicji ? |
Autor: | mirekk36 [ 9 sty 2021, o 04:05 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
drakston napisał(a): Jak rozumiem muszę się wokół tego w pliku zakręcić? W kodach przykładowych do książki masz ładnie wszystkie najpotrzebniejsze sekcje w tym tą którą tu pokazałeś - wystarczy że inną tzn dla innego procka zakomentujesz a odkomentujesz właśnie tą - i już będzie ci śmigać. Tu w tym wypadku będzie używany PCINT27 zamiast INTx Jeśli się upierasz na INT2 to hmmm musisz sprawdzić ale z tego co pamiętam to to przerwanie się nie nadaje bo jest asynchroniczne w porównaniu do INT0 albo INT1 ... ale ponieważ to procek m1284p to spokojnie możesz użyć przerwania PCINTx tylko sprawdź jaki to numerek PCINT w nocie PDF i ew podmień pozostałe nazwy jak PCMSKx PCIEx PCIFx PCINTx_vect |
Autor: | mirekk36 [ 9 sty 2021, o 13:40 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
drakston napisał(a): O czym zapomniałem? nie wiem ale jak ja pokazywałem w przykładzie PCINT27 to był np PCMSK3 .... natomiast PCINT10 jest daleko od niego - na pewno o 8 bitów - więc wątpię (nie zaglądając teraz do noty PDF - ty sobie zajrzyj) bo pisałem ci żebyś zwrócił uwagę na wszyskie PCMSKx i tak dalej - a ty sobie niefrasobliwie przepisałeś wszędzie z trójką. Zajrzyj do mojego postu wyżej |
Autor: | drakston [ 9 sty 2021, o 18:30 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
wg. noty powinno być tak język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. efekt taki że co pare sekund odświeża listę urządzeń w menedżerze i wyświetla okienko nie rozpoznano urządzenia. |
Autor: | mirekk36 [ 9 sty 2021, o 19:06 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
Pokaż obydwie części konfiga twojego teraz - czyli jak masz PINY i te przerwania Poza tym czy wgrywasz jakąś najprostszą konfigurację do testu czy kombinujesz od razu z czymś ciężkim i nie wiadomo gdzie masz błąd |
Autor: | drakston [ 9 sty 2021, o 19:32 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
Kod main jest wpis wyżej, sama próba połączenia. cały usbconfig |
Autor: | mirekk36 [ 9 sty 2021, o 19:55 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
wiesz, troszkę łapię się za głowę jak widzę ten konfig ... oczywiście jeśli masz Orangebook'a - bo z tego co piszesz wygląda że masz OB..... No to po jasny gwint sam sobie robisz podwójne salto-mortale z pętlą na szyi ? Ja np spróbowałbym najpierw DOKŁADNIE tak jak jest w książce jakiś przykład - a masz przykład na m644P (to jest IDENTIKO to samo co m1284P) i z V-USB na tych pinach co w książce żeby mi ruszyło .... Jakby mi ruszyło to zmieniłbym tylko piny i przerwanie .... a nawet jakbym się uparł i nie chciał przetestować tego co w książce - to Qurczę tyle pracy włożyłem i w wyjaśnienie całego konfiga linia po linii ... (ale ok nawet mogę zrozumieć, że i tu można się pomylić gdy się człowiek bierze pierwszy raz za to) ... A ty nie ... Widzę, że wziąłeś sobie czysty fabryczny usbconfig.h i zajeżdżasz go po swojemu - wiedząc że możesz popełnić w nim błędy jeszcze w wielu miejscach. Po co tak ? Zobacz ile się już "kopiesz z koniem" Dlaczego nie użyjesz przykładu z książki (kody do książki) czyli jakiegoś folderu z biblioteką i tym plikiem cfg ? zmieniając tylko te piny i przerwania ? Na pierwszy rzut oka widzę, że mogą być w tym co pokazałeś babole ale to jest chore tak analizować to w ciemno - jaki to ma sens ? Tak możemy pisać przez 100 tys postów. Poza tym ja założyłem że ty chcesz to odpalić w trybie HID ... ale teraz się zastanawiam czy na pewno w HID ? czy nie ? też chyba jasno to nie wyniknęło z postów i na koniec - pokazałeś mikrofragmencik swojego schematu - ale nawet na schemacie nie widać która to u ciebie linia D+ a która D- .... czy ty już na tym etapie nie poległeś? ------------------------- Mówię ci - zacznij od przykładu/kodu z książki tzn z któregoś dowolnego ćwiczenia bo tam masz PRZEŚLICZNIE przygotowane usbconfig.h i na dodatek z ładnymi sekcjami do przełączania dla pinów i różnych przerwań dla kilku różnych procków - tak warto sobie samemu w kodach robić, żeby później uniwersalnie móc to przenosić na różne procki - a ty robisz to po linuxowemu. Zajrzyj pan do tych ćwiczeń kilku do tych plików usbconfig.h i przeanalizuj jak to przygotowałem - zobaczysz że doznasz olśnienia |
Autor: | drakston [ 9 sty 2021, o 21:26 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
Po 1 ile tego schematu ma być? widać na nim złącze, jego numery pinów i cały tor usb do procesora, przecież więcej nie trzeba... ten sam tor był sprawdzany na atmega328p i komunikacja wg pierwszego przykładu z książki działała bez problemów. po 2, Pisałem że chce przerobić pierwszy przykład, że lecę wszystko wg. niego - pierwszy przykład to nie jest hid, tak? Sam Pan pisał w książce o przekopiowaniu czystego konfigu i konfiguracji wg tego pierwszego przykładu co sprowadzało się tylko do ustawienia portów, czestotliwości i nazwy ... zakładając że podłączamy się pod INT0 w wybranym procku. Jak dobrze pamiętam to w książce widniała informacja że każdy port typu INTx może być użyty do v-usb dlatego na tej bazie u mnie w projekcie wybrałem INT2 bo szczerze mówiąc nic innego wolnego nie mam. Przeleciałem przykład pierwszy z książki ale nie działało, sugestia od Pana z ustawieniem konfigu przerwań, z poprawka o poprawną konfiguracje z noty procka który też nic nie daje. Pan mówi o przykładzie który jest na stronie 203 książki tak? czyli w teorii mam dobrze to wpisane. Jutro rozpruje płytkę i przepnę usb na INT0 a potem INT1, jak będzie działać to krótko mówiąc INT2 w atmega1284 nie nadaje się pod usb/albo trzeba czegoś więcej. |
Autor: | mirekk36 [ 9 sty 2021, o 22:37 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
drakston napisał(a): Jutro rozpruje płytkę i przepnę usb na INT0 A nie no to spoko jak ci już działało to najważniejsze - bo właśnie znaczy że np wyeliminowane są błędy np połączeń Weź zatem na żywca CAŁY plilk usbconfig.h np z klawiatury HID ok i zmień na swoje piny PB 1 i 2 z przerwaniem PCINT10 ale ważne żebyś wziął ten plik z ćwiczenia z książki a nie na czysto i go przerabiał ok? i daj znać |
Autor: | drakston [ 15 sty 2021, o 10:40 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
Przykład 4 z HID działa na konfigu z przykładu i na moich ustawieniach i pozostałych czyli standardowo wejścia INT Przykład 1 podstawowy z książki nie działa na żadnym porcie w przypadku Atmega1284. Generalnie problem z usb w projekcie rozwiązałem w inny sposób także dzięki za pomoc. |
Autor: | mirekk36 [ 15 sty 2021, o 11:31 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
drakston napisał(a): Przykład 1 podstawowy z książki nie działa na żadnym porcie w przypadku Atmega1284. To niemożliwe - aż sam sprawdzę |
Autor: | drakston [ 15 sty 2021, o 12:02 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
Przy obojętnie jakiej kombinacji podpięcia z odpowiednim konfigiem - komunikat nie znaleziono urzadzenia |
Autor: | mirekk36 [ 15 sty 2021, o 12:24 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
ty masz procka ATmega1284P czy ATmega1284 ? bo to różne procki Poza tym podeślij mi ten kod z tego 1-go ćwiczenia który ci nie działa - bo u mnie śmiga że aż miło, więc na razie jedyne co przychodzi mi do głowy to złe połączenia niestety. Oczywiście mówię o procku m32. Ale sprawdzę niedługo na m1284P i nawet spróbuję się podłączyć na INt2 jak ty próbowałeś |
Autor: | drakston [ 15 sty 2021, o 18:03 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
Wrzucę jak będę przy drugim kompie. Mam m1284. Na pewno to są różne procki ? wersja P oznacza Picopower czyli niższe zużycie prądu i ma dołożone jedyne co jakieś dodatkowe pierdoły oszczędzające energie. |
Autor: | mirekk36 [ 15 sty 2021, o 18:36 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
tak sorki sprzętowo jednak się nie różnią |
Autor: | mirekk36 [ 24 sty 2021, o 14:44 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
jeszcze dzisiaj pokażę że wszystko działa z książki - KAŻDY przykład - a dodatkowo odpalę na twoich ustawieniach czyli PB1,2 czyli na PCINT10 oczywiście na ATmega1284P |
Autor: | mirekk36 [ 24 sty 2021, o 18:37 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
proszę: |
Autor: | Slawek [ 26 sty 2021, o 07:13 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
Wiem że zostanę pogryziony za pytanie, ale może nie. Pewnie też to było opisane, ale jak szukam to nie potrafię znaleźć O co dokładniej chodzi z tym przerwaniem synchronicznym i asynchronicznym. Doszukałem się różnicy o co w nich ogólnie tylko chodzi i nawet ludzie opisują że Atmel wprowadził pewne zamieszanie w nich (myli ich opisy w stosunku do pinów), ale jaki wpływ mają te przerwania w stosunku do biblioteki V-USB? Tak ogólnie to dopiero teraz po suplemencie uświadomiłem sobie o takiej różnicy, zastanawiam się też jaki ma to wpływ na inne programy wykorzystujące przerwania zewnętrzne? |
Autor: | Slawek [ 26 sty 2021, o 19:34 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
Wydawało się proste pytanie a się skomplikowało. "Ludzie" to było spontaniczne wtrącenie. Mało ważne kto i co, ale szukając informacji o przerwaniach natrafiłem na ciekawy wpis na AVRFreaks. Ktoś (w takim sensie ktoś, osoba bo chyba nie potrzebujesz tu imienia bo i tak nie pamiętam) opisywała jak w dokumentacji atmela opisane są przerwania. Co innego w datasheet, co innego w przykładach i dopiero w erracie co nieco się wyjaśnia. Mnie chodziło o to dlaczego piszesz mirekk36 napisał(a): musisz sprawdzić ale z tego co pamiętam to to przerwanie się nie nadaje bo jest asynchroniczne Jaki wpływ na pracę biblioteki V-USB to mam. Jeśli nie doczytałem tego w orangebooku to przepraszam i proszę o podanie na której stronie to jest, jeśli nie ma to proszę wyjaśnij dlaczego tak mówisz. |
Autor: | mirekk36 [ 26 sty 2021, o 20:15 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
Slawek napisał(a): Ktoś (w takim sensie ktoś, osoba bo chyba nie potrzebujesz tu imienia bo i tak nie pamiętam) opisywała jak w dokumentacji atmela opisane są przerwania. Co innego w datasheet, co innego w przykładach i dopiero w erracie co nieco się wyjaśnia. Oczywiście że mi nie są potrzebne ani imiona ani numery butów ani inne dane osobowe - a po choinkę. Nadal jednak twierdzę, żebyś ty zamiast się skupiać na tym co ktoś tam napisał i że jak czegoś nie zrozumiał to pisał dziwne rzeczy - to sam zajrzyj do noty, zobacz, porównaj i napisz czego nie rozumiesz. Bo teraz to już dziwnie piszesz po tym co na górze starałem się wyjaśnić i podać ci trop co i jak jest opisane w nocie - a ty dalej swoje, że ktoś coś tam napisał sobie. W internecie jest mnóstwo bzdur i nic na to nie poradzisz. W ogóle nie rozumiem co tu wyjaśniać jak chodzi o różnice w działaniu tych przerwań skoro w nocie PDF jest to opisane jasno i prosto jak byk. A i tak w 99% przypadków nikt nie wykorzystuje w jakiś zaawansowany sposób różnic jakie niosą za sobą działania tych przerwań. Slawek napisał(a): Jaki wpływ na pracę biblioteki V-USB to mam. Wpływu nie ma - skoro ktoś przewidział w swojej bibliotece że mogą być użyte tylko przerwania synchroniczne no to co na to poradzisz. Poza tym biblioteka V-USB wykorzystuje w sposób drastycznie zaawansowany zależności czasowe, dlatego spora jej część napisana jest w asemblerze i co ciekawe w zależności od częstotliwości taktowania wstawki asemblerowe również drastycznie muszą się różnić, bo rozkazy asm dobierane są tak aby zgadzały się czasówki do prawie pojedynczych taktów zegara. Poza tym pokazałem ci wyżej fragment noty - możesz sobie ten tekst wrzucić do gogle translate zawsze - jeśli np do końca coś tam po angielsku nie rozumiesz - co za problem? Ale ok jest tam napisane że przerwania od zbocza narastającego czy opadającego dla przerwania wyzwalane są asynchronicznie czyli niezależnie od sygnału CLK, za to muszą się zmieścić zgodnie z podaną tam tabelą w odpowiedniej ilości cykli zegara. W związku z tym, np krótsze impulsy mogą nie być w ogóle "zauważone" przez procka. Ja wprawdzie nie analizowałem na poziomie asemblera wykorzystania przerwań INTx w V-USB - spojrzałem tylko na dostępne bity konfiguracyjne do ustawienia dla przerwań i po tym widać, że autorzy V-USB zdecydowali się na synchroniczne przerwania jeśli chodzi o INTx. Trzeba byłoby posiedzieć nad analizą kodu asemblera i ręcznie liczyć cykle i co robi kod - a jednocześnie poznać od podszewki czysty protokół USB żeby sobie odpowiedzieć na takie pytanie - tylko czy jest sens ? Ja nie widzę takiego sensu. Jeśli ty widzisz - to już wiesz co musisz zrobić żeby zaspokoić ciekawość dalej. |
Autor: | Slawek [ 27 sty 2021, o 20:01 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
Nie zgadzam się z tym co napisałeś. Niemniej to ty piszesz na forum że asynchroniczne przerwania nie działają i potem w suplemencie też ty to powtarzasz. Skoro wymagasz ode mnie rzetelności w pisaniu posta, czym się nawet zgadzam. Uważam ze dostałem od ciebie po uszach, czego się zresztą spodziewałem na początku. Co prawda myślałem że jak zapytam wprost na forum zamiast siedzenia nad notami będzie łatwej. Zresztą nie pisałem że nie rozumiem tekstu tylko że nie rozumiem różnicy w wymienionych przerwaniach , a to jednak co innego. Dla jasności doczytałem głębiej, więc teraz już wiem. To cichłbym abyś teraz sam był fair i powiedział dlaczego tak piszesz i potem mówisz. Czy sprawdzałeś to, że asynchroniczne nie działają, skąd masz taką wiedzę. Bo nie tłumacząc co masz namyśli masz mój poziom, który skrytykowałeś w delikatny wprawdzie sposób. |
Autor: | mirekk36 [ 27 sty 2021, o 21:59 ] |
Tytuł: | Re: V-USB - ATMEGA1284 - intx |
Slawek napisał(a): Uważam ze dostałem od ciebie po uszach Ja pierdziu! gdzie ja tobie po uszach dawałem, gdzie ja cię krytykowałem? - podpowiadam coś z dobrego serca a ten mi tu spazmów dostaje - no ja pierdziu. Idź pan .... nie powiem gdzie - nie mam zamiaru dalej dyskutować w takim tonie. Slawek napisał(a): , czego się zresztą spodziewałem na początku. a niby po czym się spodziewałeś ... no chore podejście. I weź tu człowieku staraj się pomóc - zawsze się znajdzie taki jeden co to napisze że go opierdzielam chociaż nawet mi przez myśl to nie przeszło bo i za co miałbym to robić - ale już po pierwszym twoim poście widziałem że jakoś tak zadziornie zaczynasz pisać. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |