Hallo Allerseits, ich plane derzeit die Produktion eines Produktes, auf dem ein ATmega eingesetzt werden wird. Ziel sind 10.000er Stückzahlen. Die einzelnen Boards sind recht klein (32x25mm). Wir haben damit grob 150-200 Boards je Nutzen. Allerdings muss jeder µC einzeln angesprochen werden können, a) um eine eindeutige ID vergeben und b) einen selfcheck für jedes Board durchführen zu können. Es bietet sich an, die Mikrocontroller nach dem Reflow direkt im Nutzen zu programmieren und den selfcheck zu machen. Derzeit stelle ich mir folgendes vor: Testpins/Stecker am Rand des Panels platzieren um je Zeile JTAG TDI/TDO/TMS an die Boards parallel, und TCK je Board einzeln heran zu führen. Der Nutzen wird nicht geritzt, sondern mit Steg für die Leiter gefräst. Die Leiter zu den Boards werden beim Trennen des Nutzen abgebrochen. Gibt es hier jemanden, der mit so etwas Erfahrung hat? Was muss man beachten? Welche Programmer könnt ihr dafür empfehlen? Gibt es bessere Verfahren? Gruß, Nikias
:
Bearbeitet durch User
Hi Nickname, nun ja - allerdings ist das natürlich eher die "herkömmliche" Methode. Wie gesagt, würde ich gerne das Panel selbst als "Programmieradapter" missbrauchen. Es geht hier um Panels mit bis zu 10x20 = 200 Boards! Eine Liste mit verschiedenen Programmern habe ich: http://www.atmel.com/Images/Atmel-42215-Production-Programming-of-Atmel-Microcontroller_AP-Note_AT06015.pdf Geht mir eher um Praxiserfahrung, falls hier jemand schon mal was ähnliches gemacht hat. Gruß, Nikias
Du kannst die µC auch bei Atmel vor der Auslieferung programmieren lassen.
Fertig programmierte Steine zum Bestücker geben. Das kann man als Dienstleitung kaufen. Frag Deinen Atmel Händler oder z.B. MSC Gleichmann http://www.msc-ge.de/de/service/program/2063-www.html Ich hab das ein paar mal mit Microchip Direkt gemacht. War spuckenbillig und hat super funktioniert. Oder: Wenn die Nutzen später auf einen In Circuit Tester gehen kann der das wahrscheinlich auch mitmachen. (Testadapter + Programm ist nicht ganz billig) Die Kontaktierung wird da über einen Unterdrucktisch mit Federbelasteten Nadelkontakten direkt auf der PCB gemacht. Das ist etwas das Du mit Deinem Bestücker / bzw Testhaus klären musst.
Hi D.V. & mknoelke , ja - macht unser Distributor auch für uns - aber dann habe ich keinen Selfcheck im eingebauten Board und das Problem mit der Serialisierung. Gruß, Nikias BTW: Kann hier jemand was zum Thema Ausbeute und Datenverlust durch Reflow sagen?
:
Bearbeitet durch User
N. K. schrieb: > Selfcheck im eingebauten Board Erledigst du das nur via programming? Serialisierung im Flash oder EEPROM? Reflow beeinflußt i.d.R. den Flashinhalt nicht, denn der von wem auch immer bereits programmierte, aber noch nicht eingelötete Chip überlebt das ja auch.
Serialisierung ist kein Thema, das machen die auch. Datenverlust durch reflow war bis dato 0.00%. Selfcheck + Funktionstest des kompletten Gerätes ist m.e. eine andere Baustelle, das wird man nicht alles in einem großen Abwasch erledigen können außer man geht den Weg über in circuit tester. Die häufigsten PCB Fehler sind die grausamen Lötverbindungen der ROHS Beglückung, fehl und falschbestückung, Tombstoning etc.pp. Das wird auch der Selftest nicht greifen können.
Frag deinen Fertiger nach einem Angebot. Schreibe eine Spec was er machen muss und er kann dann entscheiden wie er es macht. Hier kannst du ihm ja einen Multiplexer vorschlagen um die Boards im Nutzen programmierne zu können. Im Nuten kannst du ja z.B. die JTAG Clock-Leitung an ale Bausteine anschließen (sofern der FAN-OUT das hergibt) Ich nehme nicht an das läuft bei dir in der Firma so wie du frägst. Der Ingenieur denkt in der Regel zu technisch (bezigen nur auf sein eigenes Produkt) und hat den Betriebsablauf des Fertigers nicht im Blick. Ein paralleles Programmieren von 200 Boards gleichzeitig kostet dich vermutlich mehr als das serielle Programmierenvon 1 board nach dem anderen. Der Fertiger muss dazu irgendwie 200 Programmiervorgänge gleicheitig überwachen. Wenn z.B. ein PC 4 Programmer ansprechen kann braucht er 50 PCs statt 1 PC in der Linie. Das ist ein Aufpreis alleine von 49k€ nur für die PCs in der Linie. Dazu kommt noch die Verkabelung, Umrüstung der Linie auf dein Produkt,... 10.000-de ist eine "kleine" Stückzahl und rechtfertigt nicht den Aufbau einer komplexen Fertigungslinie mit massiver Parallelprogrammierung. Wir machen Consumerware mit Mio. Stück. und so was rentiert sich nicht mal bei uns. Spezifikation schreiben. Der Fertiger macht es basierend auf seinem gewählten technsichen Wege. Der billigste bekommt das Angebot. Mach dir das Leben leicht! wenn es ein guter Fertiger ist wird er sich selbst optimieren denn dann hat er ja was davon. Ihr bezahlt hoffentlich einen Festpreis.
N. K. schrieb: > Welche Programmer könnt ihr dafür empfehlen? Gibt es bessere > Verfahren? Auf die einfache Art gewinnst du nicht viel, da die Chips nicht parallel, sondern nacheinander programmiert werden. Google mal nach Atmega Gang Programmer, das kostet zwar mehr, parallelisiert die Arbeit aber teilweise - 4 St parallel = 4 x so schnell. Gruss Reinhard
Wenn in deinem Flash noch gut PLatz ist, dann lass dir einen Bootloader vorprogrammieren. Zum Selbsttest lädst du einfach ein Proggi, dass den Test fährt (die Loader kann man ja auch besser parallelisieren, wenn man genug Zeit lässt damit jeder seine Page geschrieben hat bevor man die nächste schickt). Wenn der Test (hoffentlich erfolgreich) durch ist lädst du deine Applikation und trennst die Boards heraus, der Pin der den Loader startet bleibt dann einfach "in der Luft hängen" und wird beim Start mittels internem Pullup als "nicht loaden" erkannt. Wenn man die Loader als Kette (Tx von chip1 an Rx von chip2) anlegt, dann kann man die so auch serialisieren indem die einfach einen Befehl die Kette durchschicken und hoch-/runterzählen. Der Loader hat den Vorteil, dass man bei Bedarf sogar ein Upgrade der fertigen Boards machen kann (indem man einen unbestückten Upgrade-Header vorsieht).
FertigerKenner schrieb: > 10.000-de ist eine "kleine" Stückzahl und rechtfertigt nicht den Aufbau > einer komplexen Fertigungslinie mit massiver Parallelprogrammierung. Für dich nicht. Aber bei einer Anfrage eines Zulieferers rennen die dir die Bude ein mit goldenen Kugelschreibern. Die bieten aber auch Programmierservice an. Für deren Preis kann man es nicht selbst machen. Den Fertiger würde ich das nicht machen lassen.
Mal eine (vielleicht dumme) Frage: Kann man nicht das Layout so gestalten, dass bei allen µC die Pins MOSI, SCK, RESET, VCC und GND untereinander verbunden sind, solang die einzelnen Platinen noch gemeinsam im Nutzen hängen? Dann müsste man mit einem einzigen Programmer (und einem anständigen Bustreiber) alle µC gemeinsam programmieren können. Ganz langsam natürlich, weil man ohne MISO kein Feedback hat.
Da du JTAG verwendest kannst du die boards Verbinden, TDI -> TDO, TCK und TMS an alle boards. Jetzt sollten alle JTAG Teilnehmen in der JTAG Kette auftauchen und auch beschreibbar sein.
JTAG wird das Prob haben, dass sein Progger keine 200 Devices gleichzeitig programmieren wird (u.a. weil er ja 200 TCKs rel. schnell treiben müsste). Mit einem Bootloader wo die Daten durch die Chain laufen hat er das Prob nicht, weil jedes Device sich selbst programmiert. Ausserdem muss der Progger so nur ein Device (das am Anfang) mit den rel. hochfrequenten Daten beschicken. Der Enable-Pin darf ja ein paar zig ms reaktionszeit haben ohne das die Welt untergeht. Ausserdem braucht der Loader so nur 3 Datenleitungen pro Board statt der 4 von JTAG. Und ne UART hat jeder 0815 µC ja onboard. Er muss halt nur die ein/zwei kb space vom loader erübrigen können (sollte aber bei den 10.000den noch kein so großer Preisunterschied sein)....
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.