Włączanie samego SPI też bym wyniósł poza wszelkie konfiguracje. Czasami prowadzi to do problemów - wpisanie konfiguracji z jednoczesnym włączeniem. No i czy Twoje SPI Ma mieć 164,0625 kHz ? Jeśli tak, to polling nie jest najszczęśliwszym pomysłem :)
Idea generalnie jest prosta - jeśli po wystąpieniu przerwania będziesz chciał zrobić coś co trwa "długo", to nie robisz tego w przerwaniu, bo blokujesz tym cały program - wtedy stosujesz polling flagi programowej lub sprzętowej. Jeśli chcesz zrobić coś co trwa "krótko" lub jeśli chcesz zrobić coś co musi być zrobione "natychmiast" po wystąpieniu przerwania...
Dzień dobry, Zacząłem naukę STM32 i mam problem z USART2. Chciałem się połączyć z hyperterminalem. Od strony terminala wszystko działa poprawnie (sprawdzone przez zwarcie tx i rx). Od strony stm-a wygląda to tak, że kiedy chcę odebrać jakiś znak, to program wisi na fladze oczekującej na odebranie znaku. Natomiast kiedy chcę wysyłać, to nic się nie dzieje...
Poznałem już DMA o czym napisałem parę postów wyżej, w kontekście obsługi ADC. Właśnie taki sposób obsługi I2C jak w przypadku ADC via DMA byłby ideałem. Przy transmisji z ADC dzięki DMA nawet przez chwilę procesor nie jest wykorzystywany. Jedynie sprawdza co pewien czas czy dane z tablicy tych wyników mieszczą się w ustalonym przedziale. Przeoczenie...
Faktycznie, rozwiązanie kwestii działania SPI było dosyć proste i po sprawdzeniu - SPI działa. Odczytuję zapisany wcześniej rejestr poprawnie. Teraz mam inny problem. Poniżej zamieszczam program z pliku main.c, w którym są dodane miejsca wysyłania kolejnych numerów przez UART i program zatrzymuje mi się po wysłaniu numeru 88. Nic więcej się nie dzieje,...
To już wiem, że mam zablokowaną pamięć Flash. Chyba nawet domyślam się, że mogłem tego dokonać próbując wgrać binarkę przez vsgui dołączonym do versaloon'a. OpenOCD wypluwa: Open On-Chip Debugger 0.8.0-rc2 (2014-04-15-16:15) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/d... xsvf adapter...
Przepraszam za odkopywanie, ale po poprawieniu wszystkich błędów w programie debuger nadal nie działa. Wyświetla takie kominukaty. Error: JTAG failure -4 Error: JTAG failure -4 Error: JTAG failure -4 Error: JTAG failure -4 Error: JTAG failure -4 Error: JTAG failure -4 Error: jtag status contains invalid mode value - communication...
Dziękuję za sugestię :) Śmieszne... Trzymając przycisk RESET, odpaliłem OpenOCD i nic... Pomyślałem... Wcisnę desperacko do tego przycisk USER-> Podpięty do GPIOA PIN_0 Dioda sygnalizująca komunikację pomiędzy komputerem a płytką zaczęła migać... Odpalił się nawet mój stary program... SysTick Timer zaczął działać... Dioda zaczęła migać co sekundę......
Witam, Od 2 dni walczę z tym błędem: Invalid ACK 0x4 in JTAG-DP transaction Problem powstaje w chwili gdy jest wysyłana CTRL_STAT, który zwraca ACK = 4, taki błąd niestety nie jest nigdzie opisany jedyne wartości jakie może przyjąć ACK to ACK_OK_FAULT, JTAG_ACK_WAIT. Dlatego kieruję do Was pytanie czy ktoś, kto bardziej się orientuje w protokole JTAG-DP,...
Wersję Eclipsa mam LUNA Toolchain - bleeding-edge-toolchain 4.8 141002 W eclipse mam zainstalowany plugin GNU-ARM i za pomocą tego pluginu jest konfigurowany projekt. Niestety zwisy zdarzają się tak często że sprawdzenie głupiego uarta jest bardzo uciążliwe, a co dopiero ETH :( http://obrazki.elektroda.pl/3247323000_1... http://obrazki.elektroda.pl/6938620500_1...
Poczytałem manuala do JTAga i spróbowałem wgrać kod przez OCD. Wywołuje go z parametrami: -f scripts/interface/ftdi/jtag-lock-pick_ti... -f target/stm32f1x.cfg -c "adapter_khz 1000; reset_config trst_and_srst; init; reset init; flash write_image erase C:/ARM/project_eclipse/stm32_timer/out/s... reset run; shutdown;" Otrzymuje błędy:...
Witam Uruchomiłem USB w trybie HID na przykładzie Custom HID z ST (ten gdzie się diody zapala i przyciski sprawdza). Przerobiłem go na swoje potrzeby żeby przesyłać m.in. ramki o długości 32B. W deskryptorze urządzenia są oryginalnie dwa pola: 0x20,/* bInterval: Polling Interval (32 ms) */ które pilnują żeby transmisja była wolna ;]. W aplikacji PC...
Witam, Stworzyłem płytkę z mikrokontrolerem STM32F407. Próbowałem ja zaprogramować przykładem "blink_led" ze strony Frediego i nie chciało działać. Oprogramowanie Eclipse + bleeding toolchain + openocd 0.7.0 zostało skonfigurowane wg tutoriala Frediego na Ubuntu. Nie chciało się poprawnie programować, więc próbowałem różnych porad z internetu, ale to...
Zastosowałem się do Twoich wskazówek, porzuciłem HID na rzecz właśnie vendor specific. Posprzątałem także ConfigDescriptor i teraz wygląda tak: [syntax=c]const uint8_t ConfigDescriptor[SIZ_CONFIG_DESC] = { 0x09, // bLength: Configuration Descriptor size USB_CONFIGURATION_DESCRIPTOR_TYPE,// bDescriptorType: Configuration SIZ_CONFIG_DESC, // wTotalLength:...
Cześć! Mam problem z procesorem stm32f107, z płytki waveshare port107v. Wszystko działało dobrze, mogłem debugować, wgrywać flash etc, aż w pewnym momencie openocd przy połączeniu wyświetla mi takie błędy: Open On-Chip Debugger 0.7.0 (2013-05-05-10:41) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/d...
Chciałbym sprostować to co wcześniej napisałem przy okazji podbijając temat. Problem polega dokładnie na tym, że jakakolwiek zmiana w deskryptorach powoduje kod 10 czyli nie można uruchomić urządzenia. Kod deskryptorów: [syntax=c_loadrunner]const uint8_t CustomHID_ConfigDescriptor[CUSTOMHID_SIZ... = { 0x09, /* bLength: Configuration Descriptor...
an2824 "stm32 i2c example polling" w google Kod lekko przerobiłem, gdyż jak każdy kod z ST jest demonstracyjny a nie jako biblioteka. Ale działa, testowane jako polling i interrupt
Witam. Poskładałem Jtaga ze strony Freediego Chopina. Niestety nie mogę zaprogramować targeta(płytka HY-Mini z STM32F103VCT6). Wszystko jest konfigurowane wg tutoriala. To pokazuje mi konsola eclipse: Open On-Chip Debugger 0.5.0 (2011-08-09-23:26) Licensed under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxyge...
Witam, a więc działam sobie na płytce ZL31 z kamami, w wersji z odłączonym st-linkiem, za programator i debugger służy mi jtag-arm z andtechu, jest to urządzenie na bazie ft2232. Soft to toolchain skonfigurowany podług tutka freddiego chopina. Wszystko ładnie działało jak trzeba do dzisiaj, gdy w którymś momencie zauważyłem, że skompilowany program...
Skorzystałem z CAN example który jest w COIDE: http://obrazki.elektroda.pl/5876838600_1... bit w rejestr MSR nie chce sie wyzerować.
Sprawdziłem i faktycznie wchodzi w HardFault... W dodatku przy debugowaniu wysypują się jescze takie błedy [syntax=c] Error: MEM_AP_CSW 0x23000052, MEM_AP_TAR 0xb087b8 Error: JTAG-DP STICKY ERROR Error: MEM_AP_CSW 0x23000052, MEM_AP_TAR 0xb087b8 Warn : Block read error address 0xb087b4 Error: JTAG-DP STICKY ERROR Error: MEM_AP_CSW 0x23000050, MEM_AP_TAR...
Witam Nie potrafię tego procka zaprogramować. Miałem go na układzie z wyprowadzeniami UART1 + BOOT1 i 0 Próbowałem programować lock pickiem od freddiego (wyjście UART, bootloader) ale nic z tego (a wcześniej programowałem bliźniaczy układ STM32F103R4T6A taką samą metodą i poszło bezproblemowo). Następnie wyprowadziłem pełnego JTAGA z pinów procesora,...
Bardzo dziękuję za informacje. Posiedziałem trochę wczoraj w nocy i: moduły DMA pamiętają adresy i pozostałe ustawienia. Po zakończeniu transferu wszystko jest przywracane w rejestrach. Jeżeli coś jest stałe, to nie trzeba tego za każdym razem ładować do rejestrów (jak w programach 2 i 3); wystarczy tylko ustawić bit DMA_CCR1_EN. Podpucha :) Rejestr...
Czy ustawienie priorytetów załatwi problem czy może jest jakiś inny powód że przestało to działać? Definitywnie to drugie. Na 99% Twoje przerwania trwają zbyt długo lub użyłeś w nich (pośrednio lub bezpośrednio) funkcji blokujących/oczekujących/pollingu. Jeśli zaczniesz kombinowac z priorytetami bez zrozumienia przyczyny, to tylko wpędzisz się w więcej...
Kiedyś też korzystałem z tych libów i w zasadzie tylko jedna z opcji (polling, irq-s, dma) mi działała całkowicie - chyba irq-s. Czemu tak się działo nie wiem, niektóre pozwalały tylko na odczyt danych a nie na zapis.
Niczego nie odbierasz - nieważne czy przez polling czy w przerwaniu czy przez DMA czy jakkolwiek sobie życzysz - układ MAX-485 masz przestawiony na nadawanie. Odpowiedź przychodzi w czasie Twojego delaya. Jeśli wiesz lepiej gdzie jest problem niż kilka osób (mówiących o tym samym problemie), to w sumie po co pytać na forum?
A i zrobiłem tak, że nadaję za pomocą DMA oraz odbieram pollingiem Sposób który wybrałeś jest po prostu z założenia zły. Nadając przez DMA osiągniesz max możliwą do uzyskania prędkość. Odbiór przy pomocy pollingu zwykle nie ma prawa w takim przypadku działać, bo kod który go realizuje jest fizycznie zbyt wolny żebyś w końcu nie trafił na overrun (oczywiście...
Po podłączeniu dostaję takie błędy od OpenOCD: Open On-Chip Debugger 0.5.0-dev (2011-06-07-18:11) Licensed under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxyge... Info : only one transport option; autoselect 'jtag' 1000 kHz adapter_nsrst_delay: 100 jtag_ntrst_delay: 100 #0 : stm32.flash...
Mam problem a jestem trochę dziewicą w temacie. Zrobiłem sobie płytkę developerską na STM32F205. Zrobiłem ja tak, że po prostu podłaczyłem piny zasilania układu do 3,3V, masy - do masy, BOOT0 do masy, kondensatorki dałem zgodnie z manualem do kostki, złacze J-TAG zgodnie z opisem Freddiego, popodpinałem jego piny do odpowiednich pinów na kostce i właczyłem...
Witajcie, mam problem z HID-em w STM32F103VB. Chce wysłać więcej bajtów niż, jeden tak jak jest to w przykładach do stm-a. Interesuje mnie transfer z PC->STM. Mój problem polega na tym, że po skonfigurowaniu mikro kontrolera i próbie wysłania pakietu za pomocą SimpleHIDwrite, program wypisuje mi komunikat: "WRITE ERROR: Urządzenie dołączone do komputera...
Czy naprawdę stałaby Ci się krzywda jakbyś jednak poszukał czegoś na forum? Wciąż pytasz o rzeczy które już były wielokrotnie poruszone, oczekując że wszystko dostaniesz na tacy. Ja wiem że teraz studia wyglądają trochę inaczej, ale bez przesady... http://lmgtfy.com/?q=stm32+podgl%C4%85d+... Oczywiście PIERWSZY wynik... No tak w ostatnim...
Witam, Jestem dość początkujący jeśli chodzi o STMy dlatego proszę o wyrozumiałość. Do pamięci flash procesora wrzuciłem kod, który prawdopodobnie zawiesza procesor. Od tego momentu nie mogę się połączyć z uC używając OpenOCD. Komunikat j/n: D:\ARM\openocd-0.5.0\bin>openocd-... -f interface/olimex-arm-usb-ocd.cfg - f target/stm32f1x.cfg...
Skompilowałem openocd wydając polecenia: ./configure --enable-parport --enable-parport_ppdev make Przełączyłem się nawet na konto root'a ale dalej to samo. EDIT: Spróbowałem skompilować z opcją: ./configure --enable-parport --disable-parport_ppdev Jednak teraz wywala: Open On-Chip Debugger 0.5.0 (2012-01-31-14:10) Licensed under GNU GPL v2 For bug reports,...
Zacznij od zrobienia tego na pollingu, czyli w pętli while(1), bez przerwań, ale z poprawnym odczytywaniem flag TXE i RXNE przed zrobieniem czegokolwiek. Proponuje więc wrzucić do tej pętli coś takiego: [syntax=c]if ((USART3->SR & USART_SR_RXNE) != 0) { uint16_t x = USART3->DR; while((USART3->SR & USART_SR_TXE) == 0); USART3->DR = x; }[/syntax] Tym...
Czemu nie użyjesz nowszego OpenOCD i domyślnych plików konfiguracyjnych? Odpowiedź jest prosta - bo i tak nie ma tam plików konfiguracyjnych od STM32W108xx, a te od STm32F10xxxx nie działają. Wersja OpenOCD, którą mam - działała na pewno przez SWD (ale z MCU NXP). Niestety - jeśli próbowałem się połączyć przez samo SWD - efekt był żaden. Dopiero dopięcie...
wiem, ze 100 razy szybciej napisałbym sobie to od zera, ale trzeba poznać HALA i widzę, ze będzie to droga przez meke :( A po co w ogóle się męczyć? W repozytorium CubeMX (można też to ściągnąć osobno) masz gotowe przykłady jak obsługiwać I2C w HAL w różnych trybach poczynając od prostego pollingu przez przerwania i DMA. I to dokładnie na Twoją płytkę....
Pasma 40 MHz nie, ale 40 Msps mam nadzieję że tak. Tylko chciałbym się dowiedzieć który sposób (bez stosowania dodatkowych zewnętrznych układów) będzie najszybszy. Ale przecież podaliśmy jeden sposób :) DMA na timerze. Odczytywanie wejść + zapis do tablicy + inkrementacja wskaźnika jest z automatu, a w pollingu tracisz czas na wykonanie kilku rozkazów....
Otwórz konsolę, wpisz `telnet localhost 4444` a następnie spróbuj np. polecenia `halt`, `poll`, `flash info 0` i zobacz co ciekawego wyświetli. ~$ telnet localhost 4444 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Open On-Chip Debugger > halt > poll background polling: on TAP: STM32F103C8Tx.cpu (enabled)...
(at)Piotrus_999 Te tajemnicze biblioteki są dostępne w internecie od ponad 10 lat bo sam używałem ich do pracy magisterskiej. Użycie google pozwoli Ci rozwikłać ta zagadkę. (at)Soberro Według mnie masz problem z problem z obsługą przerwań od przycisku. Byćmoże robisz tam coś czego nie powinieneś. Bez kodu nie da się więcej powiedzieć. Powinieneś zrezygnować...
Dzień dobry, Nie mogę sobie poradzić z zaprogramowaniem stm32f4 na płytce discovery. Do programowanie używam wbudowanego st-lika. Mój system to Ubuntu 10.04. Program jaki chciałbym wgrać to przykład ze strony Freddiego Chopina pod tą właśnie płytkę. Jedyne co zmieniłem to w Makefile'u toolchain na arm-linux-gnueabi (linaro). Ogólnie program się niby...
A pamiętasz o tym, że czas zapisu dla tej pamięci wynosi do 5ms (przy zapisie bajtu lub bloku 4 bajtów). Czyli jeżeli nie stosujesz odpytywania (pollingu) o gotowości, to nie możesz zapisywać z większa częstotliwością niż 200Hz. Cytat z karty katalogowej: If the device is busy with the internal Write cycle, no Ack will be returned Pozdrawiam JarekC
Bez zmian. openocd -f /home/sulfur/openocd-0.6.1/share/openocd... -f target/stm32f1x.cfg -c "adapter_khz 1; reset_config trst_and_srst; init; reset init;" Open On-Chip Debugger 0.6.1 (2012-10-12-19:56) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/doxyg... Info : only one transport...
Męczę bibliotekę USB z ST. I zaciąłem się w jednym miejscu, chciałem przestawić długość danych z 8 bitów na 16 bitów jednak wydaje mi się że biblioteka nie bardzo chce z takimi danymi współpracować. Może miał ktoś z was podobną zagwozdkę? A może ktoś będzie umiał mi pomóc? Na razie próbowałem zmienić rozmiar wysyłanych danych przez edycję Deskryptorów...
co ma prędkość procesora do programu, który pewnie większość czasu spędza w pollingu: Nie przeczytałeś mojego postu. Pisałem, że to nie to. Nawet zrezygnowanie z wywołania funkcji hwSpi() nie powoduje, że STM staje się nagle szybszy od PIC'a. Zresztą w wersji na PIC też mam to SPI, w dodatku zaimplementowane software'owo i wszystko się wyrabia (!)....
Witam, Próbuje uruchomić przykład oparty na bibliotekach ST (obsługa karty SD przez SDIO), niestety przykład nie do końca działa. Wszystko jest ok do momentu wejścia do funkcji: SD_Error FindSCR(uint16_t rca, uint32_t *pscr) w której program zawiesza się na następującym elemencie: [syntax=c] while (!(SDIO->STA & (SDIO_FLAG_RXOVERR | SDIO_FLAG_DCRCFAIL...
Witam, Od jakiegoś czasu zmagam się z komunikacją SPI pomiędzy dwoma procesorami stm32l452re. Transmisją i odbiorem danych zajmują się oba procesory. Wysyłam 6 bajtów po 16 bitów, co daje nam sumarycznie 3 przerwania. W taskach od FreeRtosa transmisja danych i sprawdzanie otrzymanych bajtów odbywa się w nieskończonej pętli while. Problem dotyczy tego,...
To co napisałem to wiem po co od razu taka uszczypliwość , timery wykorzystuje do sterowania pinem CSN i CE chyba że powiesz mi jak to lepiej zrobić to zamieniam się w słuch, ok same flagi może trochę zaciemniają obraz bo brak do nich komentarzy, po krótce wygląda to tak. -gdzieś w programie wywołuje sobie softwerowo przerwanie od pinu IRQ -w przerwaniu...
shy_moonŁ Taaak, w typowym przemysłowym urządzeniu UARTy otwiera się i zamyka dynamicznie, najlepiej przez system plików, i co 15 sekund zmienia się szybkość każdego UARTa i format danych/parzystość. Z tego to powodu MUSIMY mieć koniecznie jedną uniwersalną procedurę z czterema parametrami do inicjowania dowolnego UARTa na dowolną szybkość i format...
Ale jak program może opuścić funkcję obsługi przerwania, będąc wewnątrz funkcji TM_I2C_ReadMulti?[syntax=c]void SysTick_Handler(void) { L3GD20H_read_rates(&xrt, &yrt, &zrt); LSM303D_read_acc(&x, &y, &z); if(!(sys_utime % 8)) LSM303D_read_mag(&mx, &my, &mz); IRQflag = 1; sys_utime++; gps_utime++; }[/syntax] [syntax=c]void...
I2C ma pewne ograniczenia opisane w erracie, obsługę odbioru chyba najlepiej zrobić w DMA. Jest pdf opisujący obsługę I2C [url=http://www.st.com/internet/com/TECH... STM32F10xxx I²C optimized examples Poniżej wklejam swój kod funkcji odbioru oparty o polling, bazuje ona na...
przerwania polling przerwać polling stm32 f103rb
nforce2 windows zamiennik cdm12 sygnał dekodera komputerze
pralka gorenje ktora dobra pralka gorenje opinie
BMW F10 – czy instalacja lewej lampy pasuje do prawej? Różnice wiązek, kodowanie, TMS Temperatura pieca do podgrzewania wody – optymalne ustawienia CWU, Legionella, zawory mieszające