2010-10-01 14 views
7

Mi imbarcherò presto sul carro ARM Cortex M3 con un allenamento ufficiale (lato CPU).Consigli necessari per principianti ARM Cortex M3

Ora, ho fatto un po 'di Arduino e AVR prima e ho alcune nozioni di base nell'elettronica ma sono principalmente uno sviluppatore di software. Ho letto molti argomenti qui e un po 'altrove riguardo agli strumenti disponibili e sono stati davvero utili. Quello di cui ho bisogno è qualcosa per collegare tutti quegli elementi di risposta insieme.

Mi piacerebbe dotarmi di uno starter kit che sia abbastanza generale da farmi andare e che almeno mi permetta di sperimentare diverse combinazioni hardware/software (Stepper, CAN-Bus, SPI ecc ...). Sto guardando il seguente elenco (non esitate a aggiungere altri elementi!):

  • Cortex M3 bordo Chip
  • valutazione
  • tool chain
  • strumenti JTAG

Per la chip Vorrei che uno dei modelli di fascia più alta fosse in grado di provare un po 'di tutto. NXP LPC1768 sembra una buona scelta, ma ci sono anche STM e Stellaris da considerare.

Interessanti candidati per il board in questo momento sono il Keil MCP1760, il STM3210E-EVAL, ma ho paura del blocco del fornitore in quanto mi piacerebbe poter provare vari toolchain su una singola scheda. mBed è molto attraente ma fuori dall'equazione grazie al suo compilatore online (a meno che non si possa usare anche un normale compilatore)

Per la Toolchain, ho un "sentimento" nei confronti di IAR, Rowley Associates. Preferirei la facilità d'uso/benessenza vs open source e preferibilmente strumenti che potrebbero essere utilizzati su più obiettivi.

Ho davvero bisogno di un'unità JTAG? Se si tratta di uno "strumento industriale standard" come sembra, mi piacerebbe almeno averne esperienza. Sembra che un'altra fonte di blocco del fornitore sia difficile. Sarebbe meglio usare un dispositivo esterno con cui familiarizzare o semplicemente usare uno incluso nella scheda di valutazione?

Fondamentalmente, ho bisogno di aiuto nella scelta di una combinazione vincente per le categorie di cui sopra. È possibile o sto diventando ingenuo e dovrei considerare i costi di risparmio perché finirò per comprarne uno alla fine?

Grazie.

RISULTATI: Quello che ho ordinato:

ho finalmente comprato Joseph Yiu "The Definitive Guide al braccio CortexM3 (Embedded Technology)", trovato un po 'di formazione per la piattaforma CortexM3 (disponibile a breve) e ha acquistato un kit STMicro: STM3210C-Eval che ha un gruppo di sensori integrati e non è bloccato da un fornitore ad un ambiente software specifico. Ho anche preso alcune schede di STm32vl-Discovery (13 $ cdn da digikey!) Con JTAG a bordo. Ora sto giocando con una versione di valutazione (32K) di uVision IDE di Keil e posso dire che sono davvero impressionato! Sono stato in grado di ricostruire il firmware del Discovery, ricaricarlo e farlo scorrere con il debugger in un solo giorno!

Grazie a tutti!

+1

si potrebbe desiderare di chiedere questo su http://electronics.stackexchange.com –

+0

Grazie, ottimo sito, un altro segnalibro! –

+0

Ho la scoperta stm32vl ma ho appena ottenuto la scoperta stm32f. 168Mhz, cache i e d, unità in virgola mobile, crittografia, hash, una buona quantità di memoria, molto flash, ecc. Ecc. Per $ 20 o meno. i mbeds stanno andando in magazzino e questi stanno sulla mia scrivania. https://github.com/dwelch67/stm32vld/tree/master/stm32f4d –

risposta

1

Sono anche uno sviluppatore di software in origine. Ho usato un paio di kit diversi, ma quello che ho trovato più facile da usare e che ha fatto di più è mbed.Puoi letteralmente farlo funzionare in cinque minuti dall'apertura della scatola. Non è necessario installare alcun IDE dal CD, non è necessario utilizzare i dongle JTAG, non è necessario eseguire il riversamento su schede tecniche: basta scrivere il codice, compilare ed eseguire.
Sì, alcuni si lamentano che è "legato" al compilatore online. Ma l'ho sentito solo da persone che in realtà non l'hanno provato. Ed è solo non vero - puoi ancora usare qualsiasi altra toolchain in grado di produrre file binari per LPC1768: IAR, Keil, CodeSourcery, Yagarto o la tua catena di strumenti. Non ho ancora trovato un caso per questo, ma è certamente possibile.
Probabilmente il più grande svantaggio di mbed è che non espone l'interfaccia JTAG e quindi non è possibile eseguire il debug in modo interattivo. Finora non ho trovato questo critico, ma potrebbe essere importante se fai un sacco di lavoro di basso livello.

+1

Un grande svantaggio della corteccia-m3 è che ARM è cambiato in un'interfaccia jtag che usa meno pin (alcune cose seriali anche se jtag è già seriale) e non rilasceranno la documentazione su di esso senza una NDA, almeno questo è stato il caso quando ho provato all'inizio di quest'anno. Quindi andare con qualcosa come il mbed o stellaris dove non sei bloccato in una sandbox, ma avere un modo per caricare i tuoi programmi è desiderabile per una corteccia-m3. –

+1

In realtà, SWD (JTAG a due fili) è un'opzione su Cortex-M3, non requisito. Ad esempio, LPC17xx ha ancora il JTAG a quattro fili completo (ma LPC11xx e LPC13xx sono in effetti solo SWD). E i documenti SWD sono sicuramente disponibili senza NDA, anche se potrebbe essere necessario registrarsi su arm.com per scaricarli. –

+0

Il mbed sarebbe stata la mia prima scelta per i progetti a casa, principalmente a causa del prezzo. Attualmente sto studiando la formazione da Doulos e alla fine vorrei avere alcune schede personalizzate prodotte per risparmiare sui costi. In una esperienza di apprendimento stavo pensando di andare con l'attrezzatura completa (apprendimento approfondito di M3, jtag, debug di sorgenti ecc.) Forse non dovrei escluderlo ancora? –

2

Si potrebbe voler guardare il Atmel ATSAM3U-EK dev kit (circa $200 from Digi-Key). Ha un touchscreen LCD, accelerometro, sensore di temperatura, ingressi analogici, JTAG, due porte seriali e USB 2.0 (integrato nel SAM3U).

La cosa che mi piace della serie SAM3 è il facile recupero. Ha una ROM integrata e flash per l'archiviazione dei programmi. Dalla fabbrica, avvia la ROM (in seguito la modifica per l'avvio da flash), che attiva la porta USB, che si dichiara essere una classe di dispositivi di comunicazione USB (CDC), ed esegue il monitor di avvio SAM-BA. Ha anche un pin ERASE on-chip che ripristina il tutto alle impostazioni di fabbrica.

Quindi tutto quello che dovete fare, per riprogrammare da zero, è:

  • Jumper CANCELLA per almeno 200 ms con l'alimentazione
  • ripristino e inserire la scheda in una porta USB
  • eseguire il programma SAM-BA di Atmel su Windows o Linux
  • selezionare la porta seriale
  • consentire la scrittura flash
  • selezionare il file binario e inviarlo
  • impostarlo per l'avvio da flash
  • sganciare la USB e premere nuovamente reset.

Nessun dongle o scatola JTAG necessaria. So che la riprogrammazione tramite JTAG tramite IAR è probabilmente un minor numero di passaggi, ma mi piace sapere che esiste un modo per raggiungere uno stato noto se si rompono gli altri strumenti.

La toolchain IAR supporta la serie SAM3 e c'è uno port of FreeRTOS to SAM3U + IAR (che ora sto cercando di effettuare il porting su SAM3U + GCC poiché le licenze $ 5K di IAR sono troppo ricche per noi).

Un'altra cosa bella del SAM3U-EK: ha un flash NAND a bordo e se si collega la scheda al computer mentre è in esecuzione la demo, il flash verrà installato sul computer come "flash drive" . Su questo flash troverai documentazione, schemi, programmi dimostrativi e librerie per toolchain GCC, IAR e Keil e istruzioni e file per ripristinare il programma demo sulla scheda (utile nel caso in cui pensi di aver rotto qualcosa).

+0

Questa sembra davvero una bella tavola. Se devo avere una scheda carica, Ethernet e CANbus sono la mia lista di priorità e non presenti qui. –

3

Ho un simulatore di pollice http://github.com/dwelch67/thumbulator/wiki/thumbulator questo è solo pollice e non pollice 2 ma la corteccia-m3 fa sia pollice che pollice2. Non avrai bisogno di preoccuparti delle differenze per un po '. La directory regress ha un file make per entrambi gli esempi gcc e llvm. Il readme potrebbe anche coprire l'argomento.

entrambi llvm e gcc sono perfettamente a posto, non è necessario acquistare alcun software.La maggior parte delle persone qui disponibili che forniscono assistenza gratuita saranno utenti di gcc. Codesourcery è il posto corrente per ottenere il nuovo/migliore gcc (per arm). La versione lite è perfetta. Rotolare il tuo gcc è una cosa relativamente facile, ma forse non è qualcosa in cui ti trovi. Una cosa carina di llvm è che è sempre un cross-compilatore e pre-builts di solito hanno molti/tutti gli obiettivi.

devo anche Stellaris e mbed e altri esempi Cortex-M3 là fuori. Mi piacciono gli stellaris, non un fan di lpc, evito l'espresso, il mbed in realtà non è male. I folli led blu luminosi mi danno un migrane così li ho sostituiti con il verde, altrimenti funziona bene, facile da usare. Igor ha ragione tu non sei rinchiuso nella loro sandbox come se fossi con l'espresso, ho un esempio lampeggiare i led usando gcc per compilare da qualche parte. basta copiare il file .bin nella cosa che sembra una chiavetta USB e premere il pulsante di ripristino per caricare il nuovo file.

sparkfun.com Il CdA ha STM32 intestazione per meno di $ 50 più il mbed e chissà che altro. Le schede stellaris sono nella gamma inferiore a $ 100 e sono perfettamente a posto. Ho fatto immediatamente il brick 811 accidentalmente facendo esattamente ciò che l'avviso diceva di non fare. Girato il mio jtag gpio spilla nel modo sbagliato e ... game over. Il 1968 e altre serie non 811 sono o non-brickable o non così facili da brick. Le schede stellaris masticano tutto io con periferiche a bordo che è divertente per un po ', ma non se vuoi fare qualcosa di diverso da come usare quelle periferiche. Si vuole un oscillatore JTAG se si utilizza l'intestazione STM32 (evitare gli inneschi STM) amontek fa una buona, il JTAG-minuscolo, e l'Olimex uno dovrebbe funzionare bene, ma io in realtà non so che io abbia mai avuto il mio fuori la scatola. In teoria una tavola stellaris può essere usata come jig wiggler per un'altra o per altre corteccia-m3. se hai una tavola stellaris non hai bisogno di nient'altro, tutto quello di cui hai bisogno entra nella scatola per un prezzo, beh se non vuoi usare quella toolchain allora puoi scaricarne una sopra elencata.

+0

È vero che ottenere il chip da una commissione di valutazione è il mio obiettivo a medio termine. Partire con una tavola piena di gadget mi attrae molto per concentrarmi sull'apprendimento della CPU e non su come collegare le cose. Quella intestazione stm32 sicuramente sembra buona! PS: qual è la differenza tra un JTAG e un wiggler? se del caso? –

+0

Stessa cosa. Quello che chiamo i wiggler è un po 'bang jtag, rispetto a un'interfaccia jtag progettata appositamente. Utilizzato per utilizzare le porte parallele, ma ora utilizza i chip di tipo porta USB da porta parallela. –

2

Da parte mia, mi piace il consiglio LPCXpresso per LPC1768. Ha un'interfaccia JTAG USB incorporata e viene fornita con una versione gratuita dell'ID Code Red (basata su Eclipse). Ho trovato il debugging interattivo JTAG molto utile quando ho imparato ad utilizzare questo chip. Normalmente non uso il debug interattivo quando programmo, ma per la programmazione embedded lo trovo sempre più essenziale.

Il tutto costa solo $ 33 sulla DigiKey.

Problemi correlati