ATNEL tech-forum
https://forum.atnel.pl/

STM32 WS2812 Pomoc
https://forum.atnel.pl/topic20533.html
Strona 1 z 1

Autor:  lukas12 [ 31 mar 2018, o 16:58 ]
Tytuł:  STM32 WS2812 Pomoc

Witam, od dłuższego czasu próbuje bezskutecznie sterować diodami WS2812, przykłady na AVR zawszę sięgają ze wstawek Asemblera.
Posiadam STM32F070, moim problemem jest to że potrzebuję pomocy jak za pośrednictwem DMA sterować wyjściem na pinie. Przy pomiarze ADC użycie DMA jest proste, jednak jak to zrobić żebym miał na wyjściu przebiegi o długości 400 ns i 800 ns ?
Po skorzystaniu z biblioteki z http://www.martinhubacek.cz/arm/improve ... 2b-library udało mi się na taśmie zapalić jedną diodę. Jednak implementacja do zapalenia całości jest zbyt trudna.
Znalazłem jeszcze sposób z https://www.bitcraze.io/2014/04/neopixe ... ies-stm32/ - jednak bardzo trudno jest zaimplementować do aktualnej biblioteki HAL.

Czy ktoś może przerabiał temat i byłby w stanie mi w jakikolwiek sposób pomóc ?
Z góry dziękuję.

Autor:  krish [ 31 mar 2018, o 17:24 ]
Tytuł:  Re: STM32 WS2812 Pomoc

W EP może coś znajdziesz:
https://ep.com.pl/artykuly/9736-_bity_jak_najprosciej_cz_STMF_plytka_eksperymentalna_z_mikrokontrolerem_STMFF.html

Autor:  Zealota [ 31 mar 2018, o 20:01 ]
Tytuł:  Re: STM32 WS2812 Pomoc

https://www.elektroda.pl/rtvforum/viewt ... highlight=
Znajdziesz kompletne, nieblokujące sterowanie wykorzystujące SPI DMA oraz zewnętrzne bramki nand, które będą służyły m.in. jako dopasowanie poziomu napięć.

Autor:  dario [ 31 mar 2018, o 20:43 ]
Tytuł:  Re: STM32 WS2812 Pomoc

topic18998.html#p193413
W tym miejscu znajdziesz dokumentację którą ściąga STM32Cube w czasie kompilacji Może w niej znajdziesz to czego szukasz. Polecam jeszcze kurs na FORBOT odnośnie STM32.

Autor:  lukas12 [ 1 kwi 2018, o 22:26 ]
Tytuł:  Re: STM32 WS2812 Pomoc

Postanowiłem wykorzystać STM32F072 oraz dopasować kod odpowiednio z elektrody, niestety na żadnym z wyjść nic się nie generuje :(
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  ps19 [ 2 kwi 2018, o 12:29 ]
Tytuł:  Re: STM32 WS2812 Pomoc

Tutaj miałeś namiesane, dalej jeszcze nie sprawdzałem. Dodałem kilka przydatnych definicji.
Przeczytaj str 158 http://www.st.com/content/ccc/resource/ ... 031936.pdf

To masz napisane dlaczego dla m.in MODER masz numer portu*2 (Bits 2y+1:2y)

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  lukas12 [ 2 kwi 2018, o 15:49 ]
Tytuł:  Re: STM32 WS2812 Pomoc

Dzięki za poradę niestety nic nie pomogło, czy dam przykładowo:
GPIOC->MODER |= (1 << 8*2);
czy GPIOC->MODER |= 1 << (8 << 1);
efekt jest dalej ten sam. Z Reference Manual korzystam.
Zmieniłem kod konfiguracji GPIO na twój niestety dalej brak sygnałów na SCK :(

Autor:  Zealota [ 3 kwi 2018, o 08:37 ]
Tytuł:  Re: STM32 WS2812 Pomoc

lukas12 napisał(a):
Dzięki za poradę niestety nic nie pomogło, czy dam przykładowo:
GPIOC->MODER |= (1 << 8*2);
czy GPIOC->MODER |= 1 << (8 << 1);
efekt jest dalej ten sam. Z Reference Manual korzystam.
Zmieniłem kod konfiguracji GPIO na twój niestety dalej brak sygnałów na SCK :(


Jak widzę powyżej to już jest loteria, strzelanie z działa we wszystkie strony, a nuż się trafi.
Stosujesz jakieś "podwójne" przesunięcia bitowe, ciężko cokolwiek z tego zrozumieć i pewnie dlatego nie możesz trafić, żeby zadziałało :)

Ustawianie portów to jak wiadomo podstawa podstaw. Należy na początek przygotować sobie funkcje do modyfikacji parametrów.
Najlepiej zacznij od poradnika:
https://www.elektroda.pl/rtvforum/topic3111562.html

W jednym z dodatków tego poradnika są przygotowane odpowiednie funkcje do modyfikacji portów.
Zrób sobie bibliotekę, pobaw się diodami:
Dla stm32f103 mam takie (zaczerpnięte z tego poradnika) funkcje:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  ps19 [ 3 kwi 2018, o 10:38 ]
Tytuł:  Re: STM32 WS2812 Pomoc

lukas12 napisał(a):
Dzięki za poradę niestety nic nie pomogło, czy dam przykładowo:
GPIOC->MODER |= (1 << 8*2);
czy GPIOC->MODER |= 1 << (8 << 1);
efekt jest dalej ten sam. Z Reference Manual korzystam.
Zmieniłem kod konfiguracji GPIO na twój niestety dalej brak sygnałów na SCK :(



Nie działa bo masz pewnie w dalszej części coś źle poustawiane, do ustawienia portów w F0 nie są potrzebne żadne dodatkowe funkcje - w F1 funkcja przydaje się bo tam jest to kilka % bardziej zawiłe ;)

Tutaj masz od A do Z co i jak https://ep.com.pl/files/11801.pdf

Autor:  lukas12 [ 9 kwi 2018, o 21:52 ]
Tytuł:  Re: STM32 WS2812 Pomoc

Po długim czasie zapoznawania się doszedłem, że dalej miałem GPIO źle ustawione, ponieważ ustawiłem wszystkie sygnału jako wyjście, a nie jako funkcja alternatywna.
Teraz mam:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Teraz mam na wyjściu SCK sygnał o długości 1 bita 2000 ns.
Jednak nie wiem jak dalej mają działać te timery ?


Do tego poradnika https://ep.com.pl/files/11801.pdf niestety nie ma plików na ftp :(
Próbowałem przekopiować sam kody jednak w linijce
{&RCC->AHBENR, RCC_AHBENR_RSTVAL | RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN| RCC_AHBENR_GPIOCEN | RCC_AHBENR_DMAEN},
nie mam w bibliotece elementu RCC_AHBENR_RSTVAL, na podstawie dokumentacji także nie doszedłem co to jest.

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/