Startsida

Från koncept till prototyp — självständig produktutveckling

Helhetsutveckling av elektroniska enheter: schema, kortlayout, fast programvara, FPGA-design, simulering och verifiering. Specifikation, kod, test, leverans — allt ur en hand.

Embedded-enheter uppstår sällan ur en enda disciplin. En ny idé kräver ett schema, schemat kräver en kortlayout, kortlayouten kräver fast programvara eller FPGA-design, och allt detta kräver i slutändan verifiering och dokumentation. Att fördela detta samspel på flera leverantörer betyder att köpa gränssnitt — och gränssnitt är den vanligaste felkällan.

Självständig helhetsutveckling betyder: en enda kontaktperson, ett ände-till-ände-ansvar, ett sammanhängande dokumentationstillstånd. Du sparar samordning, jag kan besluta utan att rådfråga en leverantörskedja.

Hur ett typiskt helhetsprojekt löper

Även om varje projekt är olika följer förloppet ett igenkännbart mönster:

  1. Förstå uppgiften. Det inledande samtalet klargör vad enheten ska göra, vilka randvillkor som gäller (volym, kostnad, storlek, förbrukning, normkrav) och vilka gränssnitt som finns mot befintliga system.
  2. Koncept och specifikation. Utifrån uppgiften skissas ett tekniskt koncept: vilken mikrostyrenhets- eller FPGA-plattform passar, vilka bussar, vilka analoga och digitala signaler, vilken programvaruarkitektur. Resultatet är ett specifikationsdokument som ligger till grund för allt övrigt.
  3. Schemadesign. Uppställning av schemat med valda komponenter, dimensionering av kritiska komponenter, simulering vid avgörande punkter.
  4. Kortlayout. Flerlagers-PCB-design med hänsyn till höghastighetssignaler, EMC, värmeavledning och tillverkningsbarhet. Val av kretskortstillverkare och uppföljning av tillverkning.
  5. Fast programvara eller FPGA-design. Implementation av styr- eller signalbehandlingslogiken i C/C++ för mikrostyrenheter, i VHDL/SystemVerilog för FPGA — eller i kombination. Bare-metal på små mikrostyrenheter, FreeRTOS eller motsvarande RTOS på större system.
  6. Verifiering och test. Kretssimulering vid kritiska punkter, testbänkar för FPGA-designer, hårdvarutester på prototypen, vid behov HIL-bänk för programvaran.
  7. Leverans och dokumentation. Komplett källkod, schema, layoutdata, materialförteckning, dokumentation av tillvägagångssätt och designbeslut. På önskemål kunskapsöverföring till kundens team.

Vid behov tar jag också på mig samordningen med en seriellverkstad som levererar önskad kvalitet — som i Audi-projektet (se referenser), där en handlödd prototyp blev ett maskintillverkat industriellt kort.

Tre discipliner — ur en hand

Följande tre discipliner möts i ett helhetsprojekt:

Hårdvara

Hårdvaruutveckling

Konstruktion och realisering av den elektroniska hårdvaran — från schemat via kortlayouten till samordningen av serieproduktionen. Specialiteter: mikrostyrenhetssystem, FPGA-kort och blandade analoga/digitala kretsar.

  • Mikrostyrenhetssystem (ARM Cortex-M, ESP32, Atmel/Microchip)
  • FPGA-design och -integration (Xilinx Artix-7, Zynq)
  • Analoga och digitala kretsar
  • PCB-design (Pulsonix, flerlager, höghastighet, EMC)
  • Kretsdimensionering och komponentval
  • Uppföljning av PCB-tillverkning och samordning med industripartners
  • Idrifttagning och bring-up av hårdvara
Programvara

Programvaruutveckling

Implementation av embedded-programvaran på den utvecklade hårdvaran — från hårdvarunära bare-metal-programmering till flerkärniga realtidsoperativsystem. Språk, plattformar och protokoll väljs efter projektkrav, inte efter preferens.

  • Embedded-programvara (C, C++, assembler)
  • FPGA-programmering (VHDL, Verilog, SystemVerilog)
  • Realtidssystem (FreeRTOS, bare-metal, flerkärnigt)
  • Kommunikationsprotokoll (CAN, CAN FD, Ethernet, EtherCAT, I²C, SPI, MOST)
  • Drivrutinsutveckling för hårdvarunära gränssnitt
  • Bootloader, watchdog, mekanismer för uppdatering av fast programvara
  • Algoritmer för signalbehandling och reglering
Verifiering

Simulering och verifiering

Systematisk validering av den utvecklade lösningen — på kretsnivå, på FPGA-nivå, på systemnivå. Verifiering är inget eftersläpat steg, utan en integrerad del av utvecklingen.

  • Kretssimulering i tids- och frekvensområde
  • Monte Carlo-analys och worst-case-studier
  • FPGA-verifiering med SystemVerilog-testbänkar
  • HDL-simulering (Vivado, Icarus Verilog, Verilator)
  • Bode-diagram, Nyquist-analys, stabilitetsstudier
  • Hardware-in-the-loop-tester för integrerade system

Vad helhetsutveckling skiljer från «bara kodning»

När en kund i dag söker «en embedded-utvecklare» tänker hen oftast på någon som utför en deluppgift: en C-modul, en FPGA-komponent, en drivrutin. För det finns det många leverantörer.

Helhetsutveckling är något annat. Den kräver någon som kan besluta — om arkitektur, om komponentval, om gränssnitt, om avvägningarna mellan kostnad och funktion. Den beslutskompetensen står inte i varje cv, och den ersätts inte genom att lägga till specialister.

Jag tar på mig helhetsutveckling där kunden inte vill upprätthålla en egen embedded-avdelning — och där den arbetsinsats och det ansvar som följer ekonomiskt kan vila på en enda person.

Samarbetsformer

Helhetsprojekt drivs i regel som fastprisavtal med fast leveranslöfte. Arbetsinsatsen uppskattas före projektstart, priset är garanterat. För utforskande arbete utan tydligt slutmål är ett timkontingent alternativt möjligt. Detaljer på sidan Uppdrag.

Färgschema

Språk