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:
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 ?
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
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.
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 .
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.
m.Alin