MikroKopter

Allgemeines

Auf dieser Wiki-Seite geht es speziell um das Flashen des Bootloaders der Navi-Ctrl. Auf der NC ist ein STR911FAM44X6 als Mikrocontroller eingesetzt. Damit ein Laden der Firmware möglich wird muss ein Bootloader über die JTAG-Schnittstelle geflasht werden. Ein Flashen über die ISP-Schnittstelle, wie bei den meisten anderen hier eingesetzten Atmels (z.B. FlightCtrl, FollowMe, misthaken), ist nicht möglich.

Im Gegensatz zu anderen ARM's bieten die STR91x die Möglichkeit den Bootloader in einen 2., kleineren Flashbereich zu laden und dann diesen zum Booten vorzugeben. Der Bootloader prüft dann ob im 1., größeren Flashbereich ein gültiger Programmcode vorliegt, der, falls diese Prüfung erfolgreich verläuft, dann abgearbeitet wird. Diese Umschaltung des Flashbereich zum Booten muss ein einem spez. Config-Register, welches nur per JTAG erreichbar ist, gesetzt werden.

An diese Stelle möchte ich mich noch ausdrücklich dafür bedanken, dass uns die "Wissenden im Forum", ausreichend Gelegenheit gegeben haben dazu umfangreiche eigene Erfahrungen zu sammeln.

Beiträge im Forum hierzu

http://forum.mikrokopter.de/topic-9046.html

Bootloader

Der Bootloader ist nicht öffentlich. Für Reparaturen kann aber ein passender STR911 incl. des benötigten Bootloaders erworben werden: Shoplink

Auswechseln eines defekten STR911FAM44X6

Ist der Controller überhaupt defekt?

Ein defekter STR911FAM44X6 lässt sich unter anderem daran erkennen, dass er beim Einschalten der NC sofort sehr warm wird.
{i} Ein "Timeout" beim Updateversuch bedeuten nicht, dass der Bootloader neu programmiert werden muss. Es (ohne Weiteres) nicht möglich den Bootloader zu löschen. Einfach mal während der "Connecting"-Meldung im MK-Tool versuchen die NaviCtrl aus- und wieder einzuschalten. Das sollte i.d.R. helfen.

Entfernen des Mikrocontrollers durch Losschneiden von der Platine

Der Mikrocontroller kann mit einem Skalpell sehr leicht von der Platine geschnitten werden. Dabei werden die einzelnen Beinchen ziemlich weit oben gegen das Gehäuse abgeschnitten, damit die Platine nicht beschädigt wird. Danach können die einzelnen Beinchenreste und das Lötzinn mit einem Lötkolben erwärmt werden und dann mit Hilfe von Entlötlitze von der Platine entfernt werden. Nach der Reinigung der Platine mit einem Wattestäbchen und "Kontakt 60" ist der Bereich fertig vorbereitet zum Auflöten des neuen Controllers.

Weitere Vorschläge zum Entfernen des MC

so man einen Heißlufterzeuger mit einstellbarer Luftmenge und kleinem Luftauslass hat, so 3 - 5 mm, wäre auch das ein gutes Hilfsmittel.

...

Woher bekommt man einen neuen STR911FAM44X6 ?

https://www.mikrocontroller.com/index.php?main_page=product_info&cPath=74&products_id=376&zenid=e766273ec875f52b6742617cd7df8586

Auflöten des neuen Controllers

Nach dem Auflegen des neuen Controllers sollte dieser erst einmal an zwei Punkten gegen Verrutschen fixiert werden. Danach müssen die Pins mit ausreichend Lötzinn gelötet werden. Sollte das Lötzinn dabei zwischen den einzelnen Pins verlaufen, kann es problemlos mit Entlötlitze abgesaugt werden. Nachdem alle Pins gelötet wurden und alles überflüssige Lötzinn aufgesaugt wurde, kann man die einzelnen Pins nochmal mit einer feinen Lötkolbenspitze erwärmen um kalte Lötstellen zu vermeiden.

Flashen des neuen STR911FAM44X6

Hier wird nur beschrieben, wie der Bootloader auf die NC kommt. Das Einspielen der Software auf eine funktionierende NC ist im Wiki im Bereich NaviCtrl beschrieben.

Zum Flashen der NC wird sowohl entsprechende Hardware, als auch entsprechende Software benötigt. Bei der Hardwareauswahl ist zu beachten, dass der STK91x 3,3 Volt an der JTAG-Schnittstelle erwartet und 5 Volt dort vermutlich nicht überlebt.itet.

Auflistung der JTAG-Hardware

Dank sei JUERGEN_ der auf Basis des ST Flashlink dieses kleine gut arbeitende Layout entworfen hat, dass mit ST CAPS benutzbar ist.

http://gallery.mikrokopter.de/main.php/v/tech/IMAG0163.jpg.html

miniFlashLink Alternative von Dirac.

Freundlicherweise hat er das Layout sowie den Schaltplan zum Nachbau bereit gestellt

http://gallery.mikrokopter.de/main.php/v/tech/MK-FlashLink_SCHEMATIC.pdf.html http://gallery.mikrokopter.de/main.php/v/tech/MK-FlashLink_PCB.pdf.html

Reichelt Warenkorb

der JTAG-Adapter von ST zur Nutzung mittels CAPS am PC Parallelport

Wiggler

hier hat Grottenflieger ein Layout erstellt, welches am PC Parallelport unter älteren Versionen von OpenOCD arbeiten müsste

OpenOCD USB

Es ist ein JTAG-Adapter für den USB Port zur Benutzung unter OpenOCD auf Basis des FT2232 und stellt 2 serielle Ports zur Verfügung. Daher kann zu einer odb server session gleichzeitig eine debug Verbindung via Telnet aufgebaut werden. (http://www.embedded-projects.net/index.php?page_id=256)

USBProg3

Unter OpenOCD hat man mit dem USBProg3 einen universellen Programmieradapter, der mit der entsprechenden Firmware sowohl zum ISP-, als auch zum JTAG-Adapter gemacht werden kann. (http://www.embedded-projects.net/index.php?page_id=135) Die ISP-Firmware ist ausgereift und kann gut für die Programmierung von Atmels genutzt werden, wenn keine echte serielle Schnittstelle für Sercon zur Verfügung steht.

Die JTAG-Firmware scheint noch nicht ausgereift zu sein. Eine Programmierung der NC scheint damit zur Zeit nicht möglich zu sein.

Software zur Nutzung der JTAG-Schnittstelle

CAPS

http://www.st.com/stonline/products/literature/um/11684.htm (letzte Zeile auf der Seite)

...

OpenOCD

http://developer.berlios.de/projects/openocd

leider sind die verfügbaren Doc's gegenüber den aktuellen Versionen scheinbar rückständig. Besonders unangenehm ist dabei, dass dort u.A. noch Befehlssätze beschrieben werden, die schon nicht mehr vvorhanden bzw. durch andere ersetzt wurden.

Eine gute Beschreibung zur Benutzung für die STR91x-Familie ist vorhanden bei

http://www.intilinux.com/embedded/530/using-open-source-tools-for-str7xx-cross-development-2/

- jedoch drücken sich die Autoren da genau um die erforderliche Umschaltung der Flashbereiche zum Booten. - siehe Seite 168 unten

Hier ist noch Potential zu intensiver Beschäftigung vorhanden. Der hier Schreibende hat an diese Stelle aufgegeben und sich CAPS zugewand .... ;-)

Auflistung der funktionierenden Kombinationen mit Vorgehensweise

Funktioniert, wurde am 29.05.09 von grottenflieger erfolgreich getestet. Ein Hauptproblem dabei war, dass auf der letzten Maske die Vorgabewerte abgeändert wurden und dadurch das Schreiben der Configuration verhindert wurde, wodurch die Umschaltung auf den 2. Flashbereich beim Reset nicht vorhanden war /!\

Anleitung und Einstellungen folgen ...

vorab - schnell und schmutzig -> http://gallery.mikrokopter.de/main.php/v/tech/NCgreen+Flash.pdf.html

im unteren Teil der geöffneten Anzeige kann die Doku im Original (3 Seiten) als .pdf heruntergeladen werden


MikroKopter: NaviCtrlFlashen (zuletzt geändert am 08.05.2012 14:24 durch LotharF)