Maciej G.

Maciej G. Projektant /
Programista, Famor
S.A.

Temat: Maximator - problem z sygnałem wyjściowym na złączu Arduino

Cześć,

przeniosłem projekt sterownika rolet na płytkę FPGA Maximator i napotkałem tu "dziwny" problem. Nie mam syganłu na wyjściach (chodzi mi tu głównie o wyjście sygnału PWM). Sprawdzałem to tym samym oscyloskopem co przy płytce "Elbert V2" gdzie wszystko jest OK. Zmieniałem położenie pinu ale problem nadal istnieje.

Gdy "wypnę" z płytki Maximator "maximator ekspander" to na tym samym wyjściu mam sygnał pwm, ale jest on mocno odkształcony. Gdy włoże do maximatora ekspander nie mam sygnałów na wyjściach. Próbowałem z pinami "G16" i "F16" (z wyjść na gniazdach Arduino).

Piny wyjściowe mam w "pin planner" ustawione na "3.3-V LVTTL".

Czy ktoś może wie, co może być tego przyczyną (może jakieś podejrzenia, które mogą pomóc)?

Jeszcze jeden problem: programator Maximatora resetuje mi często przez złącze USB kompa (błąd kernela Windows 10), na tym samym złączu USB Elbert, Arduino, STM32 i inne urządzenia nie powodują żadnych kłopotów.

PozdrawiamTen post został edytowany przez Autora dnia 30.09.17 o godzinie 09:47
Jakub Tyburski

Jakub Tyburski Asystent dydaktyczny
- Wojskowa Akademia
Techniczna w War...

Temat: Maximator - problem z sygnałem wyjściowym na złączu Arduino

Spokojnie - przy zasilaniu z USB z komputera to norma - sam tak miałem jak podłączałem chociażby wyświetlacz HD44780 - wtedy pomimo prawidłowego podłączenia kontrast był tak lipny, że szkoda gadać. Mało - zauważyłem, że przy programowaniu na chwilę wyświetlacz ciemniał i tekst był wyraźniejszy czyli, że zasilanie było odcinane do wielu rzeczy na płytce (w tym od expandera jak był podłączony). Krótko mówiąc zapewne jako elektronik sam się domyślasz - poprzez USB z komputera płytka ma za małą wydajność prądową. Stąd też spróbuj ją zasilić, ale z innego źródła (USB ale nie z komputera) Tak samo miałem przy zestawie Terasic DE1 (podłączyłem zewnętrzny zasilacz przy takiej samej sytuacji i problem zniknął). Co do programatora - spokojnie. Spróbuj przeinstalować sterowniki, a jak to nie pomoże to spróbuj to wywalić i wgrać np: starszą wersję, a zaraz po niej nowszą, na której działasz (czasem taki trik pomaga, jako że wtedy płytka widziana jest niejako poprzez starsze oprogramowanie i niejako wyzwala to jej widoczność w nowym - tak wiem brzmi to wyjątkowo nieudolnie, ale czasem zdarzają się takie cuda).Ten post został edytowany przez Autora dnia 30.09.17 o godzinie 11:31
Jakub Tyburski

Jakub Tyburski Asystent dydaktyczny
- Wojskowa Akademia
Techniczna w War...

Temat: Maximator - problem z sygnałem wyjściowym na złączu Arduino

Aha - i jeśli ci niepotrzebne 3,3V (bo np: nie podłączasz do Arduino) to nie używaj tego - zamiast tego używaj "default" 2.5V. Te 3.3V to tylko potrzebne wtedy gdy chcesz zachować kompaybilność z takim Arduino czy innymi płytkami co operują na takich napięciach. To też może zmniejszyć ewentualne zniekształcenia. I broń Boże nie stosuj tego 3.3V do expandera (expander takich napięć nie wymaga - to że ma złącze Arduino to nie znaczy, że zachowane są tu poziomy napięć - to tylko po to, aby pasowało do płytki po prostu - poza tym taki użytkownik to się zaraz by zniechęcił gdyby wiedział, że jeszcze musi poziomy napięć ustalać).Ten post został edytowany przez Autora dnia 30.09.17 o godzinie 11:03
Maciej G.

Maciej G. Projektant /
Programista, Famor
S.A.

Temat: Maximator - problem z sygnałem wyjściowym na złączu Arduino

Jakub T.:
Aha - i jeśli ci niepotrzebne 3,3V (bo np: nie podłączasz do Arduino) to nie używaj tego - zamiast tego używaj "default" 2.5V. Te 3.3V to tylko potrzebne wtedy gdy chcesz zachować kompaybilność z takim Arduino czy innymi płytkami co operują na takich napięciach.

Podłączam FPGA do mostka MOSFET sterującego silnikiem dlatego potrzebuję 3.3 V (mostek z Elbert v2 i podłączonym silnikiem działa poprawnie)

Pozdrawiam.
Jakub Tyburski

Jakub Tyburski Asystent dydaktyczny
- Wojskowa Akademia
Techniczna w War...

Temat: Maximator - problem z sygnałem wyjściowym na złączu Arduino

No jeśli jako konstruktor tak przyjąłeś, że całość ma być zgodna z 3.3V to ok nie ma sprawy - wtedy tak. Natomiast bez poważniejszej potrzeby 2.5V wystarcza. Tylko ten - zwróć uwagę czy to jest LVCMOS czy LVTTL jeszcze, żeby ewentualnych problemów nie było (będą różne progi napięciowe tak jak tu jest dla przykładu to przedstawione: http://www.interfacebus.com/voltage_LV_threshold.html - i jak same nazwy wskazują: to pierwsze jest do układów CMOS, drugie bardziej do układów TTL - ale to tak na boku na przyszłość, bo jednak to ma znaczenie przy obsłudze wybranych zewnętrznych układów czy płytek, ewentualnie może mieć, ale nie musi w przypadku takich rzeczy jak twój mostek).Ten post został edytowany przez Autora dnia 30.09.17 o godzinie 12:10
Maciej G.

Maciej G. Projektant /
Programista, Famor
S.A.

Temat: Maximator - problem z sygnałem wyjściowym na złączu Arduino

Podłączyłem zasilacz 2,5 A do zasilania Maximatora, mam teraz sygnał prostokątny na pinie (nie pwm, 1 MHZ z dzielnika) z włożonym expanderem. Sygnał jest dość mocno zniekształcony (sygnał z wyjść Elberta miał "ładne" zbocza i nie był zniekształcony). Podłączę do mostka MOSFET i zobaczę, czy będzie działać.

Pozdrawiam..
Jakub Tyburski

Jakub Tyburski Asystent dydaktyczny
- Wojskowa Akademia
Techniczna w War...

Temat: Maximator - problem z sygnałem wyjściowym na złączu Arduino

No a nie mówiłem, że starczy zmienić źródło zasilania na wydajniejsze po względem prądowym :) I już masz załatwiony temat - miej to zawsze na względzie jako że płytki nie są projektowane jeśli chodzi o wbudowane źródła zasilania do nie wiadomo jakich wydajności (tak to by ich ceny były za wysokie i nikt by nie chciał tego kupować). Natomiast co do zniekształceń to spokojnie - po prostu jako konstruktor musisz do tego się przyzwyczaić, że przenoszenie jednego projektu z jednego zestawu na drugi to nie to samo co portowanie kodu z jednego komputera na drugi (czy też z jednej platformy do drugiej) - musisz zrzucić przyzwyczajenie i z Elberta i z programisty. A wiem co mówię, bo sam tak parę razy miałem i musiałem i tak dostosowywać projekty minimalnie na inne zestawy (bo np: przyciski były odwrócone, albo w ogóle inne zegary albo właśnie wyjścia inaczej poobciążane i odbicia zaraz były). Tak więc to nie jest taka łatwa sprawa, że skompilujesz kod i już - tu już trzeba być elektronikiem jednak :) W każdym razie wracając do zniekształceń: jeśli nie są nie jakieś specjalnie wybitne i nie wpływają na działanie to to zostaw - a jeśli nie tego to dorób "dopasowanie" ala np: bramka Schmitta i tyle) :) Oczywiście zakładam przy tym, że oscyloskop ma wystarczające próbkowanie, a wpływ sondy pomiarowej jest znikomy (zwłaszcza jak mówisz, że przy Elbercie problemów nie było).Ten post został edytowany przez Autora dnia 30.09.17 o godzinie 14:11
Jakub Tyburski

Jakub Tyburski Asystent dydaktyczny
- Wojskowa Akademia
Techniczna w War...

Temat: Maximator - problem z sygnałem wyjściowym na złączu Arduino

Swoją drogą aż mi się przypominają warsztaty z Nucleo i STM32 - otóż jeden kod nie działał i wszyscy uczestnicy w tym ja dociekaliśmy o co chodzi. Po 2 godzinach wyszło, że facet napisał kod, ale na swoją płytkę, na której owszem był ten sam rodzaj mikroprocesora STM32 co do joty (te same dokładnie oznaczenia), ale były wcześniej dokonane nieznaczne przeróbki przez niego (nie pamiętam już jakie, ale były). W ten sposób całość szlag trafił i prowadzący nie wiedział jak już nas wszystkich przeprosić za przeoczenie tak oczywistej sprawy. Na innych warsztatach zaś były dołączone płytki ze wzmacniaczami różnicowymi, które dopinało się do Nucleo - w tym przypadku wyszło, że producent zawinił temat, bo jednemu uczestnikowi taki zestaw się trafił, że pomimo poprawnego postępowania i tak nic nie działało - potem wyszło, że jeden rezystor nie został umieszczony i całość też szlag trafił. Jaki z tego wniosek? Że po pierwsze trzeba za wszelką cenę walczyć z przyzwyczajeniami i unikać pojęcia "oczywistość, oczywisty" (w końcu dla prowadzącego z pierwszych warsztatów przeróbki były "tak oczywiste", że on sam o nich zapomniał w ogóle), a po drugie o przetestowaniu kodów na zestawach, które się ma pod ręką zanim to coś się komuś pokaże :) To też pokazuje, że programowanie elektroniki to nie to samo co pisanie programu na platformy czy systemy (a niestety większość uczestników szkoleń raczej przyzwyczajona do tego drugiego, a nie pierwszego, choć się nie dziwię - w tym naszym języku niefortunnie z lenistwa przyjęto to "programowanie" do elektroniki, choć tak nie powinno być, zwłaszcza, że za granicą to mówią raczej o "implementacji" i tam jest rzeczywiście rozróżnienie na "programowanie" do aplikacji systemowych i platformowych (ewentualnie chodzi też o wgrywaniekodu do pamięci) i "implementację" co do układów fizycznych - w naszym języku jak dotąd nie doszło do wykrystalizowania tego rozróżnienia i ludzie potem mają problem ze zrozumieniem właśnie tego całego FPGA czy w ogóle mikroprocesorów i układów programowalnych. Mnie co prawda powiedzieli o takim rozróżnieniu na uczelni (i tak miałem tematy na prace dyplomowe sformułowane, że "implementacja", a nie "programowanie"), ale to mnie powiedzieli, a nie reszcie ludzi).Ten post został edytowany przez Autora dnia 30.09.17 o godzinie 14:41
Jakub Tyburski

Jakub Tyburski Asystent dydaktyczny
- Wojskowa Akademia
Techniczna w War...

Temat: Maximator - problem z sygnałem wyjściowym na złączu Arduino

Wiem co prawda, że ten wątek nie jest od niuansów językowych w technice, no ale też i to ma ogromne znaczenie przy szybszym rozumieniu pewnych rzeczy - takich analogicznych przykładów można wskazywać wiele jak w przypadku "programowania" i "implementacji" przy FPGA. Klasycznym takim przykładem jest "sprawność" urządzenia, a jego "zdatność" - okazuje się, że powinno się mówić "zdatność" na określenie czy urządzenia działa, a nie "sprawność" bo to drugie ma oznaczać bardziej "wydajność" tak jak w fizyce, że masz stosunek użyteczności do całości (co innego natomiast uważa wojsko i związana z tym anegdota, gdzie jeden z dowódców wydał rozkaz żołnierzowi, aby sprawdził czy radiostacja jest "sprawna" - ten oczywiście go zapytał czy ma na myśli "zdatność", a ten, że "co to ***** ma za znaczenie - sprawny czy zdatny to to samo w znaczeniu, że działający czy nie działający"). Niby nic, ale powiem szczerze, że dopiero po tym zrozumiałem, że odkąd zacząłem używać słowa "zdatny" szybciej zrozumiałem co kto ma na myśli (tj. czy interesuje go tylko działanie czy też jednak i wydajność urządzenia). Inny przykład, tym razem z techniki cyfrowej: "stan", a "poziom" logiczny- to też nie jest to samo - stan bowiem jest abstrakcyjny, umowny i ma tylko służyć do określenia właściwości danego układu w danej chwili (typu, że prąd nie płynie czyli układ jest zatkany, a tym samym odznacza się wysoką impedancją), natomiast poziom związany jest już ściśle z napięciami (skoro wysoka impedancja to na wyjściu będzie takie napięcie czy właśnie jego poziom, żeby rzeczywiście przez ten układ nie płynął prąd, a tym samym aby był zachowany stan wysokiej impedancji - a jaki ma być ten poziom - można się albo umówić, albo będzie to wynikało z zastanych okoliczności). Więc pamiętaj - to też jest ważne i tego nie bagatelizuj , zwłaszcza komuś tłumacząc różne zagadnienia, w tym FPGA czy ogólnie technikę cyfrową, nawet jeśli to "oczywiste" dla ciebie :) Ale to też tak na boku :)Ten post został edytowany przez Autora dnia 30.09.17 o godzinie 15:03
Jakub Tyburski

Jakub Tyburski Asystent dydaktyczny
- Wojskowa Akademia
Techniczna w War...

Temat: Maximator - problem z sygnałem wyjściowym na złączu Arduino

Możesz wydrukować i na ścianę powiesić taki oto mój cytat, będący swego rodzaju podsumowaniem czy też "clue" rozważań językowych: "Język człowieka jest jak protokół, tylko bardziej złożony i niejednoznaczny - sporo równoważnych komunikatów o różnych strukturach pól, żeby osiągnąć dane pojedyncze zamierzenie. Słowem jedno wielkie marnotrawstwo".Ten post został edytowany przez Autora dnia 30.09.17 o godzinie 15:32

Następna dyskusja:

Komunikacja SPI -> Arduino ...




Wyślij zaproszenie do