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



Teraz jest 29 mar 2024, o 02:56


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 39 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 22 sie 2014, o 09:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

Wcześniej ARMami się nie interesowałem, ale powstał pomysł do którego AVR będzie za słaby więc trzeba się zainteresować.
Chcę zbudować analizator widma do wzmacniacza audio. Wynik byłby wyświetlany na dwóch OLEDach, oddzielnie dla każdego kanału.
Myślę o zastosowaniu algorytmu FFT dla 128 próbek więc potrzebny będzie Cortex-M3/M4.

Pytanie, którym producentem układów się zainteresować?
Ważne aby był dostępny u nas na rynku, miał tani programator i dobrą dokumentację.

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2014, o 10:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

Discovery w wersji F4, masz programator, masz wystarczająco dużo pamięci, prędkości napewno Ci wystarczy, a jak trzeba to wsparcie liczb zmienno przecinkowych masz. Do tego masa info w internecie,nawet są blogi strony poświęcone tylko tej płytce. Jedyniena upartego to dodać do tego zestawu jakiś lepszy prztwornik analaogowo cyfrowy i możesz szaleć.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2014, o 11:20 
Offline
Użytkownik

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

Ja proponuję STM32 bez bibliotek, moim zdaniem pisze się wygodniej, lepsza wydajność. Oryginalny ST-Link V2 można dostać za około 120 zł, lub używać zestawów discovery jako programatora (każdy ma wbudowany ST-LINK V2 z SWD (coś a`la 3 pinowy JTAG) - wystarczy rozewrzeć 2 zworki, piny do programowania są wyprowadzone na goldpiny).

Co do środowiska to na początek CooCox, jak się trochę oswoisz to Eclipse ( Sunriver udostępnił ostatnio na swoim blogu dostosowaną wersję, ale jeszcze bez obsługi ST-LINKA)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2014, o 12:03 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Autor wspominał, że potrzebuje M3/M4 a LPC11xx to Cortex'y M0

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2014, o 13:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

LPC ... podobno kiepskie, słychać tu i tam.Ale w tej kwesti SunRiver siępewnie wypowie :)
Aż tak tanie nie są... w stosunku do konkurencji



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2014, o 19:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 kwi 2013
Posty: 38
Lokalizacja: Warszawa
Pomógł: 0

A ja proponuję zwrócić uwagę na układy PSoc4 lub PSoc5 od Cypressa.
Nikt, powtarzam nikt nie oferuje tak fantastycznego wsparcia pod względem IDE i dokumentacji jak Cypress.

Ich środowisko programistyczne PSoC Creator jest po prostu genialne dla początkujących.
Transformata FFT dla PSoC5 to drobnostka, nawet na PSoC4 ktoś pokazywał kod do FFT.

PSoC4 kosztuje w Farnell-u poniżej 4zł, a najprostsza płytka testowa niecałe 20zł.

Moim zdaniem na start w świecie arm-ów nie ma lepszych układów. Jak pisałem wynika to w dużej mierze z niezwykle przyjaznego i łatwego IDE.

_________________
auto gaz, serwis instalacji LPG, Instalacje LPG



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2014, o 20:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

ps19 napisał(a):
( Sunriver udostępnił ostatnio na swoim blogu dostosowaną wersję, ale jeszcze bez obsługi ST-LINKA)


obsługuje ST-Linka , ale przez pakiet ecxternal Tools z użyciem ST-link Tools ... natomiast server gdb dla ST-Linka bedzie dostepny zaraz jak przeniosę stronę , tymczasem działa tez pod openOCD :)

Jeśli chodzi o autora pomysł , to najpierw niech się zapozna z Discovery lub Kinetisem choćby KL25Z czy tez K64F współdziałają oba z Luną NE
Poprzez J-Link OpenSDA coi opisałem na stronie oraz z Keplerem co też na stronie opisałem.

A następnie pomyśli do tego co chce zrobić Cortex-M0+ spokojnie wystarczy.
W przypadku Kinetisów, które też mają bardzo przyjazne środowisko jest tęż literatura wprowadzająca w świat CW oraz co nieco o KDS na mojej stronie.

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2014, o 20:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

Czyli Cortex-M0+ wystarczy do tego co chcę zrobić?

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2014, o 20:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

PROTON napisał(a):
Czyli Cortex-M0+ wystarczy do tego co chcę zrobić?


tak , ale M0+ nie M0 :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 sie 2014, o 13:17 
Offline
Użytkownik

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

SunRiver napisał(a):
tymczasem działa tez pod openOCD :)


Działa, ale początkujący może się mocno zniechęcić próbując to cudo skonfigurować. W moim przypadku np. debug nie działa pod oryginalnymi sterownikami ST-Linka (brak przewijania programu itp) tylko pod WinUSB (Instalowane przez Zadig) (programowanie i debug przez OpenOCD - ST-Link toolsy nie działają z WinUSB)

Komenda do programowania (może się komuś przyda):
Kod:
openocd -f interface/stlink-v2.cfg -f board/stm32f4discovery.cfg -c "adapter_khz 10000; reset_config trst_and_srst;init; reset init; flash write_image erase ${project_name}.hex;reset run; shutdown;"


Wystarczy zmienić to (patrz folder scripts w OpenOCD):
Kod:
board/stm32f4discovery.cfg

na np.
Kod:
target/nazwa_procka.cfg



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2014, o 20:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

Jaki toolchain polecacie do płytki STM32F4 Discovery?
W broszurce są wymienione: Altium, Atollic, IAR, Keil.
Wybrałem Atollic, bo jest na Eclipse ale mam z nim problem już na dzeń dobry:
Kod:
This version of Atollic(r) TrueSTUDIO(r) is limited to 32KB code-size (8KB on Cortex-M0 and Cortex-M1). Please purchase Atollic(r) TrueSTUDIO(r) Professional to be able to develop software that exceeds this limit. More information is available at www.atollic.com.

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2014, o 20:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

popatrz u mnie na stronie , masz keplera i LUnę oraz opis co jak ustawić , masz też darmowy CoIDE wystarczy pokopac u mnie na stronie w dziale arm
:)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2014, o 19:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 maja 2014
Posty: 126
Pomógł: 12

Ja mam keplera od Suna i działa wszystko, łącznie z debugowaniem na openocd, choć trochę upierdliwe jest jak chce się szybko przekompilować, wgrać i wrócić do debugera.

_________________
Pozdrawiam, Adrian.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2014, o 14:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

Może mo ktoś wyjaśnić skąd się biorą subtelne różnice w przykładowych kodach ARM?

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


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

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2014, o 14:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

PROTON napisał(a):
Może mo ktoś wyjaśnić skąd się biorą subtelne różnice w przykładowych kodach ARM?

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


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



Chyba tego nikt nie odgadnie dlaczego. Pokaż cały kod inkludy, na jakich płytkach lub ewentualnie schemat, założyć osobny wątek.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2014, o 15:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

Już znalazłem tą subtelną różnicę ;)

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


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

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2014, o 15:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 maja 2014
Posty: 126
Pomógł: 12

To jest generalnie to samo, tylko aktualnie nazywa się HAL, a kiedyś było SPL-em ;)

_________________
Pozdrawiam, Adrian.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2014, o 18:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Federerer napisał(a):
To jest generalnie to samo, tylko aktualnie nazywa się HAL, a kiedyś było SPL-em


a cóż to za herezje ??

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2014, o 21:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 maja 2014
Posty: 126
Pomógł: 12

Hmm, w sumie nie zaglebialem sie w to nigdy. Funkcje po nazwach wygladaly mi tak samo, to myslalem ze w srodku jest to samo. Podpowie ktoś gdzie popełniam błąd?

_________________
Pozdrawiam, Adrian.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 wrz 2014, o 08:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

http://ep.com.pl/files/2736.pdf
Cytuj:
"Biblioteka STM32F10x Standard Peripherals Library V3.1.0 wykorzystuje standard CMSIS, a więc warto się nieco z nim zapoznać. Standard CMSIS (Cortex Microcontroller Software Interface Standard) jest to uniwersalny interfejs programowy, stworzony przez firmę ARM, który umożliwia komunikację z peryferiami i rdzeniem Cortex za pomocą ustandaryzowanych funkcji i definicji. CMSIS dostarcza mechanizmów do obsługi układów peryferyjnych, systemów operacyjnych czasu rzeczywistego oraz aplikacji wykorzystujących interfejsy komunikacyjne: Ethernet, UART oraz SPI."

Napisane jest że SPL wykorzystuje standard CMSIS ale nie jest napisane że jest z nim zgodne, stąd te subtelne różnice.

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 wrz 2014, o 11:50 

Pomógł: 0

Na początek, całkowity mogę śmiało polecić FRDM KL25Z na mbed.org
Do zapoznania z platformą starczy, potem można iść w KDSa.
ewentualnie Nucleo, bo też jest zgodne z shieldami ardunio :D.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 3 wrz 2014, o 15:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 maja 2014
Posty: 126
Pomógł: 12

Ja to wszystko wiem i rozumiem, tylko błędnie zakładałem, że funkcje zawarte w HAL-u są oparte bezpośrednio na kodzie SPL-a. Zajrzałem sobie do źródeł i widzę różnice. Wygląda na to, że wszystko zostało napisane w większości od nowa. Np w SPL-u przy inicjalizacji GPIO nie ma w ogóle konfiguracji funkcji alternatywnych, a HAL jest kompletny.

Czyli zasadniczo dzięki standaryzacji, biorąc mikrokontroler od innego producenta nazwy funkcji i struktury pozostają zawsze te same, jedynie zawartość funkcji obsługujących peryferia, która jest dostarczana przez producenta danego układu jest różna. Plusy tego rozwiązania są oczywiste - przenośność kodu. Minusy też - marnujemy czas procesora i flash. Ale przy aktualnych pojemnościach flasha i uwzględniając fakt, że inicjalizację peryferiów przeprowadza się zwykle tylko raz na początku, ma to wszystko sens. Jedynie w miejscach bardziej krytycznych czasowo można pokusić się o bezpośrednie odwołania do rejestrów. Np zamiast wywoływać funkcję:

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


Mogę napisać tylko:

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


licząc się z ewentualną dodatkową robotą przy zmianie procesora na inny.

Mam nadzieję, że teraz wszystko dobrze rozumiem?

_________________
Pozdrawiam, Adrian.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 wrz 2014, o 15:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 123
Lokalizacja: Warszawa
Pomógł: 10

Federerer napisał(a):

Mogę napisać tylko:

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


licząc się z ewentualną dodatkową robotą przy zmianie procesora na inny.
Mam nadzieję, że teraz wszystko dobrze rozumiem?


Ja u siebie mam w tym miejscu zestaw makr np. takich:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Przy czym pod te makra można sobie podpinać "wszelkie rodzaje odwołań", które pozwalają używać tego samego kodu przy różnych rodzajach i rodzinach procków (np. ARM i PIC32) - podmienia się tylko w odp. pliku lokalnym makro odwołujące się do konkretnych rejestrów.
Warstwa wyższa pozostaje ta sama.

Wtedy nie musisz szukać po całym kodzie odwołań do portów - masz wszystko w jednym miejscu i wystarczy tam podmienić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 wrz 2014, o 13:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

SunRiver napisał(a):
popatrz u mnie na stronie , masz keplera i LUnę oraz opis co jak ustawić , masz też darmowy CoIDE wystarczy pokopac u mnie na stronie w dziale arm
:)

Zainstalowałem keplera.
Po utworzeniu nowego pustego projektu typu STM32F4xx C/C++ Project, toolchain Cross ARM GCC
pojawiają się dwa pliki src:
main.c
__initialize_hardware.c

Czy w main.c trzeba includować __initialize_hardware.c, żadnego połączenia pomiedzy plikami nie widzę, ale chyba się inicjalizuje.

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 wrz 2014, o 15:52 
Offline
Użytkownik

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

Nie trzeba includujesz tylko stm32f10x.h (zależy od rodziny procka)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 wrz 2014, o 18:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 maja 2014
Posty: 126
Pomógł: 12

Zawartość tego pliku jest wykonywana przed mainem, nie wiem tylko w jaki sposób jest ona wywoływana. Podejrzewam, że jest to zawarte w pliku startowym, ale przydałoby się potwierdzenie przez kogoś bardziej doświadczonego.

_________________
Pozdrawiam, Adrian.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 wrz 2014, o 19:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

Dokładnie, też do tego doszedłem, wystarczy w _initialize_hardware.c zaremować configure_system_clock(); i widać że układ działa na 8 MHz.
Skonfigurowany jest też SysTick, bez pustej funkcji void SysTick_Handler(void){} układ się zatrzymuje.

Pytanie, gdzie i jak on się wykonuje przed main?

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 wrz 2014, o 19:57 
Offline
Użytkownik

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

Ja w ogóle nie używam tych plików, jeżeli przy tworzeniu projektu wybierzecie konfigurację pod konkretną rodzinę procesora np. STM32F1x... to eclipse wrzuca mnóstwo niepotrzebnych plików. Polecam użyć opcji Cross GCC i powrzucać tylko to co się potrzebuje ;)

http://promikro.com.pl/wp-content/uploa ... images.pdf

Od strony 22 ;) potem trzeba wejść w system_stm32f.....c i zakomentować/odkomentować odpowiednie definicje tak aby procek śmigał na wymaganej przez nas częstotliwości.

Potem do maina SystemCoreClockUpdate(); i powinno chodzić np, na 168 Mhz


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 wrz 2014, o 00:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 maja 2014
Posty: 126
Pomógł: 12

Przyda się, bo do teraz robiłem tak, że tworzyłem projekt z szablonu a potem usuwałem wszystkie niepotrzebne rzeczy ;)

_________________
Pozdrawiam, Adrian.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 wrz 2014, o 20:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 lis 2013
Posty: 108
Pomógł: 0

No właśnie ja też od dłuższego czasu zadaje sobie to pytanie od czego zacząć przygodę z ARM ??? . I moja konkluzja jest taka , że na rynku jest dosłownie za trzęsienie zestawów różnych firm , i..... właściwie na tym się kończy cała zabawa . Bo sam zestaw to nie wszystko , liczy się jeszcze wsparcie jakie dany zestaw posiada a z tym jest naprawdę cienko , ba nawet bardzo cienko .



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: 39 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO