71 FPGA’s drijvende kracht achter realtime datapad PCB-printer

In 2009 demonstreerde Mutracx zijn Lunaris-inkjettechnologie voor het printen van de binnenlagen op een PCB. Sindsdien heeft de Océ-spin-off hard gewerkt om de technologie marktrijp te maken en een eerste product te bouwen. Voor deze machine heeft 3T een realtime datapad ontwikkeld waarin 71 FPGA’s de aansturing van de printkoppen verzorgen.

De Lunaris is een 100 procent vervanger van conventionele lithosystemen om binnenlagen van PCB’s te printen. In tegenstelling tot de traditionele productiemethode spuit de machine van Mutracx de ets-resist rechtstreeks op het koperen substraat. In een goede minuut komen er twee miljard druppeltjes uit, die één kant van de printplaat bedekken. Het blote metaal wordt vervolgens weggeëtst en de beschermende laag gestript van de achterblijvende sporen. De voordelen van deze aanpak: het koper hoeft geen fotogevoelige coating te krijgen, er is geen apart masker nodig, geen belichting en de resist hoeft niet te ontwikkelen. Traditioneel kost het dertien processtappen om het patroon op het koper te krijgen, waarbij elke stap een ander apparaat vereist. De Lunaris-aanpak doet dit in één keer, met één systeem dat naadloos aansluit op de bestaande ets- en stripbaden.

Om de druppels op het koperen substraat te krijgen, gebruikt de Mutracx-machine printkoppen met 256 spuitmondjes per head, synchroon gevoed met 256 bit beeldlijnen. Deze nozzles worden in vier groepen van 64 aangestuurd door een kwartet Asics, die de druppelvorming regelen door met een piëzo-element drukgolven op te wekken in een spuitmondje. De piëzo is ook in de luisterstand te zetten, waarmee hij van een actuator verandert in een sensor die de status van de nozzle meet. Dit maakt het mogelijk om falende spuitmondjes te detecteren en dynamisch te compenseren met redundante koppen. Hiervoor gebruikt het systeem het realtime Predict-algoritme, dat zijn wortels heeft bij Océ. Omdat de piëzo niet tegelijk actuator en sensor kan zijn, heeft Mutracx ervoor gekozen de heads in te delen in groepjes van drie: terwijl er een print, worden de andere twee doorgemeten. Deze drie koppen zijn fysiek achter elkaar geplaatst.

Realtime datapad

In opdracht van Mutracx heeft 3T het realtime datapad ontwikkeld dat de PCB-afbeelding transporteert van de machine-pc naar de zestig koppen en ervoor zorgt dat alle druppels op de juiste positie terechtkomen. Centraal in dit pad staat een Virtex-6-FPGA van Xilinx, de busmaster. Deze is via PCI Express gekoppeld aan de pc en beschikt over DDR2-geheugen om de bitmap in te cachen. Van daaruit worden de beelddata gedistribueerd over tien Predict-routers, die allemaal een Virtex-5-FPGA bevatten met het dynamische compensatiealgoritme. Elke router stuurt weer zes printkopcontrollers aan, die met een Spartan-6 als brein ten slotte de heads in goede banen leiden.

In totaal telt het datapad dus 71 FPGA’s, die allemaal op afstand zijn te programmeren. Voor dit systeem hebben we eerst samen met de Mutracx-architect de architectuur en de specificaties opgesteld. Vervolgens hebben we alle firmware ontwikkeld, evenals de elektronica voor de routers en de printkopcontrollers. Van de verschillende hardwaremodules hebben we vooraf de signaalintegriteit geanalyseerd. Ook hebben we ze onderworpen aan design for test- en design for manufacturability-analyses. Om het datapad aan te sturen, hebben we daarnaast een gedeelde bibliotheek en een testapplicatie geschreven voor Linux.

Falende spuitmondjes

Realtime aansturing is van cruciaal belang om te kunnen garanderen dat elke druppel inkt op het juiste moment wordt afgeschoten. Eén misser kan immers al leiden tot afkeur van het PCB. Het datapad krijgt daarom een extern printsynchronisatiesignaal (Y-sync) voor het vuren van druppels op maximaal 100 kHz. Dit levert een continue stroom van ongeveer 4 Gbit per seconde. De jitter die het afschieten vertoont ten opzichte van het Y-sync-signaal mag maximaal 250 ns bedragen. De latency van het datapad wordt in software weggeregeld door de bitmap van de printplaat vooraf aan te passen. En om de PCB-specificaties te kunnen halen, is het noodzakelijk dat we de nozzlestatus meten voor de compensatiealgoritmes. Dit geeft een datastroom van 5 Gbit per seconde van de printkoppen terug naar de pc.

De PCI Express-interface tussen pc en busmaster biedt geen garanties op de 4 Gbit/s die nodig is voor het bitmaptransport. Dit komt mede doordat de pc het volgende PCB-beeld al voorbereidt tijdens het printen en de verschillende softwareprocessen daar de geheugenbandbreedte delen. Daarom hebben we ervoor gekozen om de busmaster te voorzien van 16 Gbyte DDR2-geheugen (vier Sodimms van 4 Gbyte). Hierin kan het systeem de complete bitmap cachen voordat het daadwerkelijke printen begint. De realtime functionaliteit is zo volledig geïmplementeerd in hardware. In de toekomst willen we kijken naar de mogelijkheid om slechts een deel van de bitmap vooraf te cachen. Tijdens de printjob streamt het systeem dan de resterende data naar de busmaster en kan de software het volgende beeld voorbereiden en opslaan in het pc-geheugen. Dan zouden we het DDR2-Ram kunnen terugbrengen tot 8 of zelfs 4 Gbyte.

Voor het eerste Lunaris-product van Mutracx ontwikkelde 3T het realtime datapad op basis van één Virtex-6-FPGA, tien Virtex-5-FPGA’s en zestig Spartan-6-FPGA’s.

 

 

 

 

 

 

Voor het eerste Lunaris-product van Mutracx ontwikkelde 3T het realtime datapad op basis van één Virtex-6-FPGA, tien Virtex-5-FPGA’s en zestig Spartan-6-FPGA’s.

Voor het aansturen van de vier Sodimm-modules zijn evenzoveel Xilinx-DDR2-IP-cores nodig. Een Virtex-6-device ondersteunt echter geen multicore-DDR2-IP. Daarom hebben we de enkelkerns-DDR2-architectuur handmatig moeten aanpassen. Voor de PCI Express-implementatie hebben we de hardgecodeerde Endpoint in de Virtex-6 gebruikt in combinatie met IP voor DMA-support van leverancier PLDA. Deze DMA-engine biedt acht kanalen om de PCB-bitmap te transporteren naar de koppen en de meetdata terug te brengen naar de pc. Tussen busmaster en routers lopen tien high-speed seriële links, die elk een RocketIO GTX-transceiver van de Virtex-6 verbinden met een RocketIO MGT-zendontvanger van een Virtex-5. De vereiste bandbreedte per kanaal is 1 Gbit/s.

Synchroon met het Y-sync-signaal stuurt de busmaster printdataframes naar de routers. Als low-level communicatieprotocol hebben we hierbij gekozen voor Aurora van Xilinx. Het bijbehorende IP kan grote hoeveelheden data oversturen met minimale overhead. Het protocol gebruikt speciale klokcompensatiecommando’s om de referentieklokken van zender en ontvanger op elkaar af te stemmen en te compenseren voor drift. Deze hebben voorrang op de normale dataframes. Daardoor is er relatief veel jitter bij het transport van deze frames en uiteindelijk bij het printen. Het Aurora-IP biedt echter mogelijkheden om het versturen van klokcompensatiecommando’s te controleren. Die hebben we gebruikt om klokcompensatie te voorkomen tijdens de verzending van printdataframes.

De routers geven de frames door aan de printkopcontrollers via een dedicated protocol dat we hebben ontwikkeld op basis van LVDS. Deze interface vereist een bandbreedte van 200 Mbit/s. Het voordeel van LVDS is dat er geen high-speed zendontvangers nodig zijn. Dit maakt het mogelijk om de goedkopere Spartan-6 LX te gebruiken in de printkopcontroller. Aangezien er hiervan zestig in de machine zitten, levert dit een flinke kostenbesparing op.

De printkopcontroller vertaalt de binnenkomende printdataframes ten slotte naar instructies voor aansturing van de nozzles. Deze geeft hij via aparte SPI-interfaces door aan de vier Asics. Ook de commando’s om de statusmetingen te initiëren en om het inktniveau en de temperatuur van inkt, head en Asic uit te lezen, lopen over deze verbindingen. De printkopcontroller stuurt twee stappenmotoren aan voor de mechanische afstelling van de head in x- en z-richting. Afwijkingen in de y-richting worden softwarematig gecompenseerd door de PCB-bitmap aan te passen.

Alle interfaces van pc tot en met printkopcontroller hebben we full-duplex uitgevoerd om tijdens het printen nozzlestatusinformatie te kunnen retourneren. Het Predict-algoritme in de router-FPGA compenseert hiermee dynamisch voor falende spuitmondjes middels redundante heads. Vervolgens gaan de data terug naar de pc voor eventueel verdere offline analyse. Behalve Predict is er Paint, dat eveneens zijn oorsprong vindt bij Océ. Dit in software geïmplementeerde algoritme gebruikt de statusinformatie om de PCB-bitmap statisch te compenseren voorafgaand aan het printen.

Testmodus

Met Modelsim hebben we het complete datapad functioneel getest in een simulatieomgeving op een pc. De leverancier van het PCI Express-IP biedt uitgebreide simulatiebibliotheken voor PCI Express-hosts, die onder meer memory-mapped I/O-registers kunnen lezen en schrijven en DMA-transfers en -interrupts ondersteunen. Hiermee hebben we de aansturing vanuit software onder de loep genomen. Ook van de DDR2-modules zijn simulatiemodellen beschikbaar. Deze hebben we gebruikt om de complete dataflow van de pc via de DDR2-geheugens naar de routers te testen. Van de router hebben we een functioneel model gemaakt dat het printen simuleert en Paint- en Predict-data kan genereren. In de simulaties hebben we de PCB-bitmaps overigens beperkt tot enkele beeldlijnen.

Ter verificatie van de geprinte bitmap en het Predict-algoritme hebben we speciale testfunctionaliteit toegevoegd aan het datapad. Deze maakt het mogelijk om één printgroep in testmodus te zetten, waarbij alle geprinte beeldlijnen van de groep worden gelogd, voorzien van een tijdstempel en gestreamd naar de pc. Met de beelddata en tijdinformatie kunnen we de betreffende bitmap softwarematig reconstrueren en vergelijken met het origineel. Voor de drie printkopcontrollers die in testmodus staan, is het daarnaast mogelijk om nozzlestatuspatronen in te geven. In plaats van de spuitmondjes te meten, gebruikt het systeem dan die instellingen om de Paint- en Predict-algoritmes te verifiëren. Gecombineerd met de beelddatalog is het datapad zo bijna volledig te kwalificeren, zonder dat er fysieke printkoppen zijn aangesloten.

De echte marktconfrontatie volgt deze zomer. Dan gaat Mutracx bij verschillende klanten bètatests uitvoeren.

Ronald Grootelaar,
 consulting engineer bij ontwerpbureau 3T uit Enschede.

Bron: Bits & Chips, 31 maart 2011