Forum: Mikrocontroller und Digitale Elektronik viele ATmegas im Nutzen programmieren?


von N. K. (bennjo)


Lesenswert?

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
von Nickname (Gast)


Lesenswert?

Hi,

meinst Du so etwas ?

http://www.conitec.net/german/galep5p.php

MfG,
Nickname

von N. K. (bennjo)


Lesenswert?

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

von D. V. (mazze69)


Lesenswert?

Du kannst die µC auch bei Atmel vor der Auslieferung programmieren 
lassen.

von mknoelke (Gast)


Lesenswert?

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.

von N. K. (bennjo)


Lesenswert?

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
von D. V. (mazze69)


Lesenswert?

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.

von mknoelke (Gast)


Lesenswert?

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.

von FertigerKenner (Gast)


Lesenswert?

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.

von Reinhard Kern (Gast)


Lesenswert?

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

von Max D. (max_d)


Lesenswert?

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).

von Michael_ (Gast)


Lesenswert?

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.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

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.

von user (Gast)


Lesenswert?

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.

von Max D. (max_d)


Lesenswert?

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
Noch kein Account? Hier anmelden.