← 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:
- 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.
- 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.
- Projeto do esquema. Criação do esquema com os componentes escolhidos, dimensionamento dos componentes críticos, simulação nos pontos decisivos.
- 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.
- 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.
- 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.
- 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.