Requisitos mínimos do circuito ARM

13

Fiz alguns desenvolvimentos com o ATMega e pretendo ampliar meus horizontes. Eu tenho alguns chips da série Cortex M4 e gostaria de fazer um ARM equivalente ao Breadboarduino

Eu pretendo gravar minha própria prancha ou usar uma prancha de breakout para o ARM e testar o resto. Uma referência ou esquema dos componentes mínimos seria muito apreciada.

Existem bons recursos para determinar os componentes mínimos necessários para operar e, idealmente, programar um chip ARM?

ATUALIZAR:

Estou aberto a sugestões de hardware alternativo. Abaixo está o chip com o qual estou tentando trabalhar no momento:

ZnArK
fonte
7
Você pode nos dizer quais dispositivos você tem? O link para a folha de dados seria ótimo.
Stevenvh 15/10/12
Espero que não seja o pacote WLCSP para o qual você deseja gravar sua própria PCB: um BGA de 0,4 mm! : - /
stevenvh 15/10/12
@stevenvh Eu não sou tão corajoso. É o pacote LQFP 144
ZnArK 15/10/12
1
Verifique a série NXP LPC, eles (todos?) Possuem um carregador de inicialização serial on-board. O lpc21isp é uma boa ferramenta do lado do PC. O LPC1114 também está disponível no DIP28! O lpc1343 possui um carregador de inicialização USB (!) (Que soa bem, mas é um pouco complicado de usar IMO).
Wouter van Ooijen
1
@ Wouter - Sim, eu também descobri que DIP (ver resposta). O LPC1114 é o único Cortex - qualquer que seja o fabricante listado no Digikey, disponível no DIP.
Stevenvh 15/10/12

Respostas:

9

Isso realmente depende dos chips que você está usando - você não especificou qual deles comprou. Normalmente, você precisaria de pelo menos um cristal, separar as tampas e redefinir a lógica. A interface de programação pode ser uma interface JTAG simples.

Mas tudo isso deve ser indicado na folha de dados dos chips.

Atualização (para o STM32F407):

Veja as seguintes páginas na folha de dados

  • 23ss. para as tensões necessárias (1,8-3,6V, então você precisa de um regulador) e como usar o regulador interno (puxando o pino PDR_ON alto)
  • 69ff. para as pinagens
  • 69 + 74 para o esquema de fonte de alimentação (estas são as páginas mais interessantes, pois mostram as conexões da fonte de alimentação e os capacitores necessários)

Você não precisará de um circuito de redefinição (está integrado - consulte a página 23) ou de um oscilador (o oscilador de 16MHz integrado é selecionado na inicialização, consulte a página 22). Portanto, o uso de uma placa do LQFP144 (como a da futurlec (consulte a parte inferior da página)) pode realmente ser suficiente.

Você também pode ver o esquema da placa STM32F4DISCOVERY (consulte o manual do usuário , página 33. O que você vê lá é o circuito básico - e ele ainda contém os cristais externos.

hli
fonte
Obrigado pela sua contribuição. Estou fazendo essa pergunta porque a folha de dados é enorme e, francamente, não entendo tudo nela. Eu sei que a solução real seria obter um diploma de EE, mas minha carreira atual e outras responsabilidades não tornam isso uma possibilidade no momento. Existem projetos de hardware aberto que tenham um esquema do seu circuito ARM. Estou confiante de que poderia separar isso e fazer um projeto utilizável.
ZnArK 15/10/12
1
A placa de demonstração do STM vinculada acima vem com o esquema, para que você possa começar com isso. Caso contrário, o Olimex abre seus esquemas, por exemplo, para esta placa M4 .
Hll
Eu não percebi isso. Obrigado pela informação. Muito útil, #
214 ZnArK
10

Tem certeza de que deseja fazer isso para um Cortex-M4? É um grande salto do AVR, e não vejo como você usaria todos os recursos que ele fornece. Para começar com um Cortex-M4, geralmente vem em um pacote grande, geralmente com mais de 80 pinos para as peças de nível básico e mais de 200 não é uma exceção, pense em QFP ou BGA. Vai fazer uma placa de fuga com duas linhas de 40 pinos na placa de ensaio?

O Cortex-M4 também foi projetado para alta velocidade: 120 MHz a 200+ MHz normalmente. OK, talvez não seja necessário projetar sua PCB para essas velocidades se você usar uma PLL no chip. Mas e os periféricos, como USB ou Ethernet?

É claro que você pode executá-lo em velocidades mais baixas e deixar de fora grande parte da funcionalidade do chip, mas eu me pergunto qual é a utilidade de um Cortex-M4 para começar. Eu acho que um Cortex-M3 ou mesmo -M0 é mais apropriado para começar. Não quero desencorajar você, quero permanecer realista.

Se você não quer ir em frente com o Cortex-M4 você pode fazer com hardware externo mínimo. O NXP LPC407x por exemplo, possui um oscilador RC interno, que é o oscilador padrão na redefinição, para que você nem precise de um cristal. Um circuito de redefinição e o desacoplamento adequado da fonte de alimentação serão tudo o que você precisa para colocá-lo em funcionamento.

Para um Cortex-M0, o NXP LPC111x pode valer a pena dar uma olhada. É verdade que ele não vem com muita memória, mas está disponível em um pacote DIL-28 , o que é uma raridade para os ARMs. Como alternativa, você pode usar uma placa de desenvolvimento como o LPCXpresso ,

insira a descrição da imagem aqui

onde a metade direita é a placa de aplicação, que pode ser separada do link LPC. Como você pode ver, não há praticamente nenhum hardware externo necessário para o aplicativo. E se você soldar um conjunto de cabeçalhos, poderá conectá-lo a uma tábua de pão.

stevenvh
fonte
Ótimo feedback. Não estou muito empolgado em usar o Cortex-M4. Vou dar uma olhada nos modelos M3 / M0. Vou verificar o chip e o pacote exatos que tenho e atualizar a pergunta.
ZnArK 15/10/12
1
Eu dei um salto dos PIC18s para os LPC2100s (isso foi em 2008, agora o ARM7 foi substituído pelo Cortex-M3). Foi um grande salto no desempenho, mas não foi um grande salto na complexidade do hardware no nível da placa.
Nick Alexeev
1
@ Nick - Também usei várias peças LPC2000, mas como você diz, elas foram substituídas pelo Cortex-M3. Cortex-M4 é uma liga diferente.
stevenvh
8

Como Steven diz que é um grande salto para o ARM de um micro de 8 bits, espere um pouco de aprendizado / tempo gasto no caminho.
Eu também não iria para o M4 no seu primeiro ARM, simplesmente porque não demorou muito e há menos suporte / informações por aí. Penso que um M3 ou M0 é uma escolha melhor e será suficiente para continuar.

Você certamente pode criar seu próprio quadro, mas talvez seja melhor comprar um quadro de desenvolvimento pequeno / barato primeiro. Em termos de desenvolvimento, existem muitas opções, de gratuitas (eclipse + GCC + OpenOCD) a caras (Keil, Rowley, etc.) Pessoalmente, uso o Raisonance Ride7 IDE e ferramentas com a série STM32 ARM M3 / M4s, que é um pouco mais barata que Keil / Rowely, mas bom o suficiente.

Dê uma olhada em uma das placas de desenvolvimento simples de alguém como ST, Olimex etc. Esta placa de desenvolvimento tem o esquema mais simples que eu poderia encontrar, para um STM32 Cortex-M3.

insira a descrição da imagem aqui

Oli Glaser
fonte
Ótima sugestão. Tenho um quadro de desenvolvedores a caminho (Stellaris Launchpad), planejo me familiarizar com isso antes de criar meu próprio quadro. Também atualizei minha postagem com as informações de hardware.
ZnArK 15/10/12
Observe que os painéis custam cerca de 3x o valor da oferta da ST.
Chris Stratton
A mais nova barra de lançamento da @ChrisStratton TI estava disponível por US $ 5 enviados . Ainda pode estar disponível. Preço difícil de bater.
ZnArK 15/10/12
@ ChrisStratton - sim, eu adicionei para o esquema em vez de preço (nem cheque). Eu tenho uma das placas STM32F4 de descoberta, elas são muito baratas, mas achei que poderia confundir um pouco as coisas com todo o material extra existente e o programador STLink integrado sem conexão JTAG "padrão". Ainda assim, para menos de US $ 10 (ou o que é agora) é provavelmente vale a pena pegar um deles como bem (talvez a versão M3 é melhor como mencionado)
Oli Glaser
Para projetos incorporados simples, acho o SWD de 4 pinos muito mais conveniente que o jtag. Em sua forma original de bloqueio de ferramentas de fornecedor, pode não ser, mas existem soluções abertas para conversar com os adaptadores agora.
Chris Stratton
5

O Arduino Due deve sair em breve:

adruino devido

Chip é um SAM3X8 Cortex-M3 da Atmel. Pode valer a pena esperar se você já estiver familiarizado com as placas de estilo Arduino e a documentação de estilo Atmel. E como ele será de código aberto para atender aos requisitos do Arduino, é claro que você pode fazer isso.

Embedded.kyle
fonte
Ótima sugestão. Eu sabia que isso estava saindo, mas não pensei em usar esse modelo aa. Ótima sugestão.
ZnArK 15/10/12
4

Eu recomendo que você verifique o Mbed como um dispositivo córtex-m3 com alguns periféricos legais, o nxp fornece compilador e muitas bibliotecas de bibliotecas e comunidades, uma maneira muito fácil de programá-lo e já está em um pacote para ser usado em uma tábua de pão. Eu acho que seria a maneira mais fácil de fazer a transição do AVR para o ARM.

Kvegaoro
fonte
2

Muitas partes do ST podem, pelo menos se não estiver usando um transceptor USB, executar seu oscilador interno de alta velocidade.

Isso basicamente significa que o seu "circuito" consiste em limites de derivação e alguns resistores em coisas como a redefinição e como terminação na interface SWD.

As placas de avaliação de US $ 8-10 da ST programarão as peças que você colocar em sua própria placa no barramento SWD; também existem ferramentas de código aberto para eles, para que você possa colocar a operação de programação diretamente no seu Makefile.

Procurar algo no 48 PQFP provavelmente tornará a vida mais fácil em sua primeira tentativa no conselho. Você pode montá-las sem ampliação (basta ter uma trança fina disponível para consertar a ponte ou duas que você provavelmente criará por lado), mas ter uma lupa disponível para verificar seu trabalho seria útil.

Chris Stratton
fonte
1
US $ 8-10 não será o Cortex-M4, eu acho. Você pode especificar em quais partes está pensando? Também para o pacote QFP-48? TIA
stevenvh 15/10/12
1
Cortex M3 ... eles tendem a criar cada versão em vários pacotes, dos quais o QFP-48 será o mais fácil de trabalhar manualmente.
Chris Stratton