Skocz do zawartości

piotr96

Użytkownicy
  • Zawartość

    15
  • Rejestracja

  • Ostatnio

Reputacja

5 Neutralna

O piotr96

  • Ranga
    2/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. 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.
  2. 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ąć:
  3. 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.
  4. Z jakiej płytki korzystasz? Projekt masz skonfigurowany na mikrokontroler F303, a kurs jest dla F103.
  5. 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ę.
  6. Dziękuję za linki, na pewno się przydadzą, zwłaszcza ostatni. Niestety, wykorzystanie rozwiązań komercyjnych raczej nie wchodzi w grę. Projekt ma charakter edukacyjny i jak najwięcej rzeczy chcę zrobić sam. Dodatkowo, w tej chwili korzystam z Xilinxa, a ostateczna wersja będzie zrealizowana prawdopodobnie na układzie innej firmy, dlatego chciałbym mieć tak przenośny kod, jak to tylko jest możliwe. Mam jeszcze średnie wyobrażenie o skali problemu - do tej pory myślałem, że po zastosowaniu bloków do zamiany sygnału różnicowego (zewnętrznego) na sygnał asymetryczny (wewnątrz FPGA) zrobię odbiorniki i nadajniki w podobny sposób do prostych, wolnych interfejsów UART, SPI, I2C, wykorzystując również jakiś blok PLL do generacji szybszego zegara. Muszę jeszcze sporo poczytać o tym .
  7. Dziękuję bardzo za wyczerpującą odpowiedź. Teraz przynajmniej mam już pewność, że niestety muszę użyć tych prymitywów.
  8. W ramach pewnego projektu muszę obsłużyć komunikację za pomocą interfejsu LVDS w układzie programowalnym FPGA (lub w zasadzie, w tej chwili, SoC). Interesuje mnie zarówno nadajnik, jak również odbiornik. Szukam materiałów na ten temat w internecie i w zasadzie jedyne co znalazłem to odpowiednie skonfigurowanie pinów i użycie prymitywów (np. IBUFDS - dla Xilinxa) w kodzie VHDL (tego języka używam). Czy jest jakaś (w miarę prosta) możliwość zastąpienia tych prymitywów własnym kodem? Nie mam pomysłu na napisanie takiego elementu, niewprowadzającego zbędnych opóźnień. Zależy mi na zapewnieniu możliwie jak największej „przenoszalności" kodu. Czy jest możliwość sprawdzenia, co tak naprawdę znajduje się w tych prymitywach (chciałbym zobaczyć, co „siedzi" w środku)? Czy może jest to po prostu fizyczny element, „zaszyty" wewnątrz FPGA? Czy jeżeli opiszę własny komponent, mający dwa wejścia (sygnały różnicowe zanegowany i nie) i jedno wyjście (które będzie po prostu podłączone do wejścia niezanegowanego lub będzie działać według załączonej tabeli zaczerpniętej z dokumentacji Xilinxa), to narzędzie do syntezy „domyśli się", że trzeba wstawić w to miejsce wejściowy bufor różnicowy? Czy nie będzie problemu z przeniesieniem projektu na inny układ (innego producenta)? Przepraszam za poziom pytań, ale pierwszy raz będę korzystał z transmisji różnicowej i nie wszystko jest dla mnie jasne. Ponadto, nie mam dużego doświadczenia z układami programowalnymi.
  9. Dlaczego potrzebne są konwertery dwukierunkowe? Nie wystarczy tylko zamiana w dół, z +24V?
  10. Dziękuję raz jeszcze za bardzo merytoryczne odpowiedzi. Dałeś mi do myślenia tymi przerzutnikami Schmitta, dlatego schematy poprawione będą później. Na razie zmieniłem wszystkie rezystory w ,,wejsciach" na 10K - powinno być chyba ok (razem ze zmianą kondensatora w filtrze RC). Do tej pory byłem przekonany, że stosując filtr RC wytnę wszystkie śmieci. Dotychczas mój projekt na tej płytce Mimas V2 (a wcześniej Elbert V2) działał z wejściami - przyciskami bez żadnych sprzętowych filtrów oraz programowej eliminacji drgań styków - każde wciśnięcie przycisku było zliczone tylko raz (mój program odczytuje stan wejść co kilkadziesiąt, kilkaset taktów zegara 12 MHz), ponadto jest to mój pierwszy projekt elektroniczny, stąd nie jestem świadomy takich zagrożeń. Myślałem, że przy narastaniu sygnału z 0V do 24V, część układu po drugiej stronie transoptora zacznie przełączać się z 0 na 3,3V i dzięki filtrowi dostanę po chwili ładną jedynkę logiczną. Czy filtr RC nie powinien kasować właśnie takich szybkich przełączeń? Czym opisywana sytuacja różni się od drgań styków (w sensie przebiegów sygnałów, generacji zboczy)? Czy powolnego narastania zboczy nie można skompensować w jakiś sposób programowo? Pytam, gdyż zależy mi z kilku powodów na możliwie najprostszej części sprzętowej, a jednocześnie działającej niezawodnie.
  11. Dziękuję bardzo za szybką i wyczerpującą odpowiedź. W obydwu układach konieczna jest optoizolacja. Co do rezystora przy LEDach - zdecydowanie mój błąd, bezmyślnie przepisałem wartość z pewnego schematu na którym się częściowo wzorowałem, nawet nie sprawdzając czy ma jakikolwiek sens. A teraz po kolei: Prąd LED jak wyżej. Prąd diody transoptora - dam większy rezystor. Wartość R4 - nie mam doświadczenia i wyrobionej intuicji w doborze wartości takich elementów, zmienię na 10k. Postaram się znaleźć później jakieś materiały na ten temat - jeżeli znasz coś przystępnego dla początkujących, to proszę o podesłanie. Rezystor na wyjściu, filtr RC - tak chodziło o stałą czasową filtra, zmienię to zgodnie z zaleceniami. Co rozumiesz przez ,,agresywne filtrowanie"? Dużą stałą czasową filtru? Myślałem, że 33 ms to nie jest wiele. Sygnał 24V pochodzi z pewnych ,,zabawek" symulujących linię produkcyjną - nie są to sygnały szybkozmienne, stała czasowa jest dobrana trochę na wyrost. Wyjście rzeczywiście powstało w bólach na bazie kilku schematów. Trochę mylnie rozumiałem działanie transoptora - trochę na zasadzie włącz/wyłącz. Oznaczenie tranzystora - byłem przekonany, że źródło w oznaczeniu to połączone ,,dwie nóżki:, a bramka jest z ,,drugiej strony" niż żródło i dren. Moją intencją było zapewnić stałe napięcie na bramce, a ,,sterować" napięciem na źródle. Tak, obciążenie włączone od wyjścia do masy. Drugi pin gniazdka na razie jest nieistotny, po prostu wziąłem taki element z biblioteki Altiuma - nie widziałem tam ,,jednoelementowego" goldpina (pewnie jest tam jakiś bardziej stosowny element, który powinienem użyć). Docelowo tych wejść i wyjść będzie po 8, tutaj przedstawiłem tylko schematy pojedynczych. Zabieram się teraz za poprawę schematów. Niedługo postaram się je wrzucić.
  12. W związku z realizacją pewnego projektu proszę o sprawdzenie dwóch załączonych schematów. Jeden, znajdujący się w pliku ,,wejscia.png", ideowo przedstawia układ do konwersji poziomów logicznych 0-24V (DC) na 0-3,3V (DC). Składa się on głównie z diody sygnalizującej poziom wysoki na wejściu (24V), transoptora oraz filtru RC. Proszę o komentarz dotyczący układu - wszelkie uwagi są mile widziane (zwłaszcza na temat ewentualnie brakujących elementów, które podniosłyby poziom ,,bezpieczeństwa" układu oraz na temat wartości elementów). Drugi dołączony rysunek przedstawia (na razie) zarys schematu odwrotnego - realizującego konwersję napięć 0-3,3V na 0-24V, z tym, że wyjście układu będzie sterowało jakimś obciążeniem (załóżmy na razie, że pobierającym maksimum 0,5-1A). Także proszę o wszelkie uwagi. Układy po stronie logiki 0-3,3V będą współpracowały z płytką Mimas V2. Z góry dziękuję za każdą odpowiedź.
  13. Na pewno łatwiej podłączyć zewnętrzną kość pamięci, ale wiąże się to z ,,utratą" kilku pinów I/O, a tak miałbym całą ,,jednostkę centralną" na jednej płytce. Nie wiem jeszcze jak rozbudowany będzie mój projekt, dlatego na razie wstępnie badam wszystkie możliwości.
  14. Dziękuję za odpowiedź. Na forum numato znalazłem wątek dotyczący innych płytek (ze spartanem 6), odpowiedź była pozytywna. Jeszcze poszukam informacji w internecie, jeżeli nic nie znajdę, to zadam tam pytanie. Potrzebuję po prostu w projekcie (sterownik PLC) pamięci nieulotnej na program wykonawczy (nawiasem mówiąc obawiam się, że i tak będę musiał zakupić inną płytkę ze względu na małe zasoby logiczne Spartan 3).
  15. Czy w płytce z kursu (Elbert v2) jest możliwe używanie pamięci Flash, zawierającej dane konfiguracyjne, we własnych programach? Jeżeli tak, to jakie adresy są ,,bezpieczne" (chodzi o niezamazywanie danych konfiguracyjnych)? W instrukcji do płytki Elbert jest napisane: Natomiast manual do Elbert v2 nic nie mówi na ten temat. (Chyba, że coś przeoczyłem). Z góry dziękuję za odpowiedź.
×
×
  • Utwórz nowe...