Início

Do conceito ao protótipo — desenvolvimento de produto autónomo

Desenvolvimento completo de dispositivos eletrónicos: esquema, traçado, firmware, projeto FPGA, simulação e verificação. Especificação, código, ensaio, entrega — tudo de uma só mão.

Os dispositivos embedded raramente nascem de uma só disciplina. Uma ideia nova exige um esquema, o esquema um traçado, o traçado firmware ou um projeto FPGA, e tudo isto exige no fim verificação e documentação. Distribuir esta interação por vários fornecedores equivale a comprar interfaces — e as interfaces são a fonte de erro mais frequente.

Desenvolvimento completo autónomo significa: um único interlocutor, uma responsabilidade ponta a ponta, um estado documental coerente. Os senhores poupam coordenação, eu posso decidir sem ter de consultar uma cadeia de fornecedores.

Como decorre um projeto completo típico

Embora cada projeto seja diferente, o desenrolar segue um padrão reconhecível:

  1. Compreender a tarefa. A primeira conversa esclarece o que o dispositivo deve fazer, que restrições se aplicam (volume, custos, dimensão, consumo, requisitos normativos) e que interfaces existem com sistemas em vigor.
  2. Conceito e especificação. Sobre a base da tarefa esboça-se um conceito técnico: que plataforma de microcontrolador ou FPGA encaixa, que bus, que sinais analógicos e digitais, que arquitetura de software. O resultado é um documento de especificação que serve de base a todo o resto.
  3. Projeto do esquema. Criação do esquema com os componentes escolhidos, dimensionamento dos componentes críticos, simulação nos pontos decisivos.
  4. Traçado de placa. Projeto PCB multicamada com atenção aos sinais de alta velocidade, à CEM, à dissipação térmica e à fabricabilidade. Seleção de um fabricante de placas e acompanhamento do fabrico.
  5. Firmware ou projeto FPGA. Implementação da lógica de controlo ou processamento de sinal em C/C++ para microcontroladores, em VHDL/SystemVerilog para FPGA — ou em combinação. Bare-metal em microcontroladores limitados, FreeRTOS ou RTOS equivalente em sistemas maiores.
  6. Verificação e ensaio. Simulação de circuito nos pontos críticos, testbenches para projetos FPGA, ensaios de hardware sobre o protótipo, bancada HIL se necessário para o software.
  7. Entrega e documentação. Código-fonte completo, esquema, dados de traçado, lista de materiais, documentação da abordagem e das decisões de projeto. Se desejar, transferência de conhecimento para a equipa do cliente.

Se necessário, encarrego-me também da coordenação com um fabricante em série que entregue a qualidade pretendida — como no projeto Audi (ver referências), em que um protótipo cablado à mão se tornou uma placa industrial fabricada à máquina.

Três disciplinas — uma só mão

As três disciplinas seguintes confluem num projeto completo:

Hardware

Desenvolvimento de hardware

Conceção e realização do hardware eletrónico — do esquema ao traçado de placa até à coordenação da produção em série. Especialidades: sistemas com microcontrolador, placas FPGA e circuitos mistos analógico/digitais.

  • Sistemas com microcontrolador (ARM Cortex-M, ESP32, Atmel/Microchip)
  • Projeto e integração FPGA (Xilinx Artix-7, Zynq)
  • Circuitos analógicos e digitais
  • Projeto PCB (Pulsonix, multicamada, alta velocidade, CEM)
  • Dimensionamento de circuitos e seleção de componentes
  • Acompanhamento do fabrico de PCB e coordenação com parceiros industriais
  • Colocação em serviço e bring-up de hardware
Software

Desenvolvimento de software

Implementação do software embedded sobre o hardware desenvolvido — desde a programação bare-metal próxima do hardware até aos sistemas operativos de tempo real multinúcleo. Linguagens, plataformas e protocolos escolhem-se segundo os requisitos do projeto, não por preferência.

  • Software embedded (C, C++, assembler)
  • Programação FPGA (VHDL, Verilog, SystemVerilog)
  • Sistemas de tempo real (FreeRTOS, bare-metal, multinúcleo)
  • Protocolos de comunicação (CAN, CAN FD, Ethernet, EtherCAT, I²C, SPI, MOST)
  • Desenvolvimento de drivers para interfaces próximas do hardware
  • Bootloader, watchdog, mecanismos de atualização de firmware
  • Algoritmos para processamento de sinal e controlo
Verificação

Simulação e verificação

Validação sistemática da solução desenvolvida — ao nível de circuito, ao nível de FPGA, ao nível de sistema. A verificação não é um passo posterior, é parte integrante do desenvolvimento.

  • Simulação de circuito no domínio do tempo e da frequência
  • Análise de Monte Carlo e estudos do pior caso
  • Verificação FPGA com testbenches em SystemVerilog
  • Simulação HDL (Vivado, Icarus Verilog, Verilator)
  • Diagrama de Bode, análise de Nyquist, estudos de estabilidade
  • Ensaios hardware-in-the-loop para sistemas integrados

O que distingue o desenvolvimento completo do «mero coding»

Quando um cliente procura hoje «um programador embedded», pensa na maior parte das vezes em alguém que execute uma tarefa parcial: um módulo em C, um componente FPGA, um driver. Para isso há muitos prestadores.

O desenvolvimento completo é diferente. Exige alguém capaz de decidir — sobre arquitetura, sobre seleção de componentes, sobre interfaces, sobre os compromissos entre custo e funcionalidade. Esta competência decisória não está em todos os CV, e não se substitui acrescentando especialistas.

Assumo o desenvolvimento completo onde o cliente não quer manter um departamento embedded próprio — e onde, ao mesmo tempo, o esforço e a responsabilidade daí decorrentes podem economicamente recair numa só pessoa.

Formas de cooperação

Os projetos completos são em geral tratados em contrato a preço fixo com compromisso firme de entrega. O esforço estima-se antes do início do projeto, o preço fica garantido. Para trabalhos exploratórios sem ponto de chegada exato é alternativamente possível um regime de horas. Detalhes na página Adjudicação.

Esquema de cores

Idioma