Skocz do zawartości

piotr96

Użytkownicy
  • Zawartość

    25
  • Rejestracja

  • Ostatnio

Reputacja

8 Neutralna

O piotr96

  • Ranga
    3/10

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Dziękuję za odpowiedź i zainteresowanie. Tak, interfejs sterujący to SPI. Tu myślę, że sprawę mam opanowaną w zakresie komunikacji – jest 128 rejestrów 16 bitowych, potrafię odczytać i zmienić ich wartość. Pewności, że to co wysyłam jest odpowiednie, nie mam. Na razie chcę otrzymać najprostszy obraz, przy domyślnych ustawieniach (jedynie zmieniam wartości kilku rejestrów SPI oznaczonych w dokumentacji jako FIXED – zrozumiałem, że po uruchomieniu trzeba zmienić ich wartości). Zegar dla linii LVDS (tylko 16 z 64 używam) taktuję częstotliwością 600 MHz, maksymalną dopuszczalną, czasem mam problem z odbiorem danych, ale myślę, że nieistotny (i nie zawsze występujący), ponieważ w sytuacji wysyłania obrazu (wzorca) testowego otrzymuję prawidłowe wartości pikseli. Myślę, że parametry elektryczne powinny być zachowane, chociaż PCB dla czujnika nie projektowałem, ale widziałem schemat i był raczej poprawny, mierzyłem wszystkie napięcia i mieściły się w zakresach (jednak występowały trochę dziwne sytuacje, które jednak zostały uznane przez osobę nadzorującą projekt za poprawne). To może być jakiś trop, ponieważ płytka była chyba projektowana dla starszej wersji czujnika. Przeanalizuję jeszcze raz schemat. Wykorzystuję układ Zynq na płytce Zedboard. Wartości pikseli przekazuję poprzez AXI DMA (2 moduły, tryb Scatter-Gather) do procesora ARM, stąd dopiero przesyłam poprzez UDP do komputera (dzielę na pakiety, dodaję numer ramki obrazu i numer pakietu UDP) i wyświetlam we własnej aplikacji napisanej w Qt. Przesyłam tylko część ramek ze względu na duży ich rozmiar i problemy z biblioteką LWIP (przez UDP uzyskuję jedynie przepustowość ok. 200 Mb/s, maksymalnie udało mi się uzyskać 650 w czasie braku działania DMA).
  2. Podłączę się pod temat z innym pytaniem. Robię projekt z czujnikiem CMOSIS CMV12000, przy próbie odczytu obrazu dostaję dziwne wartości pikseli, niezgodne w żaden sposób z rzeczywistością, niezależne w żaden sposób od oświetlenia itp. Obraz w zasadzie jest szary. Jeżeli zmienię wartość jednego rejestru czujnika, tak, żeby wysyłał wzorcowy obraz, to wówczas otrzymuję poprawne dane. Zmiana cyfrowego wzmocnienia powoduje, że obraz staje się inny (np. czarny), ale nadal nie odwzorowuje rzeczywistości. Czy macie może pomysł, co może być przyczyną takiego zachowania się czujnika? Piksele odbieram w standardowym trybie 10 bitów, a do wyświetlenia używam najstarszych 8 bitów.
  3. Nie możesz w jakiejś zmiennej przechowywać informacji, czy muzyka jest uruchomiona (ewentualnie inaczej to sprawdzać) i na tej podstawie uruchamiać odpowiednią metodę play() lub pause() w jednej metodzie klasy Button (zastępującej metody pauzowanie() i granie())?
  4. Ale czemu „In"? In odnosi się do konfiguracji pinu jako wejście, a w Twoim przypadku to nadal będzie wyjście, czyli "Out". Zerknij na przykład na to: http://www.handsonembedded.com/stm32f103-spl-tutorial-2/ W tym linku jest przykład sterowania diodą aktywną stanem niskim, wyjście jest nadal skonfigurowane w trybie Push-Pull.
  5. A możesz rozwinąć jakie masz wątpliwości? W trybie Push-Pull można wymusić zarówno wysoki, jak również niski stan wyjścia.
  6. Ja nie jestem zbytnio doświadczony w kwestii interfejsów komunikacyjnych, ale mam jedno pytanie. Próbowałeś może zmienić długość słowa interfejsu SPI z 8 bitów na 16? Chodzi mi o to, żeby nie było przerwy w generowaniu zegara pomiędzy bajtami – chociaż chyba to bez znaczenia, ale zawsze możesz sprawdzić, nie zaszkodzi.
  7. Dziękuję za wskazówkę, spróbuję jakoś wykorzystać to narzędzie. Oferty z aliexpress miały charakter poglądowy, moja płytka i czujnik mogą się nieco różnić - ja raczej nic nie będę zdejmował, muszę zamocować obiektyw na to, co mam.
  8. Tak, chcę przymocować obiektyw do tej płytki z czujnikiem.
  9. Dziękuję za odpowiedzi. @Treker Ja sam dokładnie nie wiem, w tym jest główny problem. Linki do podobnych „zestawów" (czujnik CMOS image sensor + obiektyw): https://pl.aliexpress.com/item/32777588909.html https://pl.aliexpress.com/item/4000076997519.html?spm=a2g0o.productlist.0.0.4e467ce1clsjLk&algo_pvid=204936c7-fc4c-4ec9-b4b3-052ee294630c&algo_expid=204936c7-fc4c-4ec9-b4b3-052ee294630c-39&btsid=80adc723-74e6-492e-8530-8aa891c97053&ws_ab_test=searchweb0_0,searchweb201602_1,searchweb201603_55 @Gieneq Tak myślałem, muszę kombinować inaczej.
  10. Nigdy nie miałem styczności z drukiem 3D, a muszę wykonać tą metodą mocowanie do obiektywu. Patrzyłem na kilka ogłoszeń z AliExpress z gotowymi zestawami, ale nadal nie wiem jak to zrobić. Mam taką płytkę z czujnikiem (nie mojego projektu): Posiadam obiektyw z gwintem M42, który muszę jakoś zamocować do tej płytki. Czy ma ktoś może pomysł jak powinno wyglądać w miarę solidne, „mające ręce i uszy" mocowanie? Na razie w programie Fusion 360 narysowałem sam gwint (wewnątrz, średnica zewnętrzna tego „okręgu" to 50 mm - wartość „z sufitu"), umieściłem go mniej więcej po środku czujnika. Ale nie wiem, czy nie będzie problemem, że „okrąg" nachodzi na otwory przeznaczone (chyba) na śrubki? Ponadto zastanawia mnie to, że odległość między czujnikiem a jedną z krawędzi płytki wynosi tylko 4 mm, wydaje mi się to trochę mało, przykładowy „okrąg" wychodzi poza obrys. Czy na podstawie tych informacji, ktoś mający jakieś doświadczenie z drukiem 3D może mi wyjaśnić, jakie mocowanie do obiektywu przewidywał autor PCB? Z góry dziękuję za każdą wskazówkę.
  11. Jeśli chodzi Ci o opis biblioteki StdPeriph dla Twojego mikrokontrolera, to zapoznaj się z tym dokumentem: https://www.st.com/content/ccc/resource/technical/document/user_manual/d1/02/f0/b6/1a/8a/43/de/DM00068049.pdf/files/DM00068049.pdf/jcr:content/translations/en.DM00068049.pdf Jeżeli chcesz zapoznać się z rejestrami stma, to odpowiedni będzie reference manual.
  12. Ogólnie w dokumentacji (F303) masz taki rysunek: W dokumentacji F103 (takiej, jak w kursie) masz inny rysunek: Możesz jeszcze zajrzeć do dokumentu opisującego różnice między seriami: https://www.st.com/content/ccc/resource/technical/document/application_note/8e/c8/8d/e3/ee/ff/44/e6/DM00073522.pdf/files/DM00073522.pdf/jcr:content/translations/en.DM00073522.pdf Znajdziesz tam na przykład takie informacje: Twój kompilator zresztą Cię o tym poinformował: Po prostu powinieneś wstawić AHB w miejsce APB2 w kodzie programu. To powinno zlikwidować pierwszy błąd. (Przyznam szczerze, że nie chce mi się szukać dlaczego funkcja ma w nazwie AHB zamiast AHB2 - możesz poszukać.) Mam nadzieję, że z kolejnymi błędami sobie poradzisz. Decydując się na przerobienie zadań z kursu na innym niż dedykowanym zestawie, musisz liczyć się z tego typu różnicami pomiędzy różnymi seriami stmów. Przez pomyłkę poniższy rysunek dodał się dwa razy - nie umiem go usunąć:
  13. To w takim razie musisz zajrzeć do dokumentacji swojego mikrokontrolera lub poszukać odpowiednich przykładów. Na przykład w Twoim przypadku szyna, do której podłączony jest port GPIOA, nie nazywa się APB2 - pewną wskazówkę masz w komunikatach kompilatora u dołu programu (AHB). Analogicznie, w używanym przez Ciebie sprzęcie mogą nie istnieć pewne tryby (GPIO_mode) działania pinów układu, które istnieją w F103.
  14. Z jakiej płytki korzystasz? Projekt masz skonfigurowany na mikrokontroler F303, a kurs jest dla F103.
  15. Dziękuję raz jeszcze, pewnie skorzystam z możliwości testów, ale najpierw spróbuję sam coś uruchomić. Akurat, niestety, Intel nie wchodzi w grę.
×
×
  • Utwórz nowe...