Tips & Tricks

Softwareentwicklung

  • Fujitsu F²MC-16LX-Complier mit Eclipse benutzen:

    Es gibt inzwischen ein freies PlugIn für die Eclipse-IDE mit dem man Projekte für die Fujitsu-Controller ziemlich komfortabel erstellen kann. Das PlugIn stammt von Christian Illy, ist also nicht direkt von Fujitsu. Aber es gibt eine offizielle Applikation Note von Fujitsu, die erklärt, wie das PlugIn funktioniert.


  • ASCII-Ausgaben z.B. via RS232:

    Prinzipiell sind in der C-Library alle ANSI-C-Funktionen definiert, allerdings fehlen für die IO-Funktionen ein paar Low-Level-Funktionen, die man selber schreiben muss. Aus diesem Grund ist es nicht möglich direkt ein “printf()” zur Ausgabe über die RS232-Schnittstelle zu benutzen. (Auf der Website von Fujitsu erklärt ein Beispielprogramm, wie diese Low-Level-Funktionen auszusehen haben.)

    Wenn man sich diesen ganzen Aufwand sparen möchte, kann man allerdings sehr gut die Funktion “sprintf()” für die Konvertierung von Zahlen in ASCII benutzen. Diese Funktion arbeitet genau wie “printf()”, gibt den String aber in den Speicher aus. Allerdings hat auch diese Funktion einen Harken: Sie benötigt genau, wie die “printf()"-Funktion sehr viel Speicher auf dem Stack. Um genau zu sein sind es wohl um die 1200 Byte. Aus diesem Grund muss bei der Verwendung dieser Funktion unbedingt der User-Stack in dem File “start.asm” vergrößert werden. Der Defaultwert liegt bei 384 16-Bit Worten. Je nach Stackbedarf der anderen Funktionen ist es sinnvoll diesen Wert zu verdoppeln.

    Interessant wäre noch mal ein Satz Funktionen zur Zahlenumwandlung, dessen Funktionsumfang zwar geringer ist, aber der auch viel weniger Speicher für den Stack belegt. Wer solche Funktionen noch irgendwo “rumliegen” hat, kann ja mal bescheid sagen!

Hardwareentwicklung

  • Der interne Watchdog:

    Der im Controller integrierte Watchdog-Timer scheint nicht zuverlässig zu arbeiten. Softwarefehler lassen sich mit dieser Funktionseinheit abfangen (Neustart des Programms nach Fehler), aber bei Hardwareproblemen ist die Funktionssicherheit nicht gegeben. Z.B. hatte ich bisher mehrfach das Problem, dass die Controller bei eingeschalteten Watchdog bei Spannungsspikes und Drops einfach abgestürzt sind und der Watchdog nicht angesprungen ist. Ich setze inzwischen grundsätzlich einen externen Watchdog-Baustein ein, wenn eine Watchdog-Funktion benötigt wird.

  • **Beschaltung der IO-Pins:
    **Grundsätzlich sollten alle IO-Pins, wenn sie nicht benötigt werden entweder auf ein festes Potential gelegt werden oder über PullUp oder Down-Widerstände beschaltet sein. Die Port-Pins selbst besitzen intern keine Pull-Widerstände. Ggf. kann man auch die nicht benötigten Pins via Software als Ausgang schalten. Allerdings habe ich die Erfahrung gemacht, dass in diesem Fall teilweise zu Problemen bei Programmierung über die RS232-Schnittstelle kommt.

    Wenn die IO-Pins als Eingang dienen muss beachtet werden, dass es sich um CMOS-Eingänge handelt. D.h. auch hier sind entweder PullUp-Widerstände oder HCT/ACT-Bausteine vor zu sehen, wenn noch weitere Logikschaltungen an den Controller angeschlossen werden sollen..

Erstaunlicherweise gibt es kaum Informationen zu den Fujitsu-Controllern aus unabhängigen Quellen. Der Grund ist wahrscheinlich, dass die Controller vorwiegend im professionellen Bereich (d.h. in großen Stückzahlen) eingesetzt werden. In diesen Fällen bekommt man natürlich direkt Support vom Hersteller oder dem Distributor.

  • MHS-Elektronik
    Tiny-CAN Controllerboard mit MB90F598 mit Schaltplan, Software usw. Das gesamte Projekt ist GNU/Freeware.

  • Can AT Home
    Auf dieser Seite wird ein Do-it-yourself Hausbussystem auf CAN-Basis vorgestellt, das unter anderem einen Fujitsu MB90F497 Controller einsetzt. Die Hard- und die Software sind vollständig beschrieben und können heruntergeladen werden.

Wer weitere Links mit Informationen zu den Controllern kennt, darf sie mir gerne per Email schicken!! Danke!