Modo assolutamente economico e (facile) per iniziare la programmazione su microcontrollori ARM [chiuso]


18

Voglio iniziare a utilizzare processori ARM, migrando dai PIC che utilizzo da troppo tempo. I modelli a 8 bit erano disponibili per meno di $ 1, i programmatori per meno di $ 10 e sono stato viziato dalla facilità e dal basso costo di iniziare. Ma visto che la loro potenza è ridotta da alcuni chip ARM allo stesso prezzo, ed essendo stufo del software a sorgente chiuso, voglio fare il passaggio.

Preferirei evitare qualsiasi scheda di sviluppo, e invece entrerei direttamente con un pcb break-out generico economico ($ 1) e su una breadboard usando qualsiasi componente esterno sia essenziale per farlo funzionare.

Quali sono le mie opzioni per programmare i chip ARM in questo modo? Esistono programmatori come PICKit2 che utilizzano USB per connettersi a un PC, programmando tramite un semplice collegamento seriale (come ICSP) con il chip? Quanta differenza nelle configurazioni è richiesta per diversi produttori ARM, versioni ARM e singoli chip? (ST, Atmel ...) Ad esempio, ogni produttore ha bisogno dei propri compilatori, programmatori, IDE ecc.? O ci sono strumenti comuni per tutti?

EDIT: Va bene, quindi dopo ulteriori ricerche credo di aver trovato una soluzione relativamente economica, una scheda di sviluppo stm32 può essere caricata con il firmware DAPLINK, ma non credo che il firmware ufficiale di Github funzionerà in modo nativo (tutto questo è speculazione fino a quando ottenere la mia scheda di sviluppo stm32 per posta). Ma ho scoperto che la scheda daplink_usb inclusa nel readbear mk20 sta eseguendo un chip stm32, hanno rilasciato il firmware, che deve avere una linea modificata per renderlo compatibile con il cristallo 8mhz (dettagliato nel post del forum collegato di seguito). Altrimenti cambia il cristallo con un 16 mhz. Aggiornamento male una volta che ho confermato questo quando arriva il mio kit di sviluppo.

GITHUB REPO

Buona risorsa forum qui .

Forcella Redbear Github


4
È bello rendersi conto che $ 5 ti offre un Raspberry Pi Zero, che è supportato da un GCC perfettamente normale (e gratuito!). E se hai appena superato lo shock quanto più veloci siano i microcontrollori ARM, l'RPi ti stordirà di nuovo. Il problema principale dell'IMO è che nessun produttore ARM capisce il messaggio sotto l'RPi. Non guadagnerai più molto con i microcontrollori ARM, ma c'è molto altro da fare fornendo moduli CPU pronti all'uso.
MSalters,

4
A volte è eccessivo utilizzare un modulo CPU pronto per l'uso in un'applicazione incorporata.
Bence Kaulics,

3
@MSalters, RPI è ingombrante ... Non ho solo bisogno degli extra che ne derivano. Ho bisogno di cose nude in uno spazio molto compatto per una rapida elaborazione in tempo reale. Inoltre, l'RPI consuma molta più energia di quanto sarebbe accettabile.
CL22,

3
Certo, ma la maggior parte delle schede di sviluppo sarà così. Ma una delle grandi cose dello sviluppo della MCU è che lo sviluppo hardware e software può essere isolato fino a un certo punto.
Ignacio Vazquez-Abrams,

2
Prendi in considerazione l'acquisto di una scheda di sviluppo a basso costo fornita con un bridge USB-SWD integrato. Ciò ti darà accesso alle funzionalità di debug e al download del codice. È possibile dividere l'accesso SWD a qualsiasi altro target quando si adatta a te.
Sean Houlihane,

Risposte:


14

La linea stm32F0 e stm32L0 hanno schede di rilevamento in esecuzione circa $ 10 e Keil fornirà un IDE a piena funzionalità per questa linea a costo zero.

Le istruzioni di installazione di Keil free pro MDK sono QUI

Inoltre, ARM ha un foglio bianco sulla migrazione a Cortex M3 da PIC che potresti trovare utile


7
+1 Ma vale anche la pena notare che la maggior parte (tutte) delle schede di rilevamento ha un STLINK incorporato che può essere utilizzato anche per programmare dispositivi autonomi configurando i jumper.
Roger Rowland,

@RogerRowland - ottimo punto. Ho già usato i programmatori di bordo per le mie schede. La scoperta è una grande linea, in generale. Vorrei che avessero dei fori di montaggio!
Scott Seidman,

Consiglieresti Nucleo o Discovery? Sembrano avere lo stesso prezzo ed entrambi presentano ST-LINK.
David,

@david, non ho usato il nucleo, ma posso dire che le scoperte mi hanno servito bene. A quel prezzo, prendine uno di ciascuno (anche se andrei con due scoperte!)
Scott Seidman,


7

Il modo più semplice - sborsare> $ 10K USD per un compilatore Keil Pro completamente funzionante, acquistare il loro debugger JLINK (un altro $ 1K forse- ce ne sono più economici con alcune limitazioni). IAR è un'altra possibilità costosa (sono forniti esempi per il processore Cortex M7 STM32F7 che funziona sulla demo IAR di 30 giorni)

Il modo più economico per scaricare e installare una toolchain GCC-ARM + Eclipse (gratuita) con plugin di debugger JLINK. Ottieni un clone JLINK per $ 20 o giù di lì, che penso funzionerà bene, non ancora testato, per il debug.

Ci sono istruzioni dettagliate per questi ultimi in rete, tuttavia fanno alcune ipotesi. Aspettatevi di passare un giorno o più a farlo andare, specialmente sotto Windows. Non aspettarti di essere in grado di utilizzare molti degli esempi forniti per altri IDE senza alcun lavoro. Incredibilmente, la toolchain gratuita può usare 'packs' ('sperimentale' proprio ora).

Ci sono altri sistemi come Rowley Crossworks (che usa gcc, credo) che sono meno dolorosi dal punto di vista finanziario. Atmel Studio è un altro, ma ho avuto aspre lamentele da parte del mio sviluppatore di firmware molto esperto al riguardo (ci ho giocato solo brevemente).

Se le tue esigenze di codice sono inferiori a 32 KB, puoi utilizzare lo stesso sistema Keil gratuitamente (versione con codice limitato), ma tieni presente che il percorso di aggiornamento è semplice ma piuttosto costoso. Ad esempio, non compilerà i semplici esempi Ethernet per SAME70. Va bene se stai sostituendo PIC o AVR con ARM di fascia bassa, ma non eccezionale se stai andando ARM perché in realtà devi parlare con display LCD ed eseguire protocolli di comunicazione complessi (probabilmente i moduli precompilati possono essere inclusi senza influire sul Limite di 32K, non ho studiato quel particolare angolo).


7

Ecco cosa uso:

  • La "scheda di sistema minima" STM32F103 (vedere ad es. Qui , core Cortex-M3 ), funziona a 3.3V o alimentazione USB senza componenti esterni, i cloni arrivano per circa $ 3 ciascuno. Questo si adatta perfettamente alla tua richiesta di "entrare direttamente in esso con un pcb break-out generico economico e su una breadboard".
  • Clone programmatore USB ST-Link V2 (simile a questo ), inizia a circa $ 2 e supporta anche il debug su chip.
  • EmBitz (precedentemente Em :: Blocks) come IDE con toolchain gcc, US $ 0
  • CubeMX di STM per aiutare a iniziare con nuovi progetti, US $ 0

5

L'avvio più semplice è probabilmente una delle schede clone di terze parti. Esempio casuale da ST . Ciò richiede che un programmatore utilizzi il protocollo "SWD". ST crea quelli con il marchio "ST-LINK", non sono sicuro se devi usare quelli ST-LINK con dispositivi ST o se è davvero generico.

Una combinazione di SWD e JTAG svolge il ruolo di ICSP su sistemi ARM, offrendo funzionalità di programmazione e debug.

Per quanto riguarda il software, di solito è possibile lavorare con GCC e OpenOCD sulla maggior parte dei chip. I dettagli sono leggermente diversi per ciascun dispositivo. I professionisti utilizzano spesso la toolchain Keil, che è piuttosto costosa.

Alcuni dispositivi (ad esempio della serie Kinetis) dispongono di bootloader USB: il dispositivo viene visualizzato come dispositivo di archiviazione di massa, si scarica un file BIN su di esso e si preme un pulsante. La soluzione più semplice possibile, nessun programmatore richiesto. Atmel AT91 ha un bootloader USB che funziona con un protocollo proprietario chiamato SAM-BA.


le schede st discovery e nucleo hanno uno stlink su di esse e costano il 30% in meno rispetto alle dongle standlink stlink. inoltre ottieni almeno un mcu con cui giocare. Ottenere uno stlink è ancora buono e puoi usarlo con openocd per connetterti via swd ad altri chip cortx-m st o non st.
old_timer

1
Interessante il chip Kenetisis che ho provato non posso usare (ancora) perché non ha bootloader è solo swd e non si collegherà usando uno stlink, presumibilmente ha bisogno di un cmsis-dap. allo stesso modo il samd21 non porta più un bootloader, puoi aggiungerne uno ma è essenzialmente nello spazio flash dell'applicazione e abbastanza banale da cancellare accidentalmente. gli stm32s hanno ancora un bootloader come nxp, forse anche quello sta andando via ...
old_timer

3

Sul fronte IDE, Silicon Labs fornisce Simplicity Studio , basato su Eclipse . Viene fornito di serie con GCC.

C'è un supporto integrato per tutti gli starter kit che vendono, rendendo l'inizio relativamente indolore.

La programmazione utilizza un driver Segger J-Link per gli starter kit (gratuiti). Basta collegare il kit a USB e via.

Atmel ha il suo Studio che si basa sull'IDE di Visual Studio e può connettersi a qualsiasi debugger di Atmel. Questo viene fornito anche con GCC.

Entrambi i fornitori hanno numerosi (molto numerosi) esempi per guidare i propri dispositivi.

Ho usato entrambi e sebbene la documentazione non sia perfetta (non lo è mai), è stato certamente sufficiente per farmi andare relativamente indolore.

Molti dei kit ST (e altri) sono abilitati per mbed .


2

Cypress produce schede di breakout basate su PSOC-4200 (ARM Cortex M0) con un fattore di forma DIP-40 che include un adattatore di programmazione basato su USB in una porzione di break-off. Il prezzo per la scheda breakout e l'adattatore di programmazione collegato (rimovibile) è di 3,99 USD da Digi-Key.


1

Consiglierei CooCox : è la stessa combinazione GCC + Eclipse, ma non è necessario configurare manualmente la toolchain, basta installarla e iniziare a scrivere codice.


Sembra carino, immagino che Atmel non sia supportato. Il core ST M7 è supportato?
Spehro Pefhany,

Sembra che Atmel non sia supportato, ci sono alcune librerie per la serie STM32F7 nei componenti. Devo dire che il futuro di CoIDE non è chiaro: il sito Web è in disordine, gli aggiornamenti sono rari ora, ma è comunque un'ottima scelta per iniziare con la programmazione ARM (specialmente con STM32).
Flanker,

1

Ritengo che TI, NXP (costituito da NXP + Freescale) e ST siano i principali attori nel mondo cortx M, in particolare ST e NXP offrono strumenti davvero competitivi per i nuovi arrivati, un altro parametro importante è la popolarità nella comunità open source che causa una quantità di tutorial, librerie, driver di dispositivo, strumenti e così via

poi :

  1. compilatore online mbed + una scheda mbed
  2. Una scheda di rilevamento STM32 (come STM32F407discovery) + debugger st-link incorporato + framework SPL o HAL (STM CUBE) + IDE keil di licenza gratuito.
  3. Una scheda di rilevamento LPC + debugger LPC-link 2 + framework LPCOPEN + IDE licenza gratuita LPCXPRESSO.

I numeri 2 e 3 sono la scelta migliore per il livello superiore rispetto all'hobby. Ricorda anche con l'uso della licenza gratuita di strumenti professionali come IAR, Keil o persino LPCXPRESSO hai meno dolore mentre ti sposti nell'area professionale.


1
Le librerie e toolchain mcu di ARM sono mbed- vedi [ developer.mbed.org] [developer.mbed.org]
Sean Houlihane
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.