Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 09:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 31 mar 2018, o 16:58 
Offline
Użytkownik

Dołączył(a): 10 sie 2012
Posty: 91
Lokalizacja: Wąbrzeźno
Pomógł: 0

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ę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2018, o 17:24 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2018, o 20:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2017
Posty: 369
Lokalizacja: Gliwice
Pomógł: 34

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ęć.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2018, o 20:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2014
Posty: 31
Pomógł: 9

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2018, o 22:26 
Offline
Użytkownik

Dołączył(a): 10 sie 2012
Posty: 91
Lokalizacja: Wąbrzeźno
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2018, o 12:29 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2018, o 15:49 
Offline
Użytkownik

Dołączył(a): 10 sie 2012
Posty: 91
Lokalizacja: Wąbrzeźno
Pomógł: 0

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 :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2018, o 08:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2017
Posty: 369
Lokalizacja: Gliwice
Pomógł: 34

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2018, o 10:38 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2018, o 21:52 
Offline
Użytkownik

Dołączył(a): 10 sie 2012
Posty: 91
Lokalizacja: Wąbrzeźno
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO