Minimalne wymagania obwodu ARM

13

Poczyniłem pewne prace nad ATMega i chcę poszerzyć swoje horyzonty. Mam kilka układów z serii Cortex M4 i chciałbym, aby ARM odpowiadał Breadboarduino

Planuję albo wytrawić własną deskę, albo użyć deski do wybijania ARM, a resztę powlekać. Bardzo mile widziane byłoby odniesienie lub schemat minimalnych składników.

Czy są jakieś dobre zasoby do określenia minimalnych wymaganych komponentów do obsługi, a najlepiej zaprogramowania układu ARM?

AKTUALIZACJA:

Jestem otwarty na alternatywne propozycje sprzętu. Poniżej znajduje się układ, z którym obecnie próbuję pracować:

ZnArK
źródło
7
Czy możesz nam powiedzieć, jakie masz urządzenia? Link do arkusza danych byłby świetny.
stevenvh
Mam nadzieję, że nie jest to pakiet WLCSP, który chcesz wytrawić własną płytkę drukowaną: BGA w rastrze 0,4 mm! : - /
stevenvh
@stevenvh Nie jestem taki odważny. Jest to pakiet LQFP 144
ZnArK
1
Sprawdź serię NXP LPC, czy (wszystkie?) Mają wbudowany szeregowy moduł ładujący. lpc21isp to dobre narzędzie po stronie komputera. LPC1114 jest nawet dostępny w DIP28! LPC1343 ma wbudowany bootloader USB (!) (Który brzmi dobrze, ale korzystanie z IMO jest nieco kłopotliwe).
Wouter van Ooijen
1
@ Wouter - Tak, odkryłem również, że DIP (patrz odpowiedź). LPC1114 to jedyny Cortex, niezależnie od producenta wymienionego na Digikey, dostępny w DIP.
stevenvh

Odpowiedzi:

9

To naprawdę zależy od używanych żetonów - nie określiłeś, który masz. Zazwyczaj potrzebujesz co najmniej kryształu, oddzielania czapek i resetowania logiki. Interfejs programowania może być prostym interfejsem JTAG.

Wszystko to należy jednak podać w karcie danych chipów.

Aktualizacja (dla STM32F407):

Spójrz na następujące strony w arkuszu danych

  • 23ff. dla potrzebnych napięć (1,8-3,6 V, więc potrzebujesz regulatora) i jak używać regulatora wewnętrznego (pociągając pin PDR_ON wysoki)
  • 69ff. dla pinoutu
  • 69 + 74 dla schematu zasilania (są to najciekawsze strony, ponieważ pokazują połączenia zasilania i potrzebne kondensatory)

Nie będziesz potrzebował obwodu resetującego (jest zintegrowany - patrz strona 23) lub oscylatora (zintegrowany oscylator 16 MHz jest wybierany podczas uruchamiania, patrz strona 22). Więc za pomocą deski LQFP144 breakout (jak ten z futurlec (patrz dolna część strony) może być naprawdę mało.

Możesz także spojrzeć na schemat płyty STM32F4DISCOVERY (patrz instrukcja obsługi , strona 33). To, co widzisz, to podstawowy obwód - a nawet zawiera zewnętrzne kryształy.

hli
źródło
Dzięki za wkład. Zadaję to pytanie, ponieważ arkusz danych jest ogromny i, szczerze mówiąc, nie rozumiem w nim wszystkiego. Wiem, że prawdziwym rozwiązaniem byłoby uzyskanie dyplomu EE, ale moja obecna kariera i inne obowiązki nie sprawiają, że jest to obecnie możliwe. Czy są jakieś otwarte projekty sprzętowe, które miałyby schemat ich obwodu ARM. Jestem pewien, że mógłbym to rozdzielić i stworzyć użyteczny projekt.
ZnArK
1
Dołączona powyżej plansza demonstracyjna STM jest dostarczana ze schematem, więc możesz zacząć od tego. W przeciwnym razie Olimex otwiera swoje schematy, np. Dla tej płyty M4 .
hli
Nie zdawałem sobie z tego sprawy. Dzięki za informację. Bardzo pomocny,
ZnArK,
10

Czy na pewno chcesz to zrobić dla Cortex-M4? To duży skok w stosunku do AVR i nie wiem, jak byś wykorzystał wszystkie jego funkcje. Na początek Cortex-M4 zwykle jest w dużym pakiecie, zwykle ponad 80 pinów dla części podstawowych, a 200+ nie jest wyjątkiem, pomyśl QFP lub BGA. Czy zrobisz deskę z dwoma rzędami po 40 szpilek do deski?

Cortex-M4 jest również przeznaczony do dużych prędkości: zwykle od 120 MHz do 200+ MHz. OK, może nie być konieczne zaprojektowanie płytki drukowanej dla tych prędkości, jeśli używasz PLL na chipie. Ale co z urządzeniami peryferyjnymi, takimi jak USB czy Ethernet?

Oczywiście można go uruchamiać przy niższych prędkościach i pomijać większość funkcji na chipie, ale zastanawiam się, po co jest Cortex-M4 na początek. Myślę, że Cortex-M3 lub nawet -M0 jest bardziej odpowiedni na początek. Nie chcę cię zniechęcać, chcę pozostać realistą.

Jeśli nie chcesz iść do przodu z Cortex-M4 można zrobić z minimalnym sprzętu zewnętrznego. Na przykład NXP LPC407x ma wewnętrzny oscylator RC, który jest domyślnym oscylatorem podczas resetowania, więc nie potrzebujesz nawet kryształu. Reset obwodu i odpowiednie oddzielenie zasilania będą wszystkim, czego potrzebujesz, aby go uruchomić.

W przypadku Cortex-M0 NXP LPC111x może być warte obejrzenia. To prawda, że ​​nie ma dużo pamięci, ale jest dostępny w pakiecie DIL-28 , co jest rzadkością dla ARM. Alternatywnie możesz użyć płyty rozwojowej, takiej jak LPCXpresso ,

wprowadź opis zdjęcia tutaj

gdzie prawa połowa to tablica aplikacji, którą można oddzielić od łącza LPC. Jak widać, aplikacja nie wymaga prawie żadnego zewnętrznego sprzętu. A jeśli lutujesz na nim zestaw nagłówków, możesz podłączyć go do płyty chlebowej.

stevenvh
źródło
Świetna opinia. Nie jestem twardy w używaniu Cortex-M4. Zajrzę do modeli M3 / M0. Sprawdzę dokładny chip i pakiet, który mam, i zaktualizuję pytanie.
ZnArK
1
Zrobiłem skok z PIC18 do LPC2100 (to było w 2008 roku, do tej pory ARM7 został zastąpiony przez Cortex-M3). To był duży skok wydajności, ale nie był to duży skok w złożoności sprzętowej na poziomie płytki.
Nick Alexeev
1
@Nick - Użyłem również kilku części LPC2000, ale tak jak mówisz, zostały zastąpione przez Cortex-M3. Cortex-M4 to inna liga.
stevenvh
8

Jak mówi Steven, to dość duży skok do ARM z 8-bitowej mikro, więc spodziewaj się sporo nauki / czasu spędzonego po drodze.
Nie wybrałbym też M4 dla twojego pierwszego ARM, po prostu dlatego, że nie był zbyt długi i jest tam mniej wsparcia / informacji. Myślę, że M3 lub M0 to lepszy wybór i będzie dużo do zrobienia.

Z pewnością możesz stworzyć własną planszę, ale może lepiej byłoby najpierw złapać małą / tanią tablicę programistów. Jeśli chodzi o rozwój, istnieje wiele opcji, od darmowych (eclipse + GCC + OpenOCD) po drogie (Keil, Rowley itp.) Osobiście używam Raisonance Ride7 IDE i narzędzi z ARM M3 / M4s serii STM32, co jest nieco tańsze niż Keil / Rowely, ale wystarczająco dobry.

Rzuć okiem na jedną z prostych tablic deweloperskich od kogoś takiego jak ST, Olimex itp. Ta tablica programistów ma około najprostszego schematu, jaki mogłem znaleźć, dla STM32 Cortex-M3.

wprowadź opis zdjęcia tutaj

Oli Glaser
źródło
Świetna sugestia. Po drodze mam tablicę programistów (Stellaris Launchpad). Planuję się z nią zapoznać przed utworzeniem własnej tablicy. Zaktualizowałem również swój post informacjami o sprzęcie.
ZnArK
Zauważ, że tablice kosztują około 3 razy tyle, co własna oferta ST.
Chris Stratton
Najnowszy starter @ChrisStratton TI był dostępny za 5 USD . Może być nadal dostępny. Trudna cena do pokonania.
ZnArK
@ChrisStratton - tak, dodałem go do schematu, a nie ceny (nawet nie sprawdziłem). Mam jedną z odkrywczych płyt STM32F4, są one naprawdę bardzo tanie, ale pomyślałem, że może to trochę pomylić z wszystkimi dodatkami i wbudowanym programatorem STLink bez „standardowego” połączenia JTAG. Mimo to za mniej niż 10 USD (lub cokolwiek to jest teraz) prawdopodobnie warto również wziąć jeden z nich (być może wersja M3 jest lepsza, jak wspomniano)
Oli Glaser
W przypadku prostych projektów osadzonych 4-stykowy SWD jest znacznie wygodniejszy niż jtag. W oryginalnej formie blokady narzędzia w narzędziu dostawcy może nie być, ale obecnie istnieją otwarte rozwiązania do rozmowy z adapterami.
Chris Stratton
5

Arduino powodu powinny być na zewnątrz dość szybko:

termin adruino

Chip to SAM3X8 Cortex-M3 firmy Atmel. Być może warto poczekać, jeśli znasz już tablice w stylu Arduino i dokumentację w stylu Atmel. A ponieważ będzie to oprogramowanie typu open source, aby spełnić wymagania Arduino, możesz oczywiście to zrobić.

embedded.kyle
źródło
Świetna sugestia. Wiedziałem, że to wychodzi, ale nie pomyślałem o użyciu tego modelu. Świetna sugestia.
ZnArK,
4

Poleciłbym sprawdzić, czy Mbed jest urządzeniem cortex-m3 z kilkoma ładnymi urządzeniami peryferyjnymi, nxp zapewnia kompilator i wiele bibliotek i bibliotek społecznościowych, to naprawdę łatwy sposób na zaprogramowanie go i jest już w pakiecie do użycia na płycie breadboard. Myślę, że byłby to najłatwiejszy sposób przejścia z AVR na ARM.

Kvegaoro
źródło
2

Wiele części ST może, przynajmniej jeśli nie korzysta z nadajnika-odbiornika USB, spływać z wewnętrznego szybkiego oscylatora.

Zasadniczo oznacza to, że „obwód” składa się z zaślepek obejściowych i kilku oporników w takich rzeczach jak reset i zakończenie w interfejsie SWD.

Płyty ewaluacyjne ST w wysokości 8-10 USD zaprogramują części, które umieścisz na własnej tablicy za pośrednictwem magistrali SWD; są dla nich również narzędzia typu open source, dzięki czemu możesz bezpośrednio ustawić programowanie w swoim Makefile.

Wybór czegoś w 48 PQFP prawdopodobnie ułatwi ci życie przy pierwszej próbie na stole. Możesz je montować bez powiększenia (wystarczy mieć cienki warkocz, aby naprawić mostek lub dwa, które prawdopodobnie utworzysz z każdej strony), ale pomocny byłby dostęp do lupy.

Chris Stratton
źródło
1
8-10 USD to chyba nie Cortex-M4. Czy możesz określić, o których częściach myślisz? Także dla pakietu QFP-48? TIA
stevenvh
1
Cortex M3 ... zazwyczaj tworzą każdą wersję w kilku pakietach, z których QFP-48 będzie najłatwiejszy w obsłudze ręcznie.
Chris Stratton