HiFive1 – O Arduino Open Hardware Open Core 5

Você sabia que o componente principal do Arduino não é “Open Hardware”? O microcontrolador ATmega328, o coração do Aduino UNO, a central de processamento da nossa plaquinha é uma tecnologia fechada. Nesse artigo apresento o HiFive1 a primeira placa de desenvolvimento compatível com Arduino que trás um microcontrolador totalmente open-source open-hardware de arquitetura Risc-V.

Placa HiFive1 compatível com Arduino Uno

Primeiramente tenho que esclarecer aqui que não é a intenção desmerecer o Arduino como projeto Open Hardware. O Arduino é um projeto com uma grande comunidade e que faz um ótimo trabalho para manter o projeto o mais aberto possível. E também não estou aqui pra dizer ou definir o que é open hardware ou não. Aliás temos um ótimo artigo sobre isso aqui no blog: https://www.makerhero.com/blog/open-hardware-livre/

O fato é que a plataforma Arduino, e outros inúmeros projetos variantes dele, utilizam os microcontroladores com arquitetura AVR de propriedade intelectual fechada da Atmel (hoje Microchip). Por exemplo o Arduino UNO utiliza o ATmega328P, esse da imagem abaixo:

Dentro dessa caixa preta, literalmente, o encapsulamento do chip, é onde está o segredo do projeto e design da arquitetura AVR implementada em semicondutor. E mesmo retirando esse encapsulamento o projeto implementado em semicondutor e feito  na ordem dos micrômetros e nanômetros. Veja as imagens abaixo do circuito integrado exposto:

Imagem do instagram @tallerelectronica

Bloco do Semicondutor do Circuito integrado ATmega328P

Esse pequeno bloco de semicondutor possui milhares, milhões de componentes microscópicos que juntos implementam as funcionalidades do circuito integrado.

Projetar e produzir circuitos integrados não é nada fácil, e demanda altos investimentos. Então as grandes corporações que as fazem guardam seu segredos e protegem sua propriedade intelectual a sete chaves.

Hoje nos estamos vendo esse cenário mudar, impulsionado pelo sucesso dos projetos e comunidades open-source o mercado começa a compreender que a cultura de compartilhamento e contribuição pode ser o melhor para os negócios de todos. Já temos projetos de processadores com documentação, especificações e conjunto de instruções totalmente abertos, os chamados open-core.

Por que eu Deveria me Importar?

Se você estiver antenado no cenário atual dos microprocessadores modernos com certeza ouviu falar das vulnerabilidades de hardware Spectre and Meltdown que foram descobertas nos processadores x86 e ARM. Essas vulnerabilidades foram causadas por falhas no projeto dos processadores, que são estritamente fechados. Nós usuários finais desses chips não fazemos ideia de como é o funcionamento interno dessas caixinhas pretas, e sem acesso ao projeto não se pode auditar o funcionamento. Ficamos a mercê dos fabricantes e de seus interesses comerciais. Quem sabe não há mais vulnerabilidades nesses chips que ainda não temos conhecimento!

A vantagem de se ter um processador open-core open-hardware é que múltiplas companhias, e a comunidade, que usem uma especificação aberta podem auditar e propor melhorias e correções de vulnerabilidades e falhas. Esse trabalho em comunidade e compartilhamento mútuo deixam o projeto mais seguro e agilizam a correção de falhas.

RISC-V

O RISC-V (RISC Five) é um padrão de conjunto de instruções open-core, open-source e gratuito. O que quer dizer que qualquer um que queira utilizar esse padrão para construir seus processadores pode assim o fazer sem ter de pagar licenciamento. Hoje grandes empresas e fabricantes de semicondutores gastam milhões, bilhões de dólares em licenciamento de propriedade intelectual para aplicar os padrões, da ARM e MIPS por exemplo, em seus chips.

Está em desenvolvimento desde 2010 e possui grande suporte de software, ferramentas de compilação para sua nova arquitetura e grande quantidade de bibliotecas já portadas, o que vem tornando o RISC-V o padrão para open-core mais útil e utilizado atualmente. Grandes fabricantes de semicondutores como NVidia, Samsung e Quallcomm estão aplicando recursos e apostando no RISC-V.

HiFive1 – Arduino RISC-V

A HiFive1 é a primeira placa de desenvolvimento compatível com Arduino com microcontrolador RISC-V. O Freedom E310 também é o primeiro chip RISC-V a ser produzido em massa. A fabricante é a SiFive, empresa pioneira no setor, que disponibiliza os arquivos do projeto do core em seu Github: https://github.com/sifive/freedom .

Você pode baixar os arquivos do Freedom E310 e testar sua implementação, modificar se assim quiser, em uma FPGA.

Algumas das especificações do HiFive1:

  • 320+ MHz de clock;
  • 1.61 DMIPs/MHz;
  • 128Mb Flash armazenamento;
  • 16Kb RAM;
  • 19 pinos de I/O;
  • Micro USB serial;
  • 9 pinos para PWM;

O único ponto que fica a desejar é a falta de um ADC (analog to digital converter) embutido no SoC FE310, sem isso ficamos sem portas de entrada analógicas.

Conclusão

Os projetos de processadores e microcontroladores open-core são uma ruptura no modelo atual. E ao meu ver um grande avanço, não só para as empresas e negócios mas também para hobbystas e estudantes que terão mais informação sobre a tecnologia que estão a usar. Aplicar um padrão aberto nos dá mais segurança, liberdade de fazer escolhas, mudanças e a possibilidade de democratizar a tecnologia. Em mundo cada vez mais conectados por esses circuitos integrados, isso é muito importante.

Viva a liberdade!

Faça seu comentário

Acesse sua conta e participe

5 Comentários

  1. Gostei da matéria, muito bem definidos os pontos. Porém há alguns problemas na minha interpretação, não sei interpretar o que escreveu sobre o clock, eu comprei com vocês um arduino uno R3 do kit maker. É, desculpe, sou novo com arduino, sei que o meu tem 16MHz de “velocidade”, este teria 320? (320+ MHz de clock) é o mesmo processador do Mega-Due? Se for, ele também é 5V ou 3.3 como o Due? Entendi que é compatível com o arduino, então se eu quiser mais “Velocidade” nas tarefas eu posso substituir o R3 por ele e enviar o código pelo mesmo USB e software, por exemplo?

  2. Foi interessante o artigo, porém possui alguns erros conceituais importantes, que não devem ser propagados a fim de não passar ideias equivocadas aos mais inexperientes; acredito que os erros vêm do fato do autor ser da área de computação/software e não dárea de hardware eletrônica/microeletrônica, que é o meu caso, vamos aos detalhes:

    1) O fato do núcleo (CPU) do microcontrolador possuir patente ou propriedade intelectual a ser disponibilizado por meio de pagamento de licença, NÃO significa que é uma “caixa preta” conforme o autor informou, os desenvolvedores têm acesso sim a documentações muito bem feitas e dependendo do tipo de licenciamento têm acesso até ao código de descrição de hardware (VHDL, Verilog ou outros); e podem sim ser realizados testes e descoberto defeitos, como foram encontrados. Existe um projeto muito interessante da ARM, que disponibiliza tudo para estudo e desenvolvimento de Circuitos Integrados Customizados (SoC) onde você como estudante ou desenvolvedor pode implementar os núcleos gratuitamente em FPGA e em protótipos de SoC, segue o link: https://developer.arm.com/products/designstart

    2) O custo de um circuito integrado com núcleo (CPU) embutida ou qualquer outro circuito com propriedade intelectual (IP) NÃO terá seu custo reduzido devido a inexistencia de cobrança de royalt, isso se aplica a software, que é a área do autor, mas NÃO se aplica a hardware, quando se trata de hardware, a única forma de redução de custo é com o aumento da escala de produção, um CI com um núcleo comercial com uma escala de produção de milhões de unicades, fabricado em uma tecnologia de produção consolidada SEMPRE será mais barato do que um CI que não possua licenças dos IP, porém com uma escala de produção menor.

    Peço desculpas, não estou querendo criticar e de forma alguma sou contra a filosofia open source / open hardware, inclusive apoio. Mas as coisas precisam ser entendidadas da forma correta, hardware e software possuem formas de desenvolvimento, produção a agregação de valor muito diferentes, e oquê para um gera drástica redução de custo não se aplica ao outro; e nós da área técnica não podemos deixar que conceitos errados se propaguem, pois já ví outras pessoas do mundo do software com esse mesmo discurso, o qual está INCORRETO.

    Agradeço a atenção.
    Gabriel Rosa Paz

    1. Olá Gabriel,

      obrigado pela leitura e pela crítica.
      Aqui vão algumas explicações sobre os seus pontos:

      1) Muito bacana o produto da Design Start da ARM, não o conhecia.
      Mas ele só dá acesso a alguns Cortex-M. Todos os cores RISC-V, que eu conheço, são abertos sem precisar de compra de grandes lotes, assinatura de NDA ou contratos.

      2) Aqui você me entendeu errado, aliás o que escrevi foi que: “Projetar e produzir circuitos integrados não é nada fácil, e demanda altos investimentos”. Concordo plenamente que ter um CPU open core não necessariamente ira reduzir seu custo. O que eu espero é que com um padrão aberto as grandes corporações dos semicondutores, as quais mencionei no artigo, e que aliás são parceiras da RISC-V Foundation, ou seja já investem no open ISA, comecem a investir cada vez mais no padrão RISC-V. Por exemplo, um dia talvez parem de pagar por licenciamento e comecem a investir esse recurso no desenvolvimento e segurança da open ISA do RISC-V. Assim toda a comunidade sai ganhando.

      O que eu espero pro futuro é que o desenvolvimento de hardware e software estejam cada vez em sinergia, e as iniciativas de open ISA estão ajudando nessa cooperação.
      Espero que tenha esclarecido meu ponto de vista.
      Abraços!

    2. 100% correto. Concordo. Acho que os custos seriam mais altos devido a isso.
      Já desenvolvi muitas tecnologias com FPGA e você precisa de targets e softwares extremamente caros para desenvolver isso.

  3. Mas ainda não esta disponível esta para venda ?