White_Fox
05.09.2014, 20:46
Hallo
Da immer mal wieder User anfragen wie man am Besten mit Programmieren anfängt möchte ich hier mal ein von mir entworfenes Entwicklerwerkzeug vorstellen. Ich habe diese Platine ursprünglich mal entwickelt um meine eigenen Programmierfähigkeiten zu erweitern auch ohne gleich ein konkretes Projekt dafür zu haben. Möglicherweise teilt der ein oder andere User meine Anforderungen, daher stelle ich meine Arbeit mal hier rein.
Gleich vorweg: Ich habe das Thema EMV von Anfang an leider etwas vernachlässigt. Der Gedanke kam mir erst, nachdem ich das Allermeiste bereits fertig gelötet habe. Ich habe es allerdings trotzdem vorläufig so gelassen, der Controller läuft dadrin bisher ganz anständig. Sollte es mir mal Probleme bereiten (vielliecht beim ADW) werde ich es möglicherweise mal überarbeiten.
Die Platine enthält:
Auswahl zwischen 3,3V oder 5V Spannungsversorgung
8x LED
8x Taster (hardwareentprellt)
LCD (2x16 Zeichen), steckbar
Hintergrundbeleuchtung des LCDs abschaltbar
3 Potis zur analogen Spannungsmessung
Auswahl (Betriebsspannung oder externe Quelle) der analogen Referenzspannung
Reset-Taster
steckbare Quarze
über Zusatzplatinen zum Aufstecken nach Belieben erweiterbar (auch mit Controllern mit anderer Pinbelegung)
für Erweiterungen stehen alle Spannugnen (3,3V; 5V sowie die externe Versorgungsspannung) zum Abgriff bereit
abgreifbares Taktsignal für Controller mit Taktgenerator (z.B. Diamex All-AVR)
Unterstützte Controller:
ATMega164
ATMega324
ATMega644
ATMega1284
Sonstige pinkompatible
Mit einer entsprechenden Zusatzplatine können natürlich auch andere Controller mit anderen Pinbelegungen und anderen Gehäusen verwendet werden.
Ein paar Hinweise zu einzelnen Komponenten:
LCD:
Aufgrund von Erfahrung mit einer früheren Version habe ich das LCD per Wannenstecker und passender Buchsenleiste steckbar ausgeführt um es besser austauschen zu können. Außerdem kann man den Stecker auch noch für andere Dinge verwenden. Wer will kann es ja trotzdem festlöten. In der Anleitung sind beide Versionen enthalten, die Lötvorlagen sind ansonsten völlig identisch.
Damit ihr Lötfehler in eurem eigenen Nachbau ausschliessen könnt werde ich euch aber noch eine Hex-Datei nachliefern. Wer ein anderes LCD als das von mir verbaute verwenden will, beachte unbedingt die Pin-Belegung.
Die Hintergrundbeleuchtung des LCDs kann man per Jumper ab- oder zuschalten. Wer will kann diese somit Dimmen, aber auch gegebenenfalls den Strombedarf reduzieren. Oder einfach abschalten weil das Licht einen stört...
Die Position der Anschlussbuchsen ist übrigens bewusst so gewählt, dass sie mit einer kleinen Steckerplatte schnell an PortC /PortA angeschlossen werden können. Das ist praktisch und geht schnell, sollte man jedoch unbedingt diese Pins für etwas anderes brauchen, so kann man ja immer noch mit kleinen Kabeln rumhantieren.
LCD-Controller:
In einer früheren Version dieses Boards vor etwa zwei Jahren habe ich das gleiche LCD verwendet und festgestellt, dass kein HD44780 verbaut wurde (wie in vielen Tutorials angegeben), sondern ein KS0066U von Samsung. Tatsächlich haben damals auch nur Programme nach KS0066U-Standard funktioniert.
Bei meinem aktuellen LCD in diesem Board stelle ich fest, dass der KS0066U-Standard nicht mehr funktioiert. Dafür aber der HD44780-Standard.
Sollte dsa LCD also die kooperation verweigern, einfach mal die Initialisierungsroutinen des jeweils anderen Controllertyps ausprobieren.
Taster:
Die Taster sind, wie bereits beschrieben, über einen Tiefpass entprellt. LOW-Pegel = Taster ist gedrückt, HIGH-Pegel = Taster ist nicht gedrückt. Ich weiß dass manchem diese Art der Entprellung überhaupt nicht zusagt, allerdings hat sich dies bisher in meinen Schaltungen recht gut bewährt. Klar kann man Taster auch softwareseitig entprellen. Allerdings kann ich mir, im Gegensatz zu so mancher Firma, für 30 Cent Kondensatoren und Widerstände leisten. Und ich programmiere AVRs bevorzugt in ASM, und ich habe einfach keine Lust für sowas Banales wie Tastendrückerei lauter Flankenvergleiche und Wartezeiten zu programmieren. Bei einem guten Benutzerinterface ist der Controller sowieso den allergrößten Teil der Zeit damit beschäftigt, dem Menschen den Status Quo kund zutun, da muß das nicht auch noch sein.
Da in anderen Foren selbst so ein profanes Thema in den Stand einer Glaubensfrage mit Ansätzen zum Sektierertum erhoben wird, verzeiht mir bitte diesen Exkurs.
Spannungen:
Das LCD wird konstant mit 5V versorgt, ebenso die HGB des LCDs (mit Vorwiderstand natürlich). In der Lötvorlage sind dies übrigens die grün markierten Leitungen. Die Versorgungsspannung des Controllers wird einfach über eine Steckbrücke ausgewählt. Die Referenzspannung für die Potis ist standardmäßig die Betriebsspannung des Controllers. Um eine externe Spannung zu benutzen muß die entsprechende Brücke entfernt werden, siehe Abbildung.
Wenn ihr einen Kühlkörper montiert so achtet unbedingt darauf, dass die Anschlussfähnchen der beiden Spannungsregler nicht auf demselben Potential liegen. Das bedeutet: wenn ihr eine leitfähige Verbindung zwischen die Befestigungslöcher der beiden TO220-ICs bringt, produziert ihr einen Kurzschluss am LM317. Entweder ihr nehmt also zwei getrennte Kühlkörper, oder ihr macht es so wie ich und legt zwischen Kühlkörper und Spannungsregler ein Stück Wärmeleitmatte und befestigt den Kühlkörper mit einer Kunsstoffschraube.
Noch ein Hinweis zum Löten:
Die Grundbeschaltung des AVRs (Stützkondensatoren, Pullup-Widerstand an der Resetleitung, Programmierleitungen usw.) ist im Sockel untergebracht. Ich wollte den Platz an dieser Stelle möglichst optimal ausnutzen, und am Computer gestaltet sich so ein Layout weitaus einfacher als das spätere praktische Fertigen.
In der Anleitung sind mehrere Detailansichten dieses Teils enthalten. Ich empfehle, mit diesem Teil zu beginnen und erst danach alles andere zu Löten. Wenn die Spannungsversorgung und die Grundbeschaltung des AVRs steht,sollet kurz einen AVR reinstecken und kurz testen. Wenn ihr die Controllersignatur auslesen könnte habt ihr gewonnen-wenn dies nicht gelingt solltet ihr euer Werk nochmal mit der Lötvorlage vergleichen.
AVR-Board mit LCD:
29011
Und ohne LCD:
29012
Die Anleitung enthält:
-Schaltplan
-Lötvorlage in Farbe mit Röntgenblick
-Lötvorlage SW
-Lötvorlage SW mit markierten Potenzialen (grün für 5V, rot für Betriebsspannung, blau für Masse)
-ausführliche Detailansichten des Layouts im Sockelbereich
-Materialliste
Download: 29015
Da immer mal wieder User anfragen wie man am Besten mit Programmieren anfängt möchte ich hier mal ein von mir entworfenes Entwicklerwerkzeug vorstellen. Ich habe diese Platine ursprünglich mal entwickelt um meine eigenen Programmierfähigkeiten zu erweitern auch ohne gleich ein konkretes Projekt dafür zu haben. Möglicherweise teilt der ein oder andere User meine Anforderungen, daher stelle ich meine Arbeit mal hier rein.
Gleich vorweg: Ich habe das Thema EMV von Anfang an leider etwas vernachlässigt. Der Gedanke kam mir erst, nachdem ich das Allermeiste bereits fertig gelötet habe. Ich habe es allerdings trotzdem vorläufig so gelassen, der Controller läuft dadrin bisher ganz anständig. Sollte es mir mal Probleme bereiten (vielliecht beim ADW) werde ich es möglicherweise mal überarbeiten.
Die Platine enthält:
Auswahl zwischen 3,3V oder 5V Spannungsversorgung
8x LED
8x Taster (hardwareentprellt)
LCD (2x16 Zeichen), steckbar
Hintergrundbeleuchtung des LCDs abschaltbar
3 Potis zur analogen Spannungsmessung
Auswahl (Betriebsspannung oder externe Quelle) der analogen Referenzspannung
Reset-Taster
steckbare Quarze
über Zusatzplatinen zum Aufstecken nach Belieben erweiterbar (auch mit Controllern mit anderer Pinbelegung)
für Erweiterungen stehen alle Spannugnen (3,3V; 5V sowie die externe Versorgungsspannung) zum Abgriff bereit
abgreifbares Taktsignal für Controller mit Taktgenerator (z.B. Diamex All-AVR)
Unterstützte Controller:
ATMega164
ATMega324
ATMega644
ATMega1284
Sonstige pinkompatible
Mit einer entsprechenden Zusatzplatine können natürlich auch andere Controller mit anderen Pinbelegungen und anderen Gehäusen verwendet werden.
Ein paar Hinweise zu einzelnen Komponenten:
LCD:
Aufgrund von Erfahrung mit einer früheren Version habe ich das LCD per Wannenstecker und passender Buchsenleiste steckbar ausgeführt um es besser austauschen zu können. Außerdem kann man den Stecker auch noch für andere Dinge verwenden. Wer will kann es ja trotzdem festlöten. In der Anleitung sind beide Versionen enthalten, die Lötvorlagen sind ansonsten völlig identisch.
Damit ihr Lötfehler in eurem eigenen Nachbau ausschliessen könnt werde ich euch aber noch eine Hex-Datei nachliefern. Wer ein anderes LCD als das von mir verbaute verwenden will, beachte unbedingt die Pin-Belegung.
Die Hintergrundbeleuchtung des LCDs kann man per Jumper ab- oder zuschalten. Wer will kann diese somit Dimmen, aber auch gegebenenfalls den Strombedarf reduzieren. Oder einfach abschalten weil das Licht einen stört...
Die Position der Anschlussbuchsen ist übrigens bewusst so gewählt, dass sie mit einer kleinen Steckerplatte schnell an PortC /PortA angeschlossen werden können. Das ist praktisch und geht schnell, sollte man jedoch unbedingt diese Pins für etwas anderes brauchen, so kann man ja immer noch mit kleinen Kabeln rumhantieren.
LCD-Controller:
In einer früheren Version dieses Boards vor etwa zwei Jahren habe ich das gleiche LCD verwendet und festgestellt, dass kein HD44780 verbaut wurde (wie in vielen Tutorials angegeben), sondern ein KS0066U von Samsung. Tatsächlich haben damals auch nur Programme nach KS0066U-Standard funktioniert.
Bei meinem aktuellen LCD in diesem Board stelle ich fest, dass der KS0066U-Standard nicht mehr funktioiert. Dafür aber der HD44780-Standard.
Sollte dsa LCD also die kooperation verweigern, einfach mal die Initialisierungsroutinen des jeweils anderen Controllertyps ausprobieren.
Taster:
Die Taster sind, wie bereits beschrieben, über einen Tiefpass entprellt. LOW-Pegel = Taster ist gedrückt, HIGH-Pegel = Taster ist nicht gedrückt. Ich weiß dass manchem diese Art der Entprellung überhaupt nicht zusagt, allerdings hat sich dies bisher in meinen Schaltungen recht gut bewährt. Klar kann man Taster auch softwareseitig entprellen. Allerdings kann ich mir, im Gegensatz zu so mancher Firma, für 30 Cent Kondensatoren und Widerstände leisten. Und ich programmiere AVRs bevorzugt in ASM, und ich habe einfach keine Lust für sowas Banales wie Tastendrückerei lauter Flankenvergleiche und Wartezeiten zu programmieren. Bei einem guten Benutzerinterface ist der Controller sowieso den allergrößten Teil der Zeit damit beschäftigt, dem Menschen den Status Quo kund zutun, da muß das nicht auch noch sein.
Da in anderen Foren selbst so ein profanes Thema in den Stand einer Glaubensfrage mit Ansätzen zum Sektierertum erhoben wird, verzeiht mir bitte diesen Exkurs.
Spannungen:
Das LCD wird konstant mit 5V versorgt, ebenso die HGB des LCDs (mit Vorwiderstand natürlich). In der Lötvorlage sind dies übrigens die grün markierten Leitungen. Die Versorgungsspannung des Controllers wird einfach über eine Steckbrücke ausgewählt. Die Referenzspannung für die Potis ist standardmäßig die Betriebsspannung des Controllers. Um eine externe Spannung zu benutzen muß die entsprechende Brücke entfernt werden, siehe Abbildung.
Wenn ihr einen Kühlkörper montiert so achtet unbedingt darauf, dass die Anschlussfähnchen der beiden Spannungsregler nicht auf demselben Potential liegen. Das bedeutet: wenn ihr eine leitfähige Verbindung zwischen die Befestigungslöcher der beiden TO220-ICs bringt, produziert ihr einen Kurzschluss am LM317. Entweder ihr nehmt also zwei getrennte Kühlkörper, oder ihr macht es so wie ich und legt zwischen Kühlkörper und Spannungsregler ein Stück Wärmeleitmatte und befestigt den Kühlkörper mit einer Kunsstoffschraube.
Noch ein Hinweis zum Löten:
Die Grundbeschaltung des AVRs (Stützkondensatoren, Pullup-Widerstand an der Resetleitung, Programmierleitungen usw.) ist im Sockel untergebracht. Ich wollte den Platz an dieser Stelle möglichst optimal ausnutzen, und am Computer gestaltet sich so ein Layout weitaus einfacher als das spätere praktische Fertigen.
In der Anleitung sind mehrere Detailansichten dieses Teils enthalten. Ich empfehle, mit diesem Teil zu beginnen und erst danach alles andere zu Löten. Wenn die Spannungsversorgung und die Grundbeschaltung des AVRs steht,sollet kurz einen AVR reinstecken und kurz testen. Wenn ihr die Controllersignatur auslesen könnte habt ihr gewonnen-wenn dies nicht gelingt solltet ihr euer Werk nochmal mit der Lötvorlage vergleichen.
AVR-Board mit LCD:
29011
Und ohne LCD:
29012
Die Anleitung enthält:
-Schaltplan
-Lötvorlage in Farbe mit Röntgenblick
-Lötvorlage SW
-Lötvorlage SW mit markierten Potenzialen (grün für 5V, rot für Betriebsspannung, blau für Masse)
-ausführliche Detailansichten des Layouts im Sockelbereich
-Materialliste
Download: 29015