Vorprogrammierung von SMD-ICs

22

Ich versuche, eine Platine mit einem atmega168 und ohne Programmierkopf einzurichten. Ich beabsichtige, einen seriellen Bootloader (auf dem Board befindet sich ein ft232) zum Neuprogrammieren zu verwenden, frage mich jedoch, wie der Bootloader am besten programmiert werden kann. Hat das schon jemand versucht? Ich habe Probleme bei der Suche nach einem TQFP-32-ZIF-Socket.

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

Antworten:

21

Es ist möglicherweise einfacher, die Programmierstifte an einigen Pads herauszunehmen , als die Pogopins zum Anbringen des Programmiergeräts zu verwenden.

pogopin

Toby Jaffey
quelle
3
Wenn die Platine dicht ist, können Sie auch vorhandene Durchkontaktierungen in Programmierpunkte verwandeln. Sie müssen die Lötmaske entfernen und möglicherweise die Pad- und Lochgröße ändern. Eine Reihe von Pads könnte viel einfacher sein, wenn es passt.
Juli
Was zum Teufel sind pogopins ... reden Sie über einen 2x3 ISP-Header (siehe meine Antwort unten)
Uhr
4
Pogo-Stifte sind Metallstangen mit federbelasteten Spitzen. Sie werden häufig in Testgeräten verwendet, wenn Sie eine temporäre Verbindung zu einem Stromkreis herstellen müssen.
Pingswept
Bild von pogo pins: flickr.com/photos/pingswept/2280832792
pingswept
10

Platzieren Sie einfach einen ISP-Header auf Ihrem Board als "Alternative" zum seriellen Bootloader. Verwenden Sie dann so etwas wie AVRISP MkII, um Ihre Hex-Datei zu programmieren und mit AVRStudio zu verschmelzen. 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 unter einem ISP-Header verstehe, handelt es sich um einen 2x3-Stecker mit der folgenden Pinbelegung:

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

Stifte mit ungerader Nummer befinden sich in einer Reihe, Stifte mit gerader Nummer in der anderen Reihe und aufeinanderfolgende Stifte sind ansonsten benachbart. Auf einem Board-Layout, das auf das obere Layout zeigt, sind die Pads wie folgt nummeriert (oder durchgehend gedreht):

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 (zB AVRISP MkII, STK500, etc.)

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

Wenn Sie diese häufig in großen Mengen kaufen, können Sie Chips direkt von dem mit Ihrem Bootloader vorprogrammierten Anbieter kaufen. Ich bin mir nicht sicher, ob Atmel diesen Service anbietet, aber ich weiß, dass Microchip dies auch tut.

mjh2007
quelle
4

Was Sie brauchen, ist ein Aufputzadapter . Dann ist ein ZIF-Sockel leicht zu finden.

Die QFPs sind ziemlich teuer, aber Sie können die meisten Fußabdrücke ziemlich billig bei Sparkfun oder auf anderen Websites kaufen .

pingswept
quelle
1
eBay ist auch ein großartiger Ort, um ZIF-Sockel und ähnliche Utensilien zu erwerben.
Dirk
1
Nicht notwendig - es ist im Allgemeinen viel einfacher, In-Circuit-Programmierung auf der Platine durchzuführen, nachdem das Teil vorhanden ist.
Jason S
3

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

Jimmie Clark
quelle
2

In-System-Programmierung ist eine gute Idee. Bei Bedarf können Sie auch die Firmware aktualisieren. Andere Möglichkeiten beinhalten wahrscheinlich die Herstellung eines Nadelbettes oder eines Ersatzes für eines.

Als Kompromiss könnten Sie sicherstellen, dass sich irgendwo auf den benötigten Netzen (GND,! RST, SCK, MOSI, MISO, + V) Testpunkte befinden, und ein Nadelbett herstellen, das zu diesen passt. Dann benötigen Sie keinen ISP-Konnektor / Layout an Bord. Sie können dies auch erweitern, um einige automatisierte Produktionstests durchzuführen.

XTL
quelle
1

Sie sprechen von Chargen von> 1, und dann lohnt sich das Folgende wahrscheinlich nicht, aber es gilt mit Sicherheit für größere Chargen, z. B. 100 und mehr.

Mit In Circuit Programming programmieren Sie das Gerät nach der Leiterplattenbestückung, also mit der auf der Leiterplatte montierten Steuerung. Auf der Unterseite der Platine habe ich Testpads, die die zum Programmieren benötigten Signale nach außen bringen. Normalerweise ist das JTAG , aber es kann auch eine serielle Schnittstelle sein. Lassen Sie die Konstruktionsabteilung eine Prüfvorrichtung mit federbelasteten Prüfstiften bauen, die zu den Prüfkissen passen.

gefederte Prüfstifte

Sie benötigen Teststifte, um auch Strom zu liefern . Normalerweise füge ich ein paar zusätzliche Teststifte hinzu, um beispielsweise bestimmte Parameter zu messen, oder einen Kommunikationskanal, über den sich der Mikrocontroller identifizieren kann (siehe Softwareversion). Sie können nicht zu viele Testpunkte haben. Sie benötigen keinen platzhungrigen Stecker (was auch Geld kostet) und können die Testpads an einem beliebigen Ort platzieren. Es ist immer Platz für ein 2-mm-Pad.

Die Prüfvorrichtung kostet Material und Arbeit, aber wenn Sie eine große Produktion haben, brauchen Sie wirklich eine, und dann können Sie sie auch zum Programmieren des Geräts verwenden.
Nach dem Programmieren können Sie das Gerät über die Prüfvorrichtung booten und eine Reihe von Funktionstests durchführen .

stevenvh
quelle