Vorprogrammierung von oberflächenmontierten ICs

Ich versuche, eine Platine mit einem atmega168 und ohne Programmierkopf einzurichten. Ich beabsichtige, einen seriellen Bootloader (es gibt einen ft232 auf der Platine) zum Neuprogrammieren zu verwenden, aber ich frage mich, wie ich den Bootloader am besten programmieren kann. Hat das schon mal jemand anderes probiert? Ich habe Probleme, einen tqfp-32-ZIF-Socket zu finden.

Machst du das nur einmal?
Ich werde es für eine ganze Charge tun (>1)

Antworten (8)

Es könnte einfacher sein, die Programmierstifte an einigen Pads herauszubringen, als Pogopins zu verwenden, um Ihren Programmierer zu befestigen.

pogopin

Wenn die Platine dicht ist, können Sie auch vorhandene Vias in Programmierpunkte verwandeln. Sie müssen den Lötstopplack entfernen und möglicherweise die Pad- und Lochgröße ändern. Eine Reihe von Pads könnte viel einfacher sein, wenn es passt.
was zum Teufel sind Pogopins ... redest du von einem 2x3 ISP-Header (siehe meine Antwort unten)
Pogo-Pins sind Metallstäbe mit federbelasteten Spitzen. Sie werden häufig in Prüfvorrichtungen verwendet, wenn Sie eine vorübergehende Verbindung zu einem Stromkreis herstellen müssen.

Wenn Sie diese oft in großen Mengen kaufen, können Sie Chips direkt vom Anbieter kaufen, der mit Ihrem Bootloader vorprogrammiert ist. Ich bin mir nicht sicher, ob Atmel diesen Service anbietet, aber ich weiß, dass Microchip dies tut, also würde ich davon ausgehen, dass sie das auch tun.

Setzen Sie einfach einen ISP-Header als "Alternative" zum seriellen Bootloader auf Ihr Board. Verwenden Sie dann so etwas wie das AVRISP MkII, um Ihre Hex-Datei und Sicherungen mit AVRStudio zu programmieren. Vielleicht verwenden Sie es nur einmal, um den Bootloader zu laden, aber es ist bei weitem die kostengünstigste Lösung, die Sie finden werden.

Falls Sie nicht wissen, was ich mit einem ISP-Header meine, es ist ein 2x3-Stecker mit der folgenden Pinbelegung:

2x3 pin    connect to AVR pin
1          MISO
2          VCC
3          SCK
4          MOSI
5          RESET
6          GND

Pins mit ungerader Nummer befinden sich in einer Reihe, Pins mit gerader Nummer befinden sich in der anderen Reihe, und aufeinander folgende Pins sind ansonsten benachbart. Auf einem Platinenlayout mit Blick nach unten auf das obere Layout sind die Pads wie folgt nummeriert (oder jede konsistente Drehung):

2 4 6
1 3 5

Verdrahten Sie es so und Sie sollten in der Lage sein, jeden Programmierer anzuschließen, der ISP unterstützt (z. B. AVRISP MkII, STK500 usw.).

Ich sehe viele Platinen, die einen Platz für einen solchen Header (entweder Reihen von Durchgangslöchern oder Reihen von SMT-Pads) haben, der an die Platine gelötet werden kann, aber der Header selbst fehlt. Ich gehe davon aus, dass der Hersteller die von Joby erwähnten Pogo-Pins verwendet, um den Programmierer vorübergehend mit diesen Pads auf der Platine zu berühren.

Was Sie brauchen, ist ein Adapter für die Oberflächenmontage . Dann ist ein ZIF-Sockel leicht zu finden.

Die QFP-Fußabdrücke sind etwas teuer, aber Sie können die meisten Fußabdrücke ziemlich billig von Sparkfun oder anderen Seiten bekommen .

eBay ist auch ein großartiger Ort, um ZIF-Sockel und ähnliche Utensilien zu bekommen.
Nicht erforderlich - es ist im Allgemeinen viel einfacher, die In-Circuit-Programmierung auf der Platine durchzuführen, nachdem das Teil an seinem Platz ist.

In der Produktion verwenden wir diese TQFP32-Adapter, die wir bei ebay gekauft haben .

PS. Wir haben einige mehr gekauft, als wir brauchen, also falls jemand sie mit einer EU-Umsatzsteuerrechnung braucht... ;-)

Ich hatte großen Erfolg mit diesem Setup.

Ein STK600 mit TQFP32 Zif . Auf diese Weise können Sie Ihre Chips über USB programmieren, bevor Sie sie auf die Platine setzen.

Eine systeminterne Programmiermöglichkeit ist eine gute Idee. Außerdem können Sie die Firmware bei Bedarf aktualisieren. Andere Möglichkeiten beinhalten wahrscheinlich die Herstellung eines Nadelbetts oder eines Ersatzes für eines.

Als Kompromiss könnten Sie sicherstellen, dass irgendwo auf den benötigten Netzen (GND, !RST, SCK, MOSI, MISO, +V) Testpunkte vorhanden sind, und ein passendes Nadelbett erstellen. Dann benötigen Sie keinen tatsächlichen ISP-Anschluss / Layout an Bord. Sie können dies auch erweitern, um einige automatisierte Produktionstests durchzuführen.

Sie sprechen von Chargen von > 1, und dann lohnt sich das Folgende wahrscheinlich nicht, aber es ist sicherlich für größere Chargen, sagen wir 100 und mehr.

Mit der In-Circuit-Programmierung programmieren Sie das Gerät nach der Leiterplattenbestückung, also mit auf der Leiterplatte montiertem Controller. Auf der Unterseite der Platine habe ich Testpads, die die zum Programmieren benötigten Signale nach außen bringen. Typischerweise ist das JTAG , aber es könnte auch eine serielle Schnittstelle sein. Lassen Sie die Konstruktionsabteilung eine Testvorrichtung mit federbelasteten Teststiften bauen , die zu den Testpads passen.

gefederte Prüfstifte

Sie benötigen auch Teststifte, um Strom zu liefern. Normalerweise füge ich ein paar zusätzliche Teststifte hinzu, um beispielsweise bestimmte Parameter zu messen, oder einen Kommunikationskanal, in dem sich der Mikrocontroller identifizieren kann (denken Sie an die Softwareversion). Sie können nicht zu viele Testpunkte haben. Sie benötigen keinen platzraubenden Stecker (der auch Geld kostet) und können die Testpads platzieren, wo immer Sie möchten. Es ist immer Platz für ein 2 mm Pad.

Die Prüfvorrichtung kostet Material und Arbeit, aber Sie brauchen wirklich eine, wenn Sie eine große Produktion haben, und dann können Sie sie genauso gut zum Programmieren des Geräts verwenden.
Nach der Programmierung können Sie das Gerät auf dem Prüfstand booten und einige Funktionstests durchführen .