zuba1 Napisano Sierpień 11, 2013 Udostępnij Napisano Sierpień 11, 2013 Witam. Prawdą jest że jeśli się stoi w miejscu to się niczego nie osiąga a nawet można się cofać. Od paru już lat grzebię w mikrokontrolerach AVR programując je w Bascom i ASM. Wiele się nauczyłem ale stwierdziłem że na moje potrzeby są one za wolne(przetwarzanie danych). Szukam szybszego i większego mikrokontrolera na którym mógłbym się nauczyć języka C a przy okazji poznać nową rodzinę procesorów. W domu mam płytkę STM Discowery z mikrokontrolerem STM32F051 48MHz wygraną w konkursie STM. Niestety gdzieś słyszałem że w prędkości przetwarzania instrukcji tegoż procesora nieróżni się od AVR-ów -czy tak jest naprawdę?? Posiadam programator st-link z wyjściem SWD. Na dziś moje wymagania wyglądają tak: Architektura: ARM Rdzeń: Cortex M3 Producent: Tu mię nakierujcie jeśli się mylę ale programatory są strasznie drogie a ja mam już ST-LINKA więc chyba muszę wybierać coś z oferty ST ale mile widziane propozycje NXP i innych. Język:C,ASM ale wole C Częstotliwość: >50MHz (tu już nie żałujcie zegara potrzebny mi będzie każdy Hz) Wyjścia:I/O,I2C,SPI,UART,ADC,PWM,itp.. (tradycyjnie) Żeby była do niego dokumentacja i ludzie którzy będą w stanie mi pomóc w razie W. Programowalny przez SWD z ST-LINKA Mile widziana możliwość dopięcia dodatkowego Ram i Flash Bawiłem się na AVR przetwarzaniem i analizą obrazu z kamery16x16 lub ze zdjęcia 130x130 ale znalezienie czerwonej plamy na obrazku z karty SD zajmowało mu kilkanaście sekund a ja bym chciał robić takie rzeczy na bieżąco.Z tond moje niecodzienne podejście do sprawy.Czekam na propozycje.Sensowne odpowiedzi nagradzam piwem 🙂 Z góry dziękuję. Cytuj Link do komentarza Share on other sites More sharing options...
kermit Sierpień 11, 2013 Udostępnij Sierpień 11, 2013 Jeśli posiadasz już płytkę od STM to polecam zacząć właśnie od niej ponieważ róznice między poszczególnymi uC z rdzeniem cortex od róznych producentów są niewielkie i przy wyborze producenta bardziej polecam patrzeć na dokumentację,środowisko programistyczne i popularność rodziny uC(co przekłada się na lepsze wsparcie ze strony użytkowników tych mikrokontrolerów), do tego za wyborem tej płytki przemawia wbudowany debugger, który przy nauce programowania oferuje nieocenioną pomoc.Aktualnie bawię się mikrokontrolerem LPC1114 na płytce którą otrzymałem wraz z książką "mikrokontrolery lpc1100 pierwsze kroki"(której zdecydowanie nie polecam) i co do nich to dokumentacja może na początku wydać się trochę nieczytelna(ale idzie się przywyczaić) w porównaniu z dokumentacją np. atmela .Co prawda na twojej płytce znajduje się uC z rdzeniem cortex-m0 ale pózniejsza migracja na cortex-m3 nie sprawi ci żadnych problemów, ponieważ ze strony programisty te mikrokontrolery niewiele się różnią, jedynie posiadają zazwyczaj trochę więcej peryferiów jak znudzi ci się ta plytka lub zabraknie mocy obliczeniowej to stm oferuje również bardzo fajne płytki z uC na rdzeniu cortex-m3 po bardzo atrakcyjnej cenie(sam przymierzam się do zakupue).Do tej płytki polecałbym też zakup jakiejś dobrej ksiązki o tych mikrokontrolerach. 1 Cytuj Link do komentarza Share on other sites More sharing options...
MirekCz Sierpień 12, 2013 Udostępnij Sierpień 12, 2013 1. Prędkość przetwarzania pojedyńczej instrukcji rzeczywiście jest podobna jak liczyć ją w ilości cykli zegara. Jednak procesory atmega działają z zegarem do ~20MHz, a najprostsze cortex-m0 mają zegar zazwyczaj do 48MHz. 2. Atmega to mikrokontroler 8bitowy, więc wykonanie operacji dodawania liczb 32bitowych oznacza kilka operacji dodawania. Jeszcze gorzej jest z mnożeniem... ARM jest procesorem 32bitowym i dla niego to są pojedyńczej operacje, więc przy używaniu typów większych niż 8bitowe ARM nagle ma ogromną przewagę prędkości. 3. ARMy to wielka rodzina procesorów i bez większych problemów z Cortex M0 przejdziesz na M3/M4, które poza dodatkowymi peryferiami i instrukcjami (jak chociażby instrukcje DSP w M4) oferują też wyższe zegary - od 72MHz dla M3 do ok. 180MHz dla M4. Reasumując najprostszy Cortex M0 (o podobnej cenie do ATMEGI) ma zegar 2-3 razy wyższy, więcej pamięci i do tego potrzebuje dużo mniej operacji do przetwarzania dużych liczb. Dla programów wymagających dużej liczby obliczeń może to oznaczać 10x wzrost prędkości działania programu. W razie potrzeby łatwo się przesiądziesz na Cortex M4, który ma już zegar 10x wyższy i może uzyskać 100x większą prędkość obliczeniową, a do tego ma ogromny wachlarz dodatkowych peryferiów, których w AVR nie uświadczysz. 1 Cytuj Link do komentarza Share on other sites More sharing options...
zuba1 Sierpień 12, 2013 Autor tematu Udostępnij Sierpień 12, 2013 A jak wygląda sprawa programatora?? Wszystkie procesory arm programować mogę przez SWD z ST-LINKA ??? Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
OldSkull Sierpień 12, 2013 Udostępnij Sierpień 12, 2013 Nie, każdy producent ma własne standardy tanich programatorów. Wspólne są rozwiązania tylko od firmy ARM (ale drogie). Za to wiele ma bootloader, albo JTAG zintegrowany z płytką testową (LPCxpresso, STM Discovery, Freescale Freedom). 1 Cytuj Link do komentarza Share on other sites More sharing options...
MirekCz Sierpień 12, 2013 Udostępnij Sierpień 12, 2013 A jak wygląda sprawa programatora?? Wszystkie procesory arm programować mogę przez SWD z ST-LINKA ??? Jak dobrze kojarzę to pakietem discovery można programować wiele mikrokontrolerów z serii stm32, chociaż tam są chyba jakieś ograniczenia - osobiście nie używałem tego. STM32 najprościej programować z pomocą zwykłego rs232. Potrzebujesz tylko przejściówkę com<->usb i wyprowadzić piny od rs232 i pin od bootloader łączysz do "1" na czas programowania. Cytuj Link do komentarza Share on other sites More sharing options...
zuba1 Sierpień 12, 2013 Autor tematu Udostępnij Sierpień 12, 2013 Aha rozumiem. Czyli mikrokontrolery od STM mogę programować przez RS232.Jeszcze zapytam- podoba mi się ten STM32F103RCT6 ale na razie zacznę od tego co mam na miejscu czyli od płytki Discovery z STM32F051-jakie polecacie środowisko (język C)?? Miałby ktoś może linka z jakimś turotalem lub informacjami z "Pierwszymi krokami" z tą właśnie płytką?? Cytuj Link do komentarza Share on other sites More sharing options...
MirekCz Sierpień 12, 2013 Udostępnij Sierpień 12, 2013 Ja korzystałem z http://www.freddiechopin.info/pl/artykuly/35-arm/59-arm-toolchain-tutorial?showall=1 nie pamiętam czy aktualnie nie trzeba czegoś przerobić odrobinę.. Mnie debugger nie interesował, więc te kroki pomijałem i tylko instalowałem kompilator + ide eclipse itd. Najprościej natomiast możesz zainstalować oprogramowanie przeznaczone do płytki i współpracujące z programatorem na niej (zestaw discovery). Zaleta, że masz debugger, który szczególnie na początku bardzo ułatwia życie... Cytuj Link do komentarza Share on other sites More sharing options...
zuba1 Sierpień 12, 2013 Autor tematu Udostępnij Sierpień 12, 2013 A w czym pomaga takowy debugger ??? Można na żywo podglądać co robi UC?? Cytuj Link do komentarza Share on other sites More sharing options...
BlackJack Sierpień 12, 2013 Udostępnij Sierpień 12, 2013 Częstotliwość: >50MHz (tu już nie żałujcie zegara potrzebny mi będzie każdy Hz) A co chcesz podpiąć do tego ekran z Nokii i przenosić CRYSISa na to że potrzebny ci każdy Hz ? Ja bym sie tak nie napalał na MHz, więcej sie nauczysz, ucząc sie na słabszych MCU, bo zmusi cię to do pisania bardziej optymalnego kodu. 1 Cytuj Link do komentarza Share on other sites More sharing options...
MirekCz Sierpień 12, 2013 Udostępnij Sierpień 12, 2013 A w czym pomaga takowy debugger ??? Można na żywo podglądać co robi UC?? Tak, generalnie w kodzie wkładasz miejsca w których program ma się zatrzymać - tzw. breakpointy - i wtedy możesz podejrzeć status rejestrów, zawartość pamięci itd.. Poza tym możesz wykonywać kod krok po kroku co ułatwia jego zrozumienie. Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Sierpień 12, 2013 Udostępnij Sierpień 12, 2013 Ja do STMów uzywam CooCox'a i sobie chwalę http://www.coocox.org/ Warto też zerknąć na darmową wersje TrueStudio - od niego zaczynałem. 1 Cytuj Link do komentarza Share on other sites More sharing options...
zuba1 Sierpień 12, 2013 Autor tematu Udostępnij Sierpień 12, 2013 Ok a więc na chwilę obecną sprawa wygląda tak: Procesor: STM32f051 bo takowy posiadam IDE: CooCox (wygląda fajnie ewentualnie TrueStudio) Programator: ST-LINK zespolony na płytce wraz z procesorem Teraz przydał by mi się jakiś artykuł odnośnie języka c dla ARMów Niestety słabo informacji (wujek Google chyba strajkuje) -A wy od czego zaczynaliście??? Jakieś książki?? Artykuły??? Cytuj Link do komentarza Share on other sites More sharing options...
ps19 Sierpień 12, 2013 Udostępnij Sierpień 12, 2013 Zobacz na to: http://www.btc.pl/index.php?productID=187337 Podstaw C w niej nie znajdziesz, ale tego jest pełno w necie: http://kursc.forbot.pl/ http://pl.wikibooks.org/wiki/C http://mirekk36.blogspot.com/2011/08/test.html 1 Cytuj Link do komentarza Share on other sites More sharing options...
OldSkull Sierpień 12, 2013 Udostępnij Sierpień 12, 2013 STM32 najprościej programować z pomocą zwykłego rs232. Potrzebujesz tylko przejściówkę com<->usb i wyprowadzić piny od rs232 i pin od bootloader łączysz do "1" na czas programowania. Dla mnie to takie Yeti, wszyscy słyszeli, nikt nie widział. Masz jakąś instrukcję/opis/link jak to robić? Bo dla mnie to jest największa przewaga wszystkich LPC - programowanie jest banalne i powszechnie znane. Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!