Od dłuższego czasu zbieram się by zacząć pisać programy na ARM. W internecie znalazłem całe multum zestawów startowych i jestem trochę zmieszany. Głównym problemem niestety jest koszt płytki startowej. Chciałbym bardzo TM4C123GLX, ponieważ znalazłem kurs typu MOOC oparty na tej płytce, jednak niestety koszt jest prawie 100 zł. Z drugiej strony płytka STM32F103C8T6 jest bardzo tania, ale już inny rdzeń, brak debugu przez usb, i ogólnie nie wiem czy mógłbym to zaprogramować od razu po wyjęciu z opakowania przez USB.
Może wy znacie jakieś w miarę tanie płytki startowe, które mógłbym kupić na początek ?
Przepraszam, zapomniałem o tym napisać.
Bezpośrednio z TI muszę liczyć shipping do Polski co w ogóle odpada. A na farnellu, dochodzi vat i koszt przesyłki.
Po płytce oczekuje by w łatwy sposób dała się zaprogramować przede wszystkim. Co do debugu przez JTAG nie mam pojęcia w jakim stopniu będzie on przydatny. O ile przy programowaniu PC uważam, że to niezbędne narzędzie nawet dla początkującego, to w ARM nie mam pojęcia. Płytki docelowo chcę używać jako pośrednik między komputerem a rożnymi innymi urządzeniami elektrycznymi silniczki itd.
Póki co odłożyłem sobie 60/70 zł i to chciałbym wydać ale zdaję sobie sprawę, że jeśli moje plany wymagają czegoś droższego to warto poczekać i odłożyć trochę więcej.
Polecam płytkę STM32F4DISCOVERY. Jest to potężna kobyła, ze zintegrowanym STlinkiem (można programować i debugować przez USB). Dokumentację sobie znajdź w internetach Na aukcjach można kupić za około 76zł + przesyłka. Jeśli miałbyś oszczędzać latami, to daj znać.
A ja polecam płytki Atmela - wybór spory, od tanich i prostych z ARM D20/21 do bardziej wypasionych. Ceny sensowne, płytka ma na pokładzie debugger. A to co jest największą zaletą to w pełni darmowe, a nie "darmowe" IDE + kompilator i kilka tysięcy przykładów na ich płytki, które w tymże IDE się znajdują. Prosta instalacją IDE i prosty start.
Ja mam stm32f4discovery i obecnie przygotowanie do tego środowiska programistycznego to pikuś.
Dobra współpraca z linux (przygotowanie środowiska programistycznego) dobrze działa debuger
Będę chciał zrobić na początek zegarek i jeszcze do końca nie wiem jak z możliwością wykorzystania portów które domyślnie są już gdzieś podłączone.
Na płytce np nie ma kwarca zegarkowego ani układu max232 żeby usart testować więc trzeba się liczyć z wizytą w sklepie po dodatkowe peryferia. Zaletą STM jest to, że sporo rzeczy już po Polsku jest
Ja do wora dorzucę jeszcze Nucleo-F103RB. W Kamami za 51 zł. Programowanie w postaci przeciągnij i upuść . Niestety póki co, openocd nie obsługuje stlinka w wersji v2-1, jednak bez problemu debuguje się z Coocoxa.
mnowator Szkoda pieniędzy na STM32VLDISCOVERY. Dostajesz ST-Link + CPU z klawiszem i 2 ledami. Bieda straszna.
STM32F4DISCOVERY jest znacznie lepszy. Więcej też znajdziesz przykładów jak zacząć i co można zrobić, a można sporo.
ellox Za chwilę zauważysz jak bardzo takie "programowanie" ogranicza zamiast pomagać.
tmf CoIDE jest zupełnie za darmo, obsługuje bardzo dużo uC i pracuje z wieloma programatorami/debugerami. Za to do produktów Atmel'a trzeba dołożyć sporo pieniędzy na "tanie" programatory. A i same produkty z rdzeniem ARM znacząco odstają od konkurencji.
Marek_Skalski: Dlaczego odstają? Widziałeś ich nowe serie SAMD? IMHO jeśli odstają od konkurencji to raczej na plus. Obecnie produkowane płytki Xplained mają programator + debugger już na płytce, nie potrzeba zewnętrznych programatorów. W dodatku wzorem innych producentów, przy pomocy programatora/debuggera z płytki można programować także zewnętrzne układy - nawet nic nie trzeba łamać jak w przypadku Discovery - odpowiednie piny są wyprowadzone na złącze na taśmę. Można też kupić zewnętrzny programator/debugger - Atmel ICE, który obsługuje ARM, AVR32, AVR8 i kosztuje $32 więc raczej nie za dużo, a wręcz taniej niż dedykowane programatory konkurencji. Co do środowisk, oczywiście istnieją darmowe środowiska dla innych ARMów typu eclipse + arm-gcc + dużo zabawy z konfiguracją, ale nie ma darmowych środowisk typu pobierasz, klikasz i masz wszystko gotowe do pracy, tak jak w przypadku Atmel Studio. Dla doświadczonej osoby być może zabawa z różnymi środowiskami to nie problem, w końcu robi się to właściwie raz, ale dla początkującego jest to duży plus.
W przypadku Discovery tez nic nie trzeba lamac Maja STLinka czyli programator/debugger po SWD - tak samo mozna z niej programowac inne procesory ST i zamontowane jest zlacze... Fakt ST32F4Discovery to niezla kobyla i mozna na tym zrobic na prawde sporo - wystarczy zerknac na obsade plytki... za ta kase fajna alternatywa. Atmel Studio to niby fajna kobyla - szkoda ze tylko dostepna pod Windows, ja niestety uzywam wiekszosc czasu OS X-a wiec ARM, AVR itd. to Eclipse + odpowiedni toolchain... Jedyne co lubie u Atmela to sposob robienia ich dokumentacji, niestety do tego przywyklem i dajej mam odruchy wymiotne jak musze przegladac dokumentacje ST
Za chwilę zauważysz jak bardzo takie "programowanie" ogranicza zamiast pomagać.
Raczej nie zauważę, bo preferuje programowanie i debugowanie w IDE, np w Coocoxie. To jest dodatkowy ficzer, a nie jedyna opcja, zresztą wspomniałem o "normalnym" debugowaniu od razu. Co do openocd, to jest kwestia czasu (zatwierdzenie zgłaszanych poprawek).
Nigdy nic nie złamałem na STM32F4DISCOVERY, a korzystam z ST-Link niemal codziennie. Wszystkie sygnały wyprowadzone na goldpiny (2.54mm) przy krawędzi płytki.
CoIDE to jest właśnie środowisko typu pobierasz, klikasz i działa Jako początkujący też się na to zdecydowałem.
Co do SAMD...
Rdzeń CM0+@48MHz, to jednak 3. liga względem CM4@168+MHz. No, ale nie o same MIPSy chodzi.
RAM max. 32KiB względem 128..256KiB. To może pamięć zewnętrzna?
Obudowa max. 64 piny, bez szans na podłączenie pamięci zewnętrznej. 100, 144 lub 176 to już jednak inny komfort.
Porty komunikacyjne:
- można znaleźć aż 6 wersji z USB, w tym 2 mogą pracować jako host. Bardzo duży wybór.
- 6 portów USART lub SPI lub TWI. Każdy z tych 6 może pracować w jednym wybranym trybie. Niegłupie, ale większość to rejestry 8-bitowe, więc wszystko trzeba zapisywać po bajcie. Brak buforów, a max. prędkość transmisji 3MHz. To chyba jakiś żart?
- tylko 24 źródła przerwań podzielone na moduły, więc każde przerwanie musi być dodatkowo weryfikowane pod kątem źródła. Mało wygodne.
- pojedynczy ADC o przeciętnych parametrach i nadal max. Vin < Vcc-0,6V, czyli zakres przetwarzania do 2,5V@Vcc=3,3V
- ktoś zapomniał o DMA, więc każda operacja przesyłania danych wymaga zaangażowania dość powolnego rdzenia.
- brak interfejsów typu SDIO, I2S, DCMI, CAN, Ethernet,
- brak generatora liczb losowych i modułów szyfrowania danych,
- brak bateryjnego podtrzymania pamięci i RTC,
Efektywna wydajność... pierwszy z brzegu uC z serii Xmega będzie bardziej wydajny. Być może dlatego SAMD jest tańszy niż Xmega.
Są jeszcze zestawy NXP LPCexpresso o których nikt nie wspomniał. Może są minimalnie droższe od ST, ale NXP oferuje darmowe środowisko LPCexpresso IDE (z ograniczeniem do 256kB) w którym tak jak w Atmel Studio nie trzeba nic "klikać" żeby zacząć.
Teraz akurat pracuje jakiś czas w Atmel Studio i mogę powiedzieć że środowisko jest w porządku jest świetny system podpowiedzi i wspomagania pisania, ale trzeba mieć bardzo dobry komputer żeby się z nim komfortowo współpracowało.
Nigdy nic nie złamałem na STM32F4DISCOVERY, a korzystam z ST-Link niemal codziennie. Wszystkie sygnały wyprowadzone na goldpiny (2.54mm) przy krawędzi płytki.
CoIDE to jest właśnie środowisko typu pobierasz, klikasz i działa Jako początkujący też się na to zdecydowałem.
Co do SAMD...
Rdzeń CM0+@48MHz, to jednak 3. liga względem CM4@168+MHz. No, ale nie o same MIPSy chodzi.
RAM max. 32KiB względem 128..256KiB. To może pamięć zewnętrzna?
Obudowa max. 64 piny, bez szans na podłączenie pamięci zewnętrznej. 100, 144 lub 176 to już jednak inny komfort.
Porty komunikacyjne:
- można znaleźć aż 6 wersji z USB, w tym 2 mogą pracować jako host. Bardzo duży wybór.
- 6 portów USART lub SPI lub TWI. Każdy z tych 6 może pracować w jednym wybranym trybie. Niegłupie, ale większość to rejestry 8-bitowe, więc wszystko trzeba zapisywać po bajcie. Brak buforów, a max. prędkość transmisji 3MHz. To chyba jakiś żart?
- tylko 24 źródła przerwań podzielone na moduły, więc każde przerwanie musi być dodatkowo weryfikowane pod kątem źródła. Mało wygodne.
- pojedynczy ADC o przeciętnych parametrach i nadal max. Vin < Vcc-0,6V, czyli zakres przetwarzania do 2,5V@Vcc=3,3V
- ktoś zapomniał o DMA, więc każda operacja przesyłania danych wymaga zaangażowania dość powolnego rdzenia.
- brak interfejsów typu SDIO, I2S, DCMI, CAN, Ethernet,
- brak generatora liczb losowych i modułów szyfrowania danych,
- brak bateryjnego podtrzymania pamięci i RTC,
Efektywna wydajność... pierwszy z brzegu uC z serii Xmega będzie bardziej wydajny. Być może dlatego SAMD jest tańszy niż Xmega.
Chyba nie do końca jest tak jak piszesz. SAM D21 mają DMA i wiele rzeczy o których piszesz. Takie mocno uproszczone są SAM D10 i SAM D20. To najprostsza rodzina ARMów od Atmela, a ich zaletą są obudowy 32-48 pinowe, akurat do prostych projektów i dla hobbystów. Do takiej obudowy oczywiście interfejsu pamięci zewnętrznej się nie upakuje. Jeśli porównasz SAM D21 do innych ARMów CM0+ to wypadają IMHO bardzo dobrze. Nie tylko mają 12 kanałów DMA, ale także 12 kanałów event system, w efekcie zapotrzebowanie na przerwania mocno maleje, bo wiele rzeczy robi się po prostu konfigurując hardware. Atmel ma też wypaśne ARMy, ale o tym na hobbystycznym forum nie ma co pisać - kto zrobi np. 6-warstwowe PCB, żeby np. podłączyć 32-bitowy SDRAM, pytanie w ogóle kto z piszących na elce (poza Tobą i kilkoma innymi osobami) robi coś w procesorach posiadających >>100 pinów? To fajnie wygląda na gotowym devkicie, ale jak potem to przenieść do własnego projektu, nie bankrutując na produkcji PCB?
Generalnie takie porownywanie Atmel, ST, Texas nie ma sensu bo u kazdego producenta znajdzie sie ciekawe chipy. Natomiast nie zgodze sie ze 100 pinow to wielki problem, owszem BGA juz tak i tutaj koszty za PCB rosna dramatycznie. Jednak jak poszuka sie w chinach to sa firmy ktore wykonaja 4-8 warstwy za w miare przyzwoite pieniadze (nawet dla hobbystow - gdzie zamowienie mozna skladac przez strone www). Ot sam zamawialem kilka razy bo niestety przy nowych elementach i ich obudowach (oraz szybkosci magistral) nie da sie czasami inaczej.
Owszem jest to wieksza kasa - ale chyba juz wszyscy dawno sobie uswiadomili ze elektronika obecnie to bardzo drogie hobby... wiec nie jest to juz alternartywa ze cos samemu sobie zrobimy i bedzie taniej niz gotowiec (bo za zwyczaj wychodzi to wiecej).
100 pinów porutować w projekcie, w dodatku uwzględniając dziesiątki pinów zasilania i ich prawidłowe odsprzęganie na 2-warstwowej PCB jest IMHO niemożliwe. W efekcie zrobienie czegokolwiek powyżej 48 MHz będzie kłopotem. A 4, 6-warstwowe PCB to nie tylko cena PCB (w końcu czekając dłużej na płytkę można się załapać na wolne miejsce na formatce, dzięki czemu koszty są znacznie niższe), ale to także:
- soft, który kosztuje sporo, albo korzystanie z różnej jakości darmowych softów zazwyczaj bez autoroutera,
- spora wiedza jak projektować tego typu obwody i jak je przygotować do produkcji (rozstaw elementó, pady, przelotki zagrzebane itd.).
Stąd też IMHO przydatność wypaśnych ARMów w praktyce hobbysty jest żadna, z wyjątkiem sytuacji kiedy decydujemy się na wykorzystanie gotowych kitów i tylko ich opakowanie własnymi peryferiami w projekcie.
Jakos bez problemu wykorzystuje w projekcie STM32F407VGT6 (LQFP100) i nie widze problemu przy 2 warstwach. Owszem nie wszystkie piny sa wykorzystane co sporo tez ulatwia... 44 piny to ja stawiam na kynarze (jest taka fotka z Atmega32U4 - w temacie o moim programatorze do AVR-ow)
Baa owszem jak chcemy szybkie magistrale to 4 warstwy minimum... ale na 2 warstwach udalo mi sie bez peroblemu do okolo 80MHz stabilnie zrobic, docelowo wyladowaly 4 warstwy i RAM na 100MHz... fakt uzywane Altium i Signal Integrity... wiec soft tak srednio legalny (no ale takie zycie... jak by wypuscili powiedzmy wersje do niekomercyjnego uzytku dla hobbystow to dal bym i do 1000zl za ten soft bo na edu sie nie lapie).
A co do oprogramowania to wiadomo jak to jest w hobby ile widzimy projektow na Altium itp. a ile osob ma licencje... choc i takie programy maja kiepskie autoroutery, owszem specctra itp. jest raczej poza zasiegiem (nawet nie widzialem pirata na necie) Ale wiele firm w Polsce jakie znam maja przykladowo Altium i radza sobie bez autoroutera. Jak jest dobry projektant to zrobi to lepiej niz autorouter Oczywiscie jak bawimy sie w 16 warstw itp. to juz wszelka uatomatyka jest przydatna... ale to nie ta skala. Mi w hobby udalo sie dobic do 8 warstw ale tylko ze wzgledu na BGA... i takich projektow hobbystycznie moze sie robi kilka w zyciu
Szkoda pieniędzy na STM32VLDISCOVERY. Dostajesz ST-Link + CPU z klawiszem i 2 ledami. Bieda straszna.
STM32F4DISCOVERY jest znacznie lepszy.
I lepszy, i nie. Na pewno znacznie mocniejszy procesor i kilka peryferiów, ale to co raz jest zaletą, innym razem jest wadą. Ja od początku miałem kilka płytek discovery, w tym vldiscovery i F4discovery. No i F4 okazał się nieco zbyt trudny jak na początek. Posłuchawszy rad właśnie tu, na elektrodzie, zacząłem od procesora znacznie prostszego, jaki jest na vldiscovery. Więc akurat dla poczatkującego w ARMach, taki prostszy procesor może mieć zaletę. Druga wada/zaleta - brak peryferiow typu audioDAC, jakiś czujnik przyśpieszenia, mikrofon cyfrowy, ma tą zaletę że wszystkie piny są wolne. Mam dla celów prototypowych zrobione takie różne peryferia typu - głośniczek, wyświetlacz alfanumeryczny, wyświetlacz graficzny, pamięć I2C EEPROM, kilka przycisków, kilka ledów itd. z kabelkami i gniazdkami na goldpiny, dzięki czemu mogę szybko złożyć dowolną konfigurację. Z zabawy płytką STM32F4Discovery na razie zrezygnowałem ze względu właśnie na jej 'zaletę' posiadania różnych podpiętych peryferiów - chciałem dopiąć wyświetlacz TFT przez FSMC, ale okazuje się że wiele pinów procesora jest zajętych - musiałbym ciąć ścieżki, albo wylutowaywać scalaki... Dlatego ja bardzo lubię STM32vldiscovery włąsnie dlatego że mam goły procesor ze wszystkimi wolnymi pinami, głównymi peryferiami typu kwarce oraz zintegrowanym programatorem. STM32F4Discovery mam jedną, a STM32vldiscovery dokupiłem pięć Bo często robię kilka projektów równolegle, przeważnie prostych układów pomiarowych różnych gazów itp. (takie mam zamówienia).
Nie wiem po co ty chcesz cos wylutowywac czy cicac sciezki... mi spokojnie smiga LCD po FSMC (popularne chinczyki z touchpadem) do tego podpieta karta SD itp. Do tego wiem ze nie tylko mi to dziala bo projektow w internecie z wyswietlaczem jest multum...
Na elektrodzie masz nawet projekt "oscyloskopu" na stm32f4discovery (calosc w formie "kanapki")
Co do prostego procesora hmm nie wiem i tak trzeba sie przebic przez RM i nie trzeba tez od razu wykorzystywac wszystkich funkcji jak FPU czy instrukcje DSP... Reszta jest podobna i tak trzeba sie przebic przez RM do jednego czy drugiego procka... IMHO ARMy na poczatek to troche zly wybor a jak sie czlowiek juz bawil prockami to nie ma wiekszego znaczenia czy to bedzie Cortex M3 czy M4F... Ja przygode z ARMami od ST wlasnie zaczynalem od STM32F4Discovery i tak wiele musialem uczyc sie na nowo mimo ze wczesniej mialem do czynienia z ARMami od NXP
Z drugiej strony faktem jest ze zestawy bez peryferiow w dalszej perspektywie sa fajniejsze bo mniej ograniczaja... no ale seria Discovery jest produkowana z troche innym podejsciem (jak nazwa wskazuje by poznac procek, a nie jako platforma developerska) no i zaleta sa niskie ceny tych zestawow.
Generalnie jak ma byc tanio to ja przykladowo czesto uzywam AVT1609 z STM32F103C8T6 niestety brak programatora... ewentualnie drozej niz discovery zestawy WaveShare z serii Port... wlasnie zaleta ze wszystkie porty sa wyprowadzone na goldpiny, a peryferia ktore sa na plytce (LED, przyciski itp.) mozna odlaczyc jumperami - wiec idealne do prototypow...
W sumie tak w podsumowaniu to moge jedynie autorowi tematu powiedziec kupuj co uznasz sam za sluszne z tym ze kieruj sie najlepiej na poczatek wlasnie w strone ST lub NXP... to chyba najbardziej popularne na Elektrodzie procki i zawsze mozna uzyskac pomoc. ARMami od Atmela czy TI zajmuje sie zdecydowanie mniej osob (przynajmniej tutaj z tego co widze po tematach).
Potem zbieral bym mimo popularnosci STLinka czy programatorow na FTDI i openocd na SEGGER Jlink-a edu lub klona ot wygoda wieksza no i udalo mi sie nim juz podniesc kilak ARM-ow ktore sobie "zablokowalem" (np. wylaczajac wszystkie nieuzywane porty by obnizyc pobor pradu w tym te od JTAGa) he he gdzie openocd nie dawalo rady czy to z STLinkiem czy ftdi do tego ma sie swd ktore niestety chyba tylko w przypadku STLinka jest obslugiwane z openocd... Generalnie juz od pewnego czasu przesiadlem sie z openocd na segger gdb server i wygoda nie do porownania - dziala to jakos szybciej i stabilniej (przynajmniej na OS X)
Zacząłem od spisaywania pinów FSMC i porównywania z użytymi - kilka z nich jest użytych więc już nie analizowałem jak-czy jako wejścia czy wyjścia, np. FSMC D0, D1 przez LEDy (co akurat nie powinno zbytnio przeszkadzać), czy przez SC43L22, potrzebowałem też dwóch SPI itd... i porzuciłem projekt, na zasadzie - brak wolnych wszystkich pinów, a nie będę analizował czy wszystkie one są np., jako we. i nie będą przeszkadzać, czy też mogą być jako wy. i wtedy wejdą w konflikt. Ogólnie nie lubię takich sytuacji, że używam jakiegoś pinu który jest podpiętu jeszcze gdzie indziej "ale to nie przeszkadza". Mi to przeszkadza ze względów 'estetycznych' i jest nieprofesjonalne i nie zalecane. Tak czy inaczej wielu pinów użyć się nie da. Poza tym to tez nie całkiem moja opinia, ale to tu poradzono mi ze F4 dis. z powodu zajętości wielu pinów przez obecne peryferia nie jest zbyt dobrym rozwiązaniem dla własnych projektów a raczej do zabawy z przykładami dla tej płyty.
tplewa wrote:
a jak sie czlowiek juz bawil prockami to nie ma wiekszego znaczenia czy to bedzie Cortex M3 czy M4F
Chyba jednak ma znaczenie - bawiłem się bardzo wiele lat prockami od Z80 do AVR (do serii MEGA), ale wejście na ARMy zajęło mi trochę czasu, peryferia znacznie bardziej rozbudowane, choćby zegar, w AVR ustawiany bitami konfiguracyjnymi, a tu już trzeba programowo ustawiać źródła taktowania, dzielniki dla szyn, mnożniki dla PLL, odczekiwać na odpowiednie bity gotowości... A w F4 zegar jest jeszcze bardziej rozbudowany. Podobnie inne peryferia jak choćby proste ustawienia GPIO - inne nić w F1xx. Większość peryferiów jest bardziej rozbudowana, co oznacza więcej rejestrów konfiguracyjnych, dłuższy i trudniejszy opis w dokumentacji, itd. Wiele razy zgłaszałem to różne problemy i często słyszałem radę żeby zacząć od prostszych procesorów z serii np F10x. Posłuchałem i rzeczywiście łatwiej było zacząć od tych procesorów. Dopiero jak je w miarę opanowałem, F4 okazało się znacznie łatwiejsze.[/quote]
Oczywiscie jak wspomnialem takie rozwiazania nie sa idealne ale mozna... Natomiast jak juz mowisz o profesjonalizmie czy to o plytce czy o srodowisku programistycznym to nie bawimy sie w zabawki tylko inwestujemy kase i tyle.
Wiec tutaj warto sie zastanowic w ktora strone idziemy i o czym piszemy. Zreszta nie taka duza kase bo WaweShare Port407V to okolo 130zl + koszt JTAGa jak sie nie ma... ot i ma sie problem z glowy:
Natomiast ja nie rozumiem po co mi piszesz o Z80 itp. sam bawilem sie Z80, 6502, 8051 i wieloma innymi (rozne MIPS, Hitachi H300 itd.) od bardzo dawna. Pierwsze projekt w ASM na AVR-y publikowalem tutaj gdzies w okolicach 2000 roku (jak elektroda jeszcze inaczej wygladala - potem temat zostal przeklejony na forum):
dlatego nie rozumiem po co ty porownujesz AVR i ARM. Wiec na prawde nie musisz mi tlumaczyc poziomu trudnosci Wspomnialem ze jak ktos sie bawil prockami to chodzi mi o to ze wie co to taki mikroprocesor jednoukladowy i bedzie rozumial to co pisza w RM... bo zielony to w przypadku ARMow nic nie zrozumie czy to bedzie STM32F1 czy STM32F4...
Nie obraz sie ale widzac ze masz praktyke z innymi procesorami ja bym cie nie zniechecal do bawienia sie STM32F4... po prostu poradzil bym ci abys dokladniej i ze zrozumieniem czytal dokumentacje Choc wiem ze nie jest to latwe bo sam lubie np. dokumentacje Atmela (o czym tez wspominalem w tym watku), a ta od ST jest lekkim koszmarkiem Wiele spraw jest czasem niejasnych dla obu prockow i trzeba albo pytac, albo testowac "metoda macajewa"... IMHO z tego co piszesz twoj problem wynikal raczej z tego ze zamiast czytac RM sugerowales sie przykladami dla STM32F1xx i dlatego wynikaly te problemy. Jak bys olal przyklady i czytal RM lub opieral sie o przyklady dla STM32F4 na 100% nie bylo by problemow ze cos jeszcze tam trzeba ustawic...
Napisalem ze ARMy to nie najlepsze procki na poczatek. Natomiast jak juz mowimy czy Cortex M3 czy Cortex M4F to tutaj jest na prawde niewielka roznica jesli chodzi o poziom trudnosci (ktory jest wysoki dla poczatkujacego). Wiec na prawde to co wymieniasz to sa pierdoly w stosunku do calej dokumentacji jaka jest Reference Manual kora trzeba przebrnac w obu przypadkach... Jak bawisz sie na STM32F1 to po przejsciu na STM32F4 i tak musisz wiele poczytac bo nie sa one do konca kompatybilne (to samo dziala w druga strone jak sie przesiadasz z STM32F4 na STM32F1)... Wezmiesz jeszcze inne ARMy i masz to samo - wiec ja tego nie nazwe wiekszym poziomem trudnosci ale roznicami pomiedzy wersjami.
Kolega chcial cos w miare taniego (bo widac ze kwota 100zl to juz dla niego sporo) i taki STM32F4Discovery patrzac na jego funkcjonalnosci i mozliwosci co na nim mozemy zrobic sa na prawde ogromne (w stosunku do ceny za zestaw). Do tego z pewnymi ograniczeniami mozna podpiac tez rozne peryferia... Owszem tutaj bedzie go kosztowac to wiecej pracy ale po wydaniu niecalych 100zl bez dodatkowych zakupow zrobi o wiele wiecej ciekawych projektow. Zwlaszcza ze obecnie na ta plytke mozna znalezc wiele projektow co sporo ulatwia...
Jak ma sie wiecej kasy to nie ma problemy z zestawem bo jest ich na rynku cale multum. Z takich w miare tanich i bardzo uniwersalnych np. zestaw AVT1609 (gdzie masz wszystko na goldpinach) + do tego np. programator by freddie chopin
Jeśli ma to jakieś znaczenie to wcześniej pisałem na AVR'y więc może z ARM nie będzie tak strasznie. Póki co po głowie chodzą mi dwa układy STM32F4DISCOVERY I STM32VLDISCOVERY. Ale nadal nie mogę się zdecydować, czy postawić na układ bez bajerów czy z bajerami jak to w przypadku STM32F4.
Natomiast jak juz mowisz o profesjonalizmie czy to o plytce czy o srodowisku programistycznym to nie bawimy sie w zabawki tylko inwestujemy kase i tyle.
Nie bardzo zgadzam się z takimi bardzo nieprawdziwymi dogmatami - jak profesjonalnie to się inwestuje i tyle. Jeżeli takie stwierdzenia nie pochodzą z księżyca, to przynajmniej z krajów bardziej rozwiniętych jak USA itp. Znam setki lub tysiące przypadków w dziesiątkach branż, gdzie profesjonalne czy bardzo profesjonalne firmy nie inwestują bo nie mają z czego. Wiele firm upada z braków środków. Także totalną bzdurą jest takie uproszczenie że dobre firmy bez problemu sobie radzą a tylko te baniate upadają. Niestety, kondycja firmy, możliwość inwestycji itd. mają nadal bardzo duży związek z korupcją, z 'załatwianiem po znajomości' itd. Także nie jest tak że dobry a nawet bardzo dobry towar 'sam się sprzedaje' - nie, nie sprzedaje się sam. A więc umiejętność dobrego czy nawet bardzo, bardzo dobrego programowania jeszcze sprawy nie załatwia. Trzeba jeszcze umieć to sprzedać, a to dwie zupełnie inne umiejętności i jest bardzo wielu bardzo zdolnych ludzi, którzy sami nie potrafią sprzedać tego co robią, natomiast trafiają do firm, gdzie szef mający dwie lewe ręce, ale układy, wejścia itd. kasuje 80% wartości pracy tego zdolnego człowieka, dając mu z łaski te 20%. Dlatego zawsze irytuje mnie takie upraszczanie - profesjonalizm - nie bawimy się w zabawki, inwestujemy (chyba bez ograniczeń?) w rozwiązania profesjonalne. W ogóle jakby porównać jakość pracy kilkudziesięciu różnych małych czy średnich firm z pracą kilkudziesięciu dobrych amatorów, to wyszłoby że ten profesjonalizm nie ma żadnego związku z jakością produktu. Czy ja jestem profesjonalistą? Nie mam firmy zajmującej się oprogramowaniem. Nie mam jednego źródła dochodu, ale kilka. Programy na różne urządzenia pomiarowe, przemysłowe piszę okazjonalnie i to nie dlatego że gdzieś tam wyszukuję zlecenia i się wciskam, ale dlatego że firmy dla których kiedyś pisałem programy, po np. kilku latach współpracy z firmami 'profesjonalnymi' wracają do mnie i proszą o zajęcie się pewnymi tematami, mimo że jestem dość a może nawet bardzo drogi. Ale - potrafiłem rozwiązać kilka problemów z którymi tamte firmy sobie nie poradziły. Każdym tematem zajmuję się głęboko i poważnie, sam proponując różne rozwiązania i ulepszenia a nie tylko wykonując dokładnie to co w umowie itd. Prototypy wykonuję na płytkach uniwersalnych jak discovery do sprawdzenia i zamówienia pierwszej wersji płytek docelowych itd. Więc uważam że mówię o profesjonalizmie bawiąc się w zabawki i tyle.
tplewa wrote:
WaweShare Port407V to okolo 130zl...
Bardzo dobra seria, też często używam.
tplewa wrote:
Natomiast ja nie rozumiem po co mi piszesz o Z80 itp
Bo napisałeś wcześniej:
tplewa wrote:
IMHO ARMy na poczatek to troche zly wybor a jak sie czlowiek juz bawil prockami to nie ma wiekszego znaczenia czy to bedzie Cortex M3 czy M4F
Więc się bawiłem Z80, MCS48, 51, PIC, AVR i miało dla mnie znaczenie - i Cortex M3 i M4 były początkowo dla mnie 'czarną magią' - musiałem załapać nieco inną filozofię jakby nie było kontrolerów 32bit, a nie 8. Ale jednak M3 łatwiej mi było opanować, bo jest to nieco mniejsza 'czarna magia'. Będąc już oswojonym z M3 (kiedy przestałem się dziwić, było już znacznie łatwiej zacząć z M4 i wszystkimi jego możliwościami (których oczywiście jeszcze nie opanowałem nawet w stopniu średnim).
tplewa wrote:
Natomiast jak juz mowimy czy Cortex M3 czy Cortex M4F to tutaj jest na prawde niewielka roznica jesli chodzi o poziom trudnosci
Niewielka z punktu widzenia osoby znającej jako-tako oba procesory. Dla nowicjusza każda najmniejsza różnica trudności jest mnożona x10 lub x100. Choćby dlatego że sama dokumentacja jest znacznie obszerniejsza a trzeba przebić się przynajmniej przez jej najważniejsze fragmenty.
tplewa wrote:
Nie obraz sie ale widzac ze masz praktyke z innymi procesorami ja bym cie nie zniechecal do bawienia sie STM32F4...
Ale robię różne rzeczy na F4 (mam nie tylko STM32F4Discovery, ale też np. STM32F429i-Disco. napisałem tylko że zrezygnowałem z dopinania TFT przez FSCM, choć - skoro to działa, może wrócę.
tplewa wrote:
STM32F4Discovery patrzac na jego funkcjonalnosci i mozliwosci co na nim mozemy zrobic sa na prawde ogromne
To prawda, ale o ile ARM na początek są często zbyt trudne, o tyle F4xx jeszcze trudniejsze niż f1xx. Nie warto się kłócić czy są dużo trudniejsze, czy tylko troszeczkę - fakt jest taki że są, a na początku każda pierdółka może się okazać problemem nie do przebrnięcia. A to może zniechęcić. Ja tez zacząłem od STM32F4Discovery i po kilku tygodniach problemów z najprostszymi rzeczami, przeszedłem (za poradą użytkowników elektrody) na płytki z procesorami STM32F1xx (dokładnie STM32F100RB, STM32F103ZE, STM32F103VC) i rzeczywiście, było łatwiej.
Dodano po 18 [minuty]:
mnowator wrote:
Jeśli ma to jakieś znaczenie to wcześniej pisałem na AVR'y więc może z ARM nie będzie tak strasznie
Nie będzie strasznie, ale znacznie bliższe są sobie AVRy, PICe, 51 itd. ośmiobitowe. ARMy to już znacznie większy skok 32bit i znacznie bardziej rozbudowne, a co się z tym wiąże trudniejsze w konfiguracji peryferia. Choćby zegar, który w AVR ustawiało się prosto tzw. fusami:) a w ARM jest już programowa konfiguracja i trzeba ustawić sporo bitów w różnyc rejestrach, czekać na gotowość itd. żeby uruchomiz sam zegar(tzn. zegar w ogóle startuje sam po włączeniu zasilania - 8MHz HSI). Ale jak już 'załapiesz' to do AVRów nie wrócisz:)
Dodano po 7 [minuty]:
mnowator wrote:
Ale nadal nie mogę się zdecydować, czy postawić na układ bez bajerów czy z bajerami jak to w przypadku STM32F4.
Zależy od czego chcesz zabawę zacząć. Na pewno bajery z STM32F4Discovery wykorzystasz dopiero za jakiś, chyba dłuższy czas. audioDAC jest dość trudny w konfiguracji. Akcelerometr łatwiejszy. Ale na początek będziesz walczył z procesorem a nie peryferiami płytki. Więc na początek będziesz konfigurował zegar, stos, przerwania. Potem GPIO - czyli przysłowiowe mrugnięcie LEDem:) Prawdopodobnie (bo ja tak robię następnie będzie chęć dopięcia jakiegoś wyświetlacza np. HD44780 i klawiaturki, bo to daje najbardziej widoczną komunikację z procesorem, można sobie wyświetlać różne stany programu, zawartość zmiennych itd. Trochę czasu zejdzie. Moim zdanie łatwiej to pójdzie na vldiscovery, ale to moje zdanie (przechodziłem przez to wszystko nieco ponad rok temu).
Wiadomo ze sa roznice ale nie ma sie co ograniczac przynajmniej z mojego doswiadczenia... ARMy na poczatku po przejsciu z 8bit moga wydawac sie trudne. Ale znajomosc dowolnego mikrokontrolera sporo ulatwia bo wie sie co to peryferia, wie co to rejestry konfiguracyjne itd. Jak by RM byl w takiej formie jak dokumentacje od AVR-ow to zapewne problemu by wiekszego nei bylo... no ale jest w formie jakiej jest (dokumentacja rozwalona na sterte pdfow z erratami itd.)
Co do firmy to niestety takie sa realia, jak nie zainwestujesz to daleko nie zajedziesz. No chyba ze mowimy o dzialalnosci jednosobowej i dlubanie by jakos oplacic ZUS, podatek i cos zostalo w kieszeni. Nie mowie tutaj o jakis wielkich inwestycjach - ale troche warto wydac by nie meczyc sie z pierdolami... Po prostu chodzi o inne podejscie niz to przy hobby. Choc przy hobby tez sie czasem sporo wydaje bo takich speraw jak dobry miernik, oscyloskop nie przeskoczysz... Nie mialem tutaj na mysli firm ktore stac na wydanie dziesiatkow tysiecy $... ale tez nie podejscie gdzie mamy 300zl na wszystko... Natomiast majac na poczatek z kilka tysiecy mozna juz kupic cos sensownego na poczatek... a musisz miec wiecej bo wiadomo ze na poczatku do firmy sie doklada no i na zlodziejski ZUS te tysiac co miesiac tez trzeba miec.
Czytając wasze komentarze zaczynam wątpić w sens przerzucania się na ARM .
Aktualnie moje doświadczenie związane z mikrokontrolerami to tylko AVR i to procki o małych ilościach nóżek. Chciałem spróbować jakiejś nowszej technologii i z początku myślałem o XMEGA, ale wymyśliłem sobie ARM.
Samego mikrokontrolera chciałem używać jako pośrednik między światem zewnętrznym a komputerem. Budować coś na zasadzie "robotów" i większość kodu i całej logiki bazować po stronie komputera, gdzie mogę użyć o wiele bardziej przyjaznych języków (np. python ). Wiec co mi potrzebne to w zasadzie komunikacja przez USB ew. WiFi, jakieś odczyty adc, pwm'y no i pewnie parę bardziej zaawansownych rzeczy, które pewnie przyszły by z czasem.
Zdaję sobie sprawę, że mógłbym to osiągnąć również na AVR'ach ale jak wspomniałem chciałem spróbować nieco nowszej technologii.
Reasumując. Czytając wasze komentarze na temat trudności przejścia na ARM dochodzę powoli do wniosku, ze celuję armatą w komara.
Uwierz latwo nie bedzie - ale bedzie sporo latwiej niz zaczynanie od zera. Ja tez na poczatku mimo ze mialem wczesniej do czynienia z NXP i MIPS z 32 bitowych oraz dobrze znajac assember x86 i troche PowerPC musialem spedzic troche czasu by zalapac o co biega w ARM-ach od ST
Grunt to sie nie poddawac i na poczatek na prawde przebrnac przez ten nieszczesny Reference Manual... boli to okropnie i zbiera na wymioty jak sie czyta ale potem to procentuja jak sie czlowiek przemeczy na poczatku.
Ale nie rezygnuj bo warto sie pomeczyc - potem na prawde otwiera sie sporo mozliwosci. Takie STM32F103 kupujesz za "grosze" (ceny nieraz nizsze niz AVR), a mozliwosci o wiele wieksze.
Czytając wasze komentarze na temat trudności przejścia na ARM dochodzę powoli do wniosku, ze celuję armatą w komara.
Absolutnie nie prawda. Będzie czasem trudno i sam nie dasz rady, ale dzięki elektrodzie wszystko przejdziesz w miarę bezboleśnie:) Ja bez tutejszej pomocy też bym szybko się zniechęcił, bo dokumentacja to nie wszystko, trzeba ją jeszcze zrozumieć, a to nie jest łatwe, jeżeli pierwszy raz spotyka się z pewnymi pojęciami.
Dasz radę choć pewnie kilka razy będziesz zalamany - ale tylko przez chwilę Nie rezygnuj, bo o ile pisanie na AVR jest przyjamne i daje satysfakcję, o tyle pisani na ARM jest 10x przyjemniejsze i daje 10x wieksza satysfakcję. Warto przejść przez te trochę trudne początki a potem cieszyć się nieporówanie większymi możliwościami ARM niż AVR - to jak wypłynąć z jeziorka na ocean;)