RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBO burger Doppelburger - ein Upgrade

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Banner

Letzte Themen

Site-Statistic

  • 5992 private projects
  • 359 public projects
  • 10221070 lines compiled
  • 43898 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1

THEMA: Doppelburger - ein Upgrade

Doppelburger - ein Upgrade 2 Wochen 12 Stunden her #4371

  • boson
  • bosons Avatar
  • OFFLINE
  • Senior Boarder
  • Beiträge: 29
Ein Hardware Udgrade mit Softwarebeispielen

Ich habe den Nibo Burger gewählt, da er für mich die meisten Ansatzpunkte bietet auch an der Hardware etwas zu ändern. Standardmäßig kommt er mit einem ATMega16 der mit 15MHz getaktet wird und eigenem Onboard Programmer daher. Der Prozessor ist im DIL Gehäuse somit kann er gegen einen pinkompatiblen Prozessor getauscht werden. Dafür gibt es auch ein Erweiterungskit mit ATMega1284. Dieses ist jedoch ziemlich teuer, außerdem wird beim Burger die 20MHz nicht garantiert. Das kommt wohl besonders daher, dass der µC vom Controller des Programmers den Takt bekommt. Der Takt wird durchgeschleift von der oberen zur unteren Platine und passiert dabei mehrere Steckverbindungen. Warum man dem Haupt-Controller keinen eigen Quarz verpasst hat ist mir unverständlich.

Ziel des Upgrades soll sein: Echte 20MHz über Quarz, ISP Buchse zum direkten Programmieren z.B. über AVRISP mkII. Bessere Stromversorgung über AA Akus. Dabei soll alles rückbaubar sein.

Warum überhaupt die Hardware ändern? Natürlich geht es mit dem Burger auch mit dem Tuning Kit und dem eingebauten Programmer. Aber die 20Mhz und die direkte Programmierung über ISP waren mir sehr wichtig. Mehr Leistung im Hauptcontroller ist in meinen Augen die Vorraussetzung um aufwendigere Programme unter zu bringen. Auch wenn man das eventuell über einen aufgesetzten Arduino hin bekommen könnte, der dann über USART den Burger steuert, will ich es gern so versuchen.

Schritt 1:

Wir bauen uns auf einer Lochrasterplatine einen 40 PIN DIL Sockel und versehen die Sockel mit Stiftleisten lassen aber genau den Teil aus, der für die Programmierung ist: MISO, MOSI, SCK, RESET, außerdem werden XTAL1 und XTAL2 ausgelassen. GND und VCC werden natürlich verbunden. Die Stifte werden genau senkrecht in die Anschlüsse des Sockels gelötet. Je rechtwinkliger desto besser. Außerdem sollte die Höhe möglichst gleich sein. Das ist etwas pfrimelich, aber es geht. Die Postensteckerbuchse wird gemäß der Ansicht verlötet. Vorsicht, die Ansicht ist von oben! Die Buchse des Schaltplans passt zum Bild, der Schlitz der Buchse ist Links auf dem Bild. Zeigt also nach zu den Motoren. Stimmt die Verdrahtung nicht hat man ein Problem. Jetzt braucht es noch ein 20 MHz Quarz und 2 x 22pF Scheibenkondensatoren. Jeweils ein Anschluss des Quarzes wird an XTAL1 und XTAL2 gelötet. Siehe Plan. Ich habe das mit Fädeldraht gemacht, nicht wunderschön aber passt.

K640_20190318_145014_2019-04-08.JPG


Die Platine sieht ziemlich wild aus, aber sie darf an den Ecken nicht die Achsen und nicht die Elkos berühren. Außerdem knippst man da schonmal etwas zuviel ab...

K640_20190318_144747.JPG


Das kleine Board im Plan, ISP - Stecker von Oben, GND und VCC haben Stifte zum Sockel

Board_2019-04-09.PNG










Schritt2:

Der ATmega16 wird vorsichtig aus dem Sockel entfernt. Das ist gar nicht so einfach der sitzt fest! Links und Rechts mit einem kleinen Schraubendreher vorsichtig (!) aushebeln, bis man ganz drunter kommt. Dann am besten in den Antistatikschaumstoff. Dann den ATMega1284P in den Sockel auf der Lochrasterplatine. Bei neuen ICs sind die Pins nicht im rechten Winkel. Es gibt Ausrichter für ein paar Cent, man kann es aber auch vorsichtig auf eine Holzplatte (antistatisch) machen. Anschließend wird die Lochrasterplatine in den ursprünglichen Sockel gedrückt. Das geht leicht. Es ist keine Gewalt notwendig!

K640_20190407_123559.JPG


Schritt3:

Die Platine selbst passt in die Lücke, aber mit eingestecktem Programmerstecker wird es ziemlich eng. Denn das Oberteil ist zur Programmierung notwendig, da es den Strom liefert. Ich habe deshalb die Abstandshalter etwas verlängert. Ich habe das mit Platinenabstandshaltern (metrisch!) 6mm gemacht. Dann hat man aber das Problem, dass die Stiftleisten der Oberseite nicht mehr in die Buchsen der Unterseite passen. Deshalb habe ich von von Anfang an Buchsenleisten in die Oberseite und nicht Stifte gelötet. Die Stifte dienen dann als Steckverbinder. Das kommt ziemlich genau auf 6mm. Außerdem liegen dann die roten Zahnräder komplett unterhalb der Oberseite. Das hat eine zweiten Vorteil, dass dort mehr Platz ist. Man kann also AA Akkuhalter Anstelle des AAA einlöten und hat damit viel längere Laufzeiten.

Wer das aber nicht will, kann dem Burger auch ein „Schwänzchen“ verpassen ;) und den ISP Anschluss an ein Kabel machen. Zur Programmierung muss der Burger komplett und angeschaltet sein.

K640_20190408_110824.JPG





K640_20190408_110854.JPG


Die Buchsenleisten an der Unterseite der Oberseite:

K640_20190408_110845.JPG


Schritt4:

Jetzt kommt ein Punkt bei dem ich mich zuerst bei „Georg“ für die Vorarbeit bedanken will! :clap:

Ich programmiere den ATMega1284P mit dem Atmel Studio 7, dabei weiche ich etwas von dem was Georg vorgeschlagen hat und manchmal stark wie Workwind es macht ab. Dazu sei gesagt, jeder Programmierer hat seinen eigenen Stiel und ich habe es immer am schwersten empfunden sich in ein Programm eines Anderen hinein zu versetzen. Beides hat meist seine Berechtigung. Ich habe mich mit manchen Aspekten des NIBO Programms noch gar nicht beschäftigt und deshalb mache ich möglicherweise Fehler. Außerdem ist den Burger ein Lernroboter für möglichst viele Entwicklungsumgebungen. Ich mache es mir da leicht, wenn ich nur eine Seite berücksichtige. Außerdem ist er günstig und bedarf keiner zusätzlichen Geräte wie Programmer. Ich will lediglich einen Weg aufzeigen und viele Wege führen nach Rom. Man sehe mir das bitte nach. :blush:

Ist der µC eingesetzt, der Burger betriebsbereit und ein Progammer angeschlossen, in meinem Fall der AVRISP mkII, müssen zuerst die Fuses gesetzt werden. Dazu muss man im Atmel Studio über „Device Programming“ den Kontakt zum µC herstellen. Unter Tool muss der verwendete Programmer stehen, in Device der ATMega1284P ausgewählt sein. Man klickt auf „Apply“ um die Änderungen zu Übernehmen. Jetzt kommt der Moment der Wahrheit, im Moment in dem ich auf Read klicke, wird die „Device Signatur“ ausgelesen. Kommt jetzt ein Fehler habe ich keine Verbindung zu µC. Woran das liegen kann erkläre ich später. Wird jedoch die Device Signatur angezeigt, kann es weitergehen. Wir klicken auf „Fuses“. Jetzt wird eine Übersicht angezeigt mit jeder einzelnen Fuse. Bei neuen µC sind die Fuses voreingestellt und nicht so wie wir es wollen. Die Einstellungen sollten so sein wie in der Abbildung. Was die einzelnen Fuses bedeuten würde hier zu weit gehen. Nur so viel für die die andere Umgebungen nutzen. Bei Atmel ist eine gesetzte Fuse = 0. Haken im Atmel Studio bedeutet also Fuse = 0. Das führt oft zu Verwirrung. Also sind alle Fuses richtig gesetzt auf “Program“ klicken und damit die Einstellung übertragen. Jetzt ist der µC richtig eingestellt hat aber noch kein Programm, macht also noch gar nichts.

Wir haben jetzt einen 20 MHz schnellen µC der jede Menge Platz für eigene Programme hat. Beispiel: Hindernis ausweichen mit Datenübertragung an die Bluetooth Schnittstelle braucht etwa 6 % Programmspeicher und 1,4 % Memory.

Es hat geklappt:


Deviceerkannt.PNG


Kein Kontakt mit dem µC in diesm Fall ein Fehler wegen fehlender Stromversorgung:

FehlerProgrammer.PNG


So sollten die Fuses eingestellt sein:

Fuses.PNG


Bei Problemen:

Gründe für einen Fehler, wenn der erste Kontakt scheitert:

Als erstes könnte es die Spannung sein, die eventuell nicht anliegt. Der Burger muss angeschaltet sein. Natürlich könnte auch die Verlötung nicht in Ordnung sein, eventuell muss nachgelötet werden.

Möglich ist auch, dass die Pins der Buchse nicht richtig konfiguriert sind. Als erstes mal die Buchsen Pin zu µC PIN vergleichen.

In meinem Fall habe ich einen neuen ATMega1284P aus der Schublade genommen. Der war in der Voreinstellung auf „Internen Oszillator“ gestellt. Hat man jedoch den Tuning Kit, ist es möglich (Ich weiß es nicht), dass der µC auf externen Takt voreingestellt ist. Den bekommt er aber nicht, da die Verbindung zum Taktgeber ATTiny44 nicht existiert. Entweder muss der dann im Originalsockel über die USB Verbindung gefused werden oder in einer anderen Umgebung. Ein ATmega1284P kostet bei Pollin oder Reichelt um die 6,-- € + Versand. Bei ebay manchmal weniger ohne Versand, aber da weiß man nicht was man bekommt.

Schritt 5:

Zum Test kann man den im NIBO Programm mitgelieferten Hex – Code verwenden. Dabei ist auf den richtigen µC und die richtige Geschwindigkeit zu achten. In dem Meisten Fällen wird das in diesem Verzeichnis zu finden sein:

C:\Program Files\NiboRoboLib\hex\niboburger-m1284p-20

(Deutsche Windows Rechner machen übrigens aus Program Files > Programme)

Ich will hier nicht das Atmel Studio erklären, deshalb nur kurz ein Bild.


first.PNG



Habt ihr geflashed sollte der Burger laufen wie es in der Erstinitialisierung erklärt ist.

Schritt 6:

Die AAA Akkuhalter gegen AA austauschen.

Das sollte man sich gut überlegen. Außerdem ist es nur möglich, wenn ihr in Schritt 3 die Anstandshalter eingebaut habt und die roten Zahnräder nicht mehr durch die obere Platine stoßen.

Gründe für den Umbau:

Längere Laufzeit (mir war das wichtig)

Gründe dagegen:

Die Akkus sind vermutlich nicht mehr über USB ladbar, weil das Ladegerät dafür nicht entwickelt wurde. Ist aber nur eine Vermutung!

Der Abstand bei den Tastern wird sehr eng. Ein Finger geht nur noch schwer dazwischen.

Akkuhalter gibt es überall im Internet für wenig Geld zu kaufen, wenn man das wirklich mach will, sollte man welche mit Kabeln nehmen, damit man sicher in die Schlitze kommt. Man muss möglicherweise die Löcher des Akkuhalters an die des Burgers anpassen. Die Befestigung mit dem Kabelbinder ist sehr wichtig, da die Akkus auch mehr wiegen. Wenn es fertig ist sieht es so aus:


K640_20190409_180618.JPG



Ich habe ja auch noch ein Programm im Atmel Studio versprochen. Das passt aber nicht zu diesem Post. Ich werde es extra machen, sonst wird das hier eine unendliche Geschichte

;)


Gruß Boson.
Anhang:
Letzte Änderung: 1 Woche 6 Tage her von boson.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Doppelburger - ein Upgrade 1 Woche 6 Tage her #4372

  • Georg
  • Georgs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 283
Hallo Boson,

beim NIBOburger habe ich die Fuses mit Hilfe des Atmel Studio 7 und den Programmer AVRISP MK II von einem über USB instalierten Programm ausgelesen:

BODLEVEL = DISABLED
OCDEN = [ ]
JTAGEN = [ ]
SPIEN = [X]
WDTON = [ ]
EESAVE = [X]
BOOTSZ = 4096W_F000
BOOTRST = [ ]
CKDIV8 = [ ]
CKOUT = [ ]
SUT_CKSEL = EXTXOSC_8MHZ_XX_16KCK_4MS1

EXTENDED = 0xFF (valid)
HIGH = 0xD1 (valid)
LOW = 0xEF (valid)
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Doppelburger - ein Upgrade 1 Woche 6 Tage her #4373

  • boson
  • bosons Avatar
  • OFFLINE
  • Senior Boarder
  • Beiträge: 29
Hi Gorge,

Das muss aber ein ATMega1284 sein oder? Denn EXTENDED = 0xFF gibt es beim ATMega16A nicht. Allerdings bin ich jetzt etwas verunsichert, denn bisher glaubte ich entweder Quarz oder Externer Ozillatior. Scheinbar kann man aber in dieser Einstellung so wie der Burger geschaltet ist auch einen externen Taktgeber anschließen. Abgesehen von der EESave Fuse, die man noch setzen sollte.

Aber um so besser! Die Doppelauswahl legt es auch nahe:


Fuse3.PNG


Trotzdem sollte man vielleicht einen anderen µC nehmen, wenn man keine andere Umgebung hat. Sonst verfused sich noch einer den µC und es geht nichts mehr.

Abgesehen davon, was hältst du von dem kleinen Updgrade?


Gruß Boson
Letzte Änderung: 1 Woche 6 Tage her von boson.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Doppelburger - ein Upgrade 1 Woche 6 Tage her #4374

  • Georg
  • Georgs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 283
Hi, Boson
Kürzer Nachtrag, ich verwende einen 1284p mit 15 Mhz.
LG Georg
Der Administrator hat öffentliche Schreibrechte deaktiviert.
  • Seite:
  • 1
Ladezeit der Seite: 0.130 Sekunden

Werbung

Online