Requisiti minimi del circuito ARM


13

Ho fatto qualche sviluppo con ATMega e sto cercando di ampliare i miei orizzonti. Ho un paio di chip serie Cortex M4 e vorrei fare un ARM equivalente al Breadboarduino

Ho intenzione di incidere la mia scheda o utilizzare una scheda breakout per ARM e breadboard per il resto. Un riferimento o uno schema dei componenti minimi sarebbe molto apprezzato.

Esistono buone risorse per determinare i componenti minimi richiesti per operare e idealmente programmare un chip ARM?

AGGIORNARE:

Sono aperto a suggerimenti hardware alternativi. Di seguito è riportato il chip con cui sto attualmente cercando di lavorare:


7
Puoi dirci quali dispositivi hai? Il collegamento al foglio dati sarebbe fantastico.
Stevenvh,

Spero non sia il pacchetto WLCSP che si desidera incidere il proprio PCB per: un BGA passo 0,4 mm! : - /
stevenvh,

@stevenvh Non sono così coraggioso. È il pacchetto LQFP 144
ZnArK,

1
Controlla la serie NXP LPC, hanno (tutti?) Un bootloader seriale integrato. lpc21isp è un buon strumento lato PC. LPC1114 è persino disponibile in DIP28! Lpc1343 ha un bootloader USB (!) Integrato (che suona bene, ma è un po 'complicato usare IMO).
Wouter van Ooijen,

1
@Wouter - Sì, ho anche scoperto che DIP (vedi risposta). LPC1114 è l'unico Cortex-qualunque sia qualsiasi produttore elencato su Digikey disponibile in DIP.
Stevenvh,

Risposte:


9

Questo dipende davvero dai chip che stai usando - non hai specificato quale hai ottenuto. In genere è necessario almeno un cristallo, disaccoppiare i tappi e ripristinare la logica. L'interfaccia di programmazione potrebbe essere una semplice interfaccia JTAG.

Ma tutto ciò dovrebbe essere indicato nella scheda tecnica dei chip.

Aggiornamento (per STM32F407):

Guarda le seguenti pagine nella scheda tecnica

  • 23s. per le tensioni necessarie (1,8-3,6 V, quindi è necessario un regolatore) e come utilizzare il regolatore interno (tirando il pin PDR_ON in alto)
  • 69ff. per i pinoli
  • 69 + 74 per lo schema di alimentazione (queste sono le pagine più interessanti poiché mostrano le connessioni di alimentazione e i condensatori necessari)

Non è necessario un circuito di ripristino (è integrato - vedi pagina 23) o un oscillatore (l'oscillatore da 16 MHz integrato è selezionato all'avvio, vedi pagina 22). Quindi, usando una scheda breakout LQFP144 (come quella di futurlec (vedi in fondo alla pagina) potrebbe davvero essere sufficiente.

Puoi anche guardare lo schema della scheda STM32F4DISCOVERY (vedi il suo manuale utente , pagina 33. Quello che vedi è il circuito di base - e contiene persino i cristalli esterni.


Grazie per il tuo contributo. Sto ponendo questa domanda perché il foglio dati è enorme e francamente non capisco tutto. So che la vera soluzione sarebbe quella di ottenere un diploma EE, ma la mia carriera attuale e altre responsabilità non rendono questa possibilità in questo momento. Ci sono progetti hardware aperti che avrebbero uno schema del loro circuito ARM. Sono fiducioso di poterlo separare e realizzare un progetto utilizzabile.
ZnArK,

1
La scheda demo STM collegata sopra viene fornita con lo schema, quindi puoi iniziare con questo. Altrimenti Olimex apre i loro schemi, ad esempio per questa scheda M4 .
hli,

Non me ne sono reso conto. Grazie per le informazioni. Molto utile,
ZnArK,

10

Sei sicuro di voler fare questo per un Cortex-M4? È un grande balzo in avanti da AVR e non vedo come utilizzeresti tutte le funzionalità che offre. Per iniziare con un Cortex-M4 di solito viene fornito in un pacchetto di grandi dimensioni, in genere più di 80 pin per le parti entry level e 200+ non fanno eccezione, pensate a QFP o BGA. Faranno una scheda di breakout con due file di 40 pin sulla breadboard?

Il Cortex-M4 è anche progettato per l'alta velocità: da 120 MHz a 200+ MHz in genere. OK, potrebbe non essere necessario progettare il PCB per tali velocità se si utilizza un PLL su chip. Ma per quanto riguarda le periferiche, come USB o Ethernet?

Ovviamente è possibile eseguirlo a velocità inferiori e tralasciare gran parte della funzionalità su chip, ma mi chiedo a che cosa serve inizialmente un Cortex-M4. Penso che un Cortex-M3 o anche -M0 sia più appropriato per cominciare. Non voglio scoraggiarti, voglio rimanere realistico.

Se non vuole andare avanti con il Cortex-M4 si può fare con il minimo hardware esterno. L'NXP LPC407x, ad esempio, ha un oscillatore RC interno che è l'oscillatore predefinito al ripristino, quindi non è nemmeno necessario un cristallo. Sarà sufficiente un circuito di ripristino e un corretto disaccoppiamento dell'alimentazione per metterlo in funzione.

Per un Cortex-M0 può valere la pena dare un'occhiata all'NXP LPC111x . Certo, non viene fornito con molta memoria, ma è disponibile in un pacchetto DIL-28 , che è una rarità per ARMs. In alternativa puoi utilizzare una scheda di sviluppo come LPCXpresso ,

inserisci qui la descrizione dell'immagine

dove la metà destra è la scheda dell'applicazione, che può essere separata dal collegamento LPC. Come puoi vedere non c'è quasi alcun hardware esterno richiesto per l'applicazione. E se saldi un set di intestazioni su di esso, puoi collegarlo a una breadboard.


Ottimo riscontro. Non ho difficoltà a utilizzare Cortex-M4. Esaminerò i modelli M3 / M0. Verificherò l'esatto chip e pacchetto che ho e aggiornerò la domanda.
ZnArK,

1
Ho fatto un salto dai PIC18 agli LPC2100 (era il 2008, ormai ARM7 è stato sostituito da Cortex-M3). È stato un grande salto in termini di prestazioni, ma non è stato un grande salto in termini di complessità hardware a livello di scheda.
Nick Alexeev

1
@Nick - Ho usato anche diverse parti LPC2000, ma come dici tu sono state sostituite da Cortex-M3. Cortex-M4 è una lega diversa.
Stevenvh,

8

Come dice Steven, è un bel salto per ARM da un micro a 8 bit, quindi aspettati un bel po 'di apprendimento / tempo speso lungo la strada.
Inoltre non sceglierei l'M4 per il tuo primo ARM, semplicemente perché non è uscito troppo a lungo e c'è meno supporto / informazioni là fuori per questo. Penso che un M3 o M0 sia una scelta migliore e ci sarà molto da fare.

Puoi sicuramente creare la tua scheda, ma forse sarebbe meglio prendere prima una scheda di sviluppo piccola / economica. Per quanto riguarda lo sviluppo, ci sono molte opzioni, da quelle gratuite (eclipse + GCC + OpenOCD) a costose (Keil, Rowley, ecc.) Personalmente utilizzo l'IDE Raisonance Ride7 e gli strumenti con la serie STM32 ARM M3 / M4, che è un po 'più economica di Keil / Rowely ma abbastanza buono.

Dai un'occhiata a una delle semplici schede di sviluppo di qualcuno come ST, Olimex, ecc. Questa scheda di sviluppo ha lo schema più semplice che ho trovato, per un Cortex-M3 STM32.

inserisci qui la descrizione dell'immagine


Ottimo consiglio In arrivo una scheda di sviluppo (Stellaris Launchpad), ho intenzione di familiarizzare con quello prima di creare la mia scheda. Ho anche aggiornato il mio post con le informazioni sull'hardware.
ZnArK,

Si noti che le schede costano circa 3 volte tanto quanto l'offerta di ST.
Chris Stratton,

Il nuovissimo launchpad di @ChrisStratton TI era disponibile per $ 5 spediti . Potrebbe essere ancora disponibile. Prezzo difficile da battere.
ZnArK,

@ChrisStratton - sì, l'ho aggiunto per lo schema piuttosto che per il prezzo (non ho nemmeno controllato). Ho una delle schede STM32F4 di scoperta, sono davvero molto economiche ma ho pensato che potesse confondere un po 'le cose con tutte le cose extra lì e il programmatore STLink integrato senza una connessione JTAG "standard". Tuttavia, per meno di $ 10 (o qualunque cosa sia ora) probabilmente vale la pena afferrare anche uno di questi (forse la versione M3 è migliore come detto)
Oli Glaser,

Per semplici progetti embedded, trovo l'SWD a 4 pin molto più conveniente di jtag. Nella sua forma originale di blocco del fornitore potrebbe non esserlo, ma ora ci sono soluzioni aperte per parlare con gli adattatori.
Chris Stratton,

5

L'Arduino A causa dovrebbe essere fuori abbastanza presto:

adruino due

Chip è un Cortex-M3 SAM3X8 di Atmel. Potrebbe valere la pena aspettare se hai già familiarità con le schede in stile Arduino e la documentazione in stile Atmel. E dal momento che sarà open source per soddisfare i requisiti di Arduino, puoi ovviamente breadboard-duino.


Ottimo consiglio Sapevo che sarebbe uscito, ma non ho pensato di usare questo modello AA. Ottimo consiglio
ZnArK,

4

Ti consiglio di verificare che Mbed sia un dispositivo cortex-m3 con alcune belle periferiche, nxp fornisce compilatore e molte librerie di librerie e community, un modo davvero semplice per programmarlo ed è già in un pacchetto da usare su una breadboard. Penso che sarebbe il modo più semplice per passare da AVR a ARM.


2

Molte delle parti ST possono, almeno se non utilizzano un ricetrasmettitore USB, far funzionare l'oscillatore interno ad alta velocità.

Ciò significa fondamentalmente che il tuo "circuito" è costituito da cappucci di bypass e alcune resistenze su cose come il reset e come terminazione sull'interfaccia SWD.

Le schede di valutazione da 8 a 10 $ della ST programmeranno le parti che hai messo sulla tua scheda sul bus SWD; ci sono strumenti open source anche per loro, quindi puoi mettere l'operazione di programmazione direttamente nel tuo Makefile.

Cercare qualcosa nel 48 PQFP probabilmente renderà la vita più facile al primo tentativo di bordo. Puoi assemblarli senza ingrandimento (hai solo una treccia fine disponibile per riparare il ponte o due che probabilmente creerai per lato), ma avere una lente disponibile per controllare il tuo lavoro sarebbe utile.


1
$ 8-10 non saranno Cortex-M4, immagino. Puoi specificare a quali parti stai pensando? Anche per il pacchetto QFP-48? TIA
stevenvh,

1
Cortex M3 ... tendono a creare ogni versione in diversi pacchetti, di cui il QFP-48 sarà il più semplice con cui lavorare manualmente.
Chris Stratton
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.