JTAG-Schnittstelle und PCB des Mikrocontrollers

Ich bin dabei, meine eigene Mikrocontroller-Schaltung zu bauen (zumindest für den Anfang mit einer MCU der Atmega-Serie) und ich denke, ich werde mir den AVR JTAGICE JTAG-Debugger und -Programmierer besorgen. Ich habe auch vor, zu Hause mein eigenes PCB-Labor zu bauen, also habe ich mich gefragt - basierend auf Ihrer Erfahrung - ob es besser ist, DIP-Pakete oder SMD (SOIC, TSSOP, TQFP/LQFP) zu verwenden.

Soweit ich verstanden habe, werden DIP-Gehäuse im DIY-Bereich bevorzugt, während SMD besser sind, weil sie weniger Platz benötigen und weniger empfindlich gegenüber elektromagnetischen Störungen (z. B. mit anderen ICs) sein sollten.

Nun zur Frage: Wenn Sie den Mikrocontroller (neu) programmieren müssen, welchen würden Sie verwenden? AFAIK gibt es zwei Alternativen:

  1. Verwenden Sie eine an die Platine gelötete DIP-Buchse und setzen Sie die DIP-MCU dort ein. Wann immer ich es neu programmieren muss, nehme ich es aus der Steckdose, stecke es in eine Adapter-ähnliche Platine zu JTAG, programmiere es neu und übertrage es zurück in die Steckdose
  2. Setzen Sie ein SMD-Bauteil auf die Platine und lassen Sie einen JTAG-Port von außen zugänglich (sollten 20 Pins sein, oder?). Ich möchte auch die Schaltung so klein wie möglich halten, gibt es also Low-Footprint-Header mit 20 Pins? Tut mir leid, aber ich weiß nicht, wie sie genau heißen. Es muss nicht wirklich JTAG sein: Ich kann dort einen Low-Footprint-Header hinterlassen, mit einem Kabel auf eine Adapterplatine gehen und über das offizielle JTAG-Kabel zum Debugger gehen.

Ich denke, die erste Lösung ist die einfachste und wahrscheinlich etwas billiger. Es sollte sogar einfacher zu löten sein. Was schlagen Sie vor ?

Sie möchten Ihren DIP-Mikrocontroller nicht sehr oft von einem Sockel zum anderen bewegen, nur um ihn zu programmieren. Nach einer Weile könnten Sie die Stifte des uC verbiegen oder sogar brechen.

Antworten (4)

Es sind Sockel sowohl für DIP-Gehäuse als auch für SMD-Gehäuse verfügbar. Egal in welche Richtung Sie gehen, ich würde vorschlagen, eine Steckdose zu verwenden. Wenn Sie den Rauch herauslassen, muss der Chip auf diese Weise nicht entlötet und neu gelötet werden.

Die Wahl zwischen DIP und SMD hängt davon ab, womit Sie sich wohler fühlen. Typischerweise ist eine größere Auswahl an Mikrocontrollern in SMD verfügbar. Aber sie sind auch zerbrechlicher. Vor allem bei Verwendung mit einer Steckdose. Wenn Sie den Chip viel hinein- und herausnehmen, werden Sie höchstwahrscheinlich einige Stifte verbiegen oder brechen. Die Stifte an einem DIP sind in dieser Hinsicht viel fehlerverzeihender.

Es ist selten, dass Sie heutzutage jemanden finden, der einen Chip aus dem Schaltkreis nimmt und ihn in einen Off-Board-Programmierer steckt. Ich musste es mit Old-School-PROMs im College machen. Aber seitdem habe ich es nicht mehr gemacht. Sie sind viel besser dran, wenn Sie den JTAG auf dem Board selbst haben. @i.amniels erwähnte In-Circuit-Debugging als großen Vorteil. Ich werde dieses Gefühl wiederholen, da es nicht genug gesagt werden kann.

Es gibt viele verschiedene JTAG-Steckverbinderkonfigurationen. Der AVR verwendet 10 Pins. Und Sie haben wirklich nicht viel zu sagen, was den Footprint des Headers betrifft, den Sie auswählen können. Sie müssen die Stiftgröße und den Abstand zu Ihrem JTAGICE anpassen. Atmel hat eine Empfehlung für die Teilenummer, die für die Schnittstelle zum JTAGICE verwendet werden soll. Ich würde einfach dabei bleiben.

http://support.atmel.com/bin/customer.exe?=&action=viewKbEntry&id=2

Die auf der Website von Atmel vorgeschlagene Teilenummer ist jetzt veraltet (Digikey & Mouser). Was meinst du damit, es gibt Sockel für SMD-Gehäuse? Wenn ich mich erinnere, gibt es sie, aber sie kosten jeweils etwa 50 $.
Tut mir leid, dass ich die Verfügbarkeit nicht überprüft habe. Das Schöne an DigiKey ist, dass sie auf den Ersatz verlinken, wenn etwas veraltet ist: digikey.com/product-detail/en/10-89-7102/WM26810-ND/851737 . Oder hier ist eine andere Wahl: digikey.com/product-detail/en/5103308-1/A33159-ND/1114897 .
Sie haben nicht gesagt, welchen Atmega Sie verwenden (es sei denn, ich habe es übersehen), daher kann ich kein spezifisches Beispiel geben. Aber ja, SMD-Buchsen kosten zwischen 50 und 100 US-Dollar oder mehr. Aber wenn Sie auf ein Problem stoßen und Chips oft wechseln, werden Sie Spuren entfernen. Sie müssen also die einmaligen 50-Dollar-Kosten gegen die Zeit und die Kosten abwägen, um eine ganz neue Leiterplatte zu erhalten. Die Steckdose wird Ihnen auf lange Sicht Geld und Frust ersparen.
Ich sprach von der "Standard" Atmega-Serie, die weniger als 3 $ pro Stück kostet (ich bin mir noch nicht sicher, welche genau). Ich denke, dass in diesem Fall der Sockel zu teuer ist (> 15-fache Kosten der MCU). Bei ARM-Prozessoren > 10€ wäre der Sockel definitiv eine Option (besonders für einen Prototypen).
Wenn ich Sie richtig verstehe, werden Sie Ihre eigenen Bretter wie zu Hause ätzen. Sagen Sie, der ATmega bläst und Sie heben eine Spur ab, die ihn entlötet. 3 $ für den Atmega, 10-15 $ für die Platine + Zubehör zum Ätzen, Ihre Zeit zum Ätzen, Ihre Zeit zum Entlöten und Wiederlöten aller anderen Komponenten auf der neuen Platine. Wenn Sie Ihr Board zweimal in den Müll werfen, hätte sich die Steckdose bezahlt gemacht. Ich kann Ihnen nicht sagen, wie viele 5000-Dollar-Boards ich weggeworfen habe, wenn ein 1000-Dollar-Sockel sie gerettet hätte. Aber mein Chef würde nicht auf die Vorabkosten beißen. Ja, es ist teuer. Aber denken Sie langfristig. Du wirst mir später danken.
Wenn Sie Geld sparen möchten, entscheiden Sie sich für Durchgangsbohrungen. Die Steckdosen sind ein Bruchteil der Kosten. Aber die ganze Versammlung ist viel größer. Sie scheinen sich auch Gedanken über die Größe zu machen. Kleiner kann teurer sein, wenn man das große Ganze betrachtet und nicht die einzelnen Komponenten. Irgendeinen Kompromiss wird es immer geben. Willkommen in der Welt der Elektronik.
Ich stimme Ihnen zu, dass es Kompromisse geben muss. Ich denke, an dieser Stelle wäre - für einfache Dinge - die Verwendung einer DIP-Buchse die kostengünstigere Lösung und ermöglicht das Reparieren und Neulöten (da diese Buchse maximal 0,2 $ kostet). Wahrscheinlich ist Ihre Lösung für teure Prozessoren / MCUs viel besser, aber ich bin mir nicht sicher, ob ich sie mit einem Atmega verwenden soll. Ich werde deinen Rat aber für die Zukunft im Hinterkopf behalten. Danke.

Wenn Sie Ihrer Leiterplatte einen JTAG-Port hinzufügen, können Sie den JTAG verwenden, um Ihre Software zu debuggen, während sich der Mikrocontroller auf Ihrer Leiterplatte befindet. Dies ist ein großer Vorteil und beschleunigt das Debugging.

Die Wahl zwischen DIP und SMD hängt von Ihren Lötkenntnissen ab. Wenn Sie SMD löten können, wählen Sie SMD. Es ist kleiner und es gibt mehr verschiedene Mikrocontroller mit einem SMD-Gehäuse.

Ja, aber ich meine: Gibt es einen 20-poligen Header mit kleinem Fußabdruck (nicht den Standardabstand von 2,54 mm), den ich als JTAG-Zugangsschnittstelle auf die Platine löten kann? Ich möchte die Verwendung der 2,54-mm-Stiftleisten vermeiden, da sie in diesem Fall viel Platz für nichts einnehmen.
@user51166 Vielleicht möchten Sie so etwas .
OK danke. Ich nehme an, es gibt sogar solche mit dem "Kunststoffrahmen", sodass das JTAG-Kabel nur richtig angeschlossen werden kann.

Die erste Lösung ist ungeschickt. Sie werden es leid, den Chip herauszunehmen, ihn zu programmieren und ihn dann wieder einzusetzen.

Die beste Lösung ist die Verwendung von In-Circuit-Programmierung, ob Sie DIP verwenden oder nicht, ist irrelevant. Für AVRs können Sie JTAG oder ISP verwenden. Atmels Implementierung von JTAG erfordert nur 10 Pins, nicht 20. Der Vorteil gegenüber ISP besteht darin, dass Sie Ihre Schaltung debuggen können.

Wenn Sie viel Platz auf Ihrer Platine haben, können Sie einfach einen 2x5 0,1-Zoll-Header verwenden und fertig. Normalerweise verwende ich einen polarisierten Stecker, um sicherzustellen, dass ich den Programmierer nicht rückwärts einstecke.

Wenn Sie wenig Platz haben, können Sie einige Pads herausholen und Pogo-Pins verwenden, um den AVR mit Ihrem Programmierer / Debugger zu verbinden. Weitere Informationen zu Pogo-Pins finden Sie in dieser Antwort .

Danke schön. Ich habe die Antwort gelesen, kann aber nicht wirklich herausfinden, welchen Vorteil sie bieten können. Wenn ich den Artikel auf adafruit.com sehe (wie im Artikel erwähnt), scheint es mir, dass diese Lösung verwendet wird, um mehrstufige Platinen zu bauen (sehr nützlich für viele Komponenten, bei denen wir uns in der Höhe entwickeln können). Für eine enge Passform scheint es mir nicht so gut zu sein. Könnten Sie das bitte klären?
@ user51166 Um meinen Mikrocontroller zu programmieren, habe ich einen 2x5 0,1 "Header - ähnlich wie dieser . Im Verhältnis zur Größe Ihres uC ist dieser Anschluss ziemlich groß. Wenn Sie auf Ihrer Leiterplatte nur sehr wenig Platz haben, können Sie Pogopins anstelle des Headers verwenden Pogopins haben jeden kleinen Fußabdruck, so dass Sie einiges an Platz sparen.
OK. Von den Bildern, die ich gesehen habe, sahen sie viel größer aus als ein Header-Pin, aber ich werde es versuchen. Danke schön.

Wer sich halbwegs mit Elektronik beschäftigen will, muss sich sowieso irgendwann mit SMD auseinandersetzen, also würde ich wenn möglich diesen Weg einschlagen. Sie haben eine viel größere Auswahl, da viele ICs keine Durchgangslochversion mehr haben. Ich würde sagen, dass Hobbyisten heutzutage viel mehr SMD verwenden, daher bin ich mir nicht sicher, ob es immer noch "bevorzugt" ist.

So oder so, wie erwähnt, programmieren Sie es auf der Platine. Was den Header betrifft, ist es unwahrscheinlich, dass alle 10 oder 20 Pins signaltechnisch benötigt werden, so dass Sie ihn wahrscheinlich auf etwa 5 Pins reduzieren können, wenn Sie die Pinbelegung und die Datenblätter überprüfen.
Manchmal verkaufen Hersteller verschiedene Adapter für ihre Programmierer, also schauen Sie mal nach - zum Beispiel verkauft Microchip einen praktischen Pogo-Pin-Adapter für den ICD3, so dass Sie ihn während der Programmierung nur gegen ein paar Pads auf der Platine halten müssen.
Wenn etwas nicht verfügbar ist, machen Sie es. Ich habe das kürzlich mit einem ARM uC von ST gemacht - mein Ride-Programmierer wird mit einem ~20-Pin-Header geliefert, also haben wir einen kleinen Adapter dafür gemacht, damit er auf einen 5-Pin-Header passt, um Platz zu sparen.

Das war die Idee, die ich im Sinn hatte, aber verwenden Sie immer noch ein 2,54-mm-Raster auf der Leiterplatte oder verkleinern Sie es, um noch mehr Platz zu sparen? Haben Sie Ihre Header einzeln platziert oder gibt es einen 5-Pin-Header in einem, noch besser mit Kunststoff darum herum, damit die Kabel nur in eine Richtung gesteckt werden können? Danke schön.