PEmicro-erlebniswelt

Automatisierte Flash-Programmierung mit C

Die PEmicro-Produktlinie von Cyclone-Einzelprogrammierern bietet eine schnelle, robuste und automatisierte Lösung für die Programmierung von Mikroprozessoren im Produktionsmaßstab. Produktionsanlagen wünschen sich jedoch möglicherweise einen noch höheren Automatisierungsgrad als die vom Cyclone angebotene Ein-Knopf-Touch-Funktion. PEmicro bietet verschiedene Möglichkeiten zur Automatisierung der Steuerung, darunter eine Konsolenanwendung, Ethernet / Serial-Protokollkommunikation oder das SDK, das in der neuen Cyclone Control Suite von PEmicro enthalten ist. In diesem Artikel diskutieren wir die Verwendung des SDK zur Automatisierung der Programmiersteuerung und die Flexibilität und Skalierbarkeit, die es unseren Kunden bietet.

HINWEIS: Dieses Beispiel wird in C gezeigt. Der Code und die Demoanwendungen des Cyclone Control SDK-Schnittstellen sind für GCC, LabView, Microsoft Visual C, Microsoft Visual C # und Delphi / FPC enthalten.

1. Einführung - Steuerung eines Zyklons über den PC

Das neue Cyclone Control SDK von PEmicro bietet dem Entwickler eine DLL (Dynamic Link Library), Beispielanwendungen und unterstützende Dokumentation, damit benutzerdefinierte Softwareanwendungen den Cyclone direkt steuern können.

Binärdateninformationen, Algorithmusinformationen, Programmiervorgänge und andere Einstellungen werden zusammen in einem SAP-Image gespeichert, das direkt im FLASH-Speicher des Cyclone gespeichert wird. Programmiervorgänge können per Knopfdruck auf dem Cyclone gestartet werden. Das SDK ermöglicht es einem PC jedoch, dem Cyclone einen Befehl zum Starten derselben Programmiersequenz zu erteilen und auch andere Funktionen bereitzustellen, z. B. die Möglichkeit, Dynamik hinzuzufügen Daten zu jeder zu programmierenden Karte und die Möglichkeit, Fehlerinformationen wiederherzustellen.

Die Verwendung eines PCs zur Steuerung des Zyklons verbessert die Funktionalität der eigenständigen Programmiervorgänge und führt neue Funktionen ein, die zuvor nicht verfügbar waren. In den folgenden Abschnitten werden die Funktionen des SDK erläutert und praktische Beispiele für die Verwendung in Ihrer eigenen automatisierten Produktionslinie vorgestellt.

2. Verwenden des SDK - Einfaches Beispiel

Using_the_SDK__8211__Simple_Example

Das obige Codebeispiel zeigt eine sehr grundlegende Operation, die vom SDK unterstützt wird. Nachfolgend sind die Schritte aufgeführt, die wir unternommen haben:

Wenden Sie sich an den gewünschten Zyklon, indem Sie dessen Namen angeben („Fixture1Cyclone1“). Die Portaufzählung („USB1“, „ETHERNET1“ oder „COM1“) oder die IP-Adresse („192.168.1.10“) des Geräts können ebenfalls angegeben werden. Das Handle des Cyclone wird zurückgegeben und zur Identifizierung des Cyclone in allen nachfolgenden Funktionsaufrufen verwendet.
Senden Sie einen Befehl an den Cyclone, um die in Image 1 angegebenen Programmiervorgänge zu starten. Diese Vorgänge wurden während der Imageerstellung festgelegt.
Warten Sie, bis der Cyclone die Programmiervorgänge abgeschlossen hat, bevor Sie fortfahren.
Überprüfen Sie, ob während der Programmierung Fehler aufgetreten sind, und geben Sie den Fehlercode und eine Meldung an den Benutzer zurück.
Beenden Sie die aktuelle Sitzung mit dem Cyclone.

3. Verwenden des SDK - Erweiterte Funktionen

a.) Seriennummer programmieren
Der Cyclone verfügt bereits über einen im SAP-Image integrierten Programmiermechanismus für Seriennummern. Der Cyclone kann die Seriennummer verfolgen und automatisch erhöhen, nachdem eine Karte erfolgreich programmiert wurde. Seriennummern können auch über das SDK als dynamische Daten auf Zielkarten programmiert werden. In diesem Fall wird die Seriennummernfähigkeit des Cyclone nicht verwendet. Vielmehr stellt die aufrufende Anwendung die dynamischen Daten bereit und programmiert sie, nachdem die Hauptimagedaten bereits programmiert wurden.

Programming_a_serial_number

Hinweis: Die folgenden Platzhalterfunktionen dienen zur Vereinfachung des Beispiels und werden vom automatisierten Steuerungspaket nicht bereitgestellt:

get_serial_from_file
increment_serial_number
save_serial_back_to_file
Der obige Beispielcode basiert auf dem vorherigen einfachen Beispiel, das den Zyklon anweist, die eigenständigen Programmiervorgänge des auf dem Zyklon gespeicherten Image auszuführen. Anschließend programmieren wir eine dynamische 2-Byte-Seriennummer in die Adresse 0x1000 des Zielprozessors. Die Seriennummer wird dann erhöht und zur späteren Verwendung in eine Datei zurückgeschrieben.

Das SDK bietet viel Flexibilität beim Umgang mit Seriennummern. Dieses Codebeispiel kann leicht geändert werden, um dynamische Daten zu programmieren, die nicht sequentiell sind. Zum Beispiel, wenn wir das aktuelle Datum oder eine Losnummer programmieren möchten. Dieses Codebeispiel kann auch erweitert werden, um mehrere Zyklone (siehe Abschnitt 5) zu verwenden, die eine inkrementelle Seriennummer zwischen allen Zykloneinheiten teilen. Jede dieser Anforderungen kann einfach erfüllt werden, indem Sie mit dem SDK Ihre eigene benutzerdefinierte Anwendung schreiben.

b.) Im Cyclone gespeichertes Image automatisch aktualisieren

Automatically_update_image_stored_on_the_Cyclone

Dies ist ein sehr einfaches Beispiel dafür, wie Sie sicherstellen können, dass das auf einem Cyclone gespeicherte Image immer auf dem neuesten Stand ist. Es wird ein Vergleich zwischen dem Image, das sich derzeit auf dem Cyclone befindet, und einer Image-Datei an einem bestimmten Speicherort auf dem Host-PC durchgeführt. Wenn es eine Nichtübereinstimmung gibt, aktualisieren wir das Image. Danach fahren wir mit den normalen Programmiervorgängen fort, wie in den vorherigen Beispielen gezeigt.

c.) Arbeiten mit Eigenschaften
Cyclone-, Cyclone-Netzwerk- und gespeicherte Imageeinstellungen können jetzt mithilfe des Eigenschaftsmechanismus direkt von einem Cyclone abgerufen werden. Mit den Imageeigenschaften können Sie Informationen wie die Image-CRC, die aktuelle Seriennummer und die Energieeinstellungen auslesen. Mit den Cycloneeigenschaften können Sie Werte wie den Cyclonenamen lesen oder festlegen, die dann in Zukunft zum Öffnen des Cyclone verwendet werden können. Sie können eine Liste der Kategorien und Eigenschaften in der Header-Datei der Programmierbeispiele sehen, die im SDK enthalten sind.

Working_with_properties

Die Routine getPropertyList gibt eine Liste gültiger Kategorien und ihrer Eigenschaften zurück. Die Routine getPropertyValue gibt den Wert der Kategorie und Eigenschaft zurück, die Sie als Argumente übergeben.

 

4. Verwenden des SDK - Gang-Betriebsbeispiels

In früheren Beispielen haben wir einige Verwendungen des SDK mit einer einzelnen Zykloneinheit erörtert. Da der Host-PC nur minimale Steuerinformationen sendet, um jeden Zyklon zu steuern, kann ein einzelner PC tatsächlich mehrere Cycloneeinheiten gleichzeitig steuern.

Gang_Operation_Example

Hier beginnen wir mit der Programmierung von 3 separaten Cyclone-Einheiten, die an den Host-PC angeschlossen sind. Dies funktioniert auch dann, wenn alle Cyclones an einer Mischung verschiedener Ports angeschlossen sind. Dann warten wir auf ihre Fertigstellung, bevor wir fortfahren. Im Wesentlichen programmieren wir 3 separate Geräte parallel. Dies kann problemlos auf bis zu 100 Cyclone-Einheiten in einem Netzwerk erweitert werden, das parallel von einem einzelnen Host-PC aus gesteuert wird.

Weitere Informationen - Einrichten eines eigenständigen Programmierabbilds
Der erste Schritt besteht immer darin, die tatsächlichen eigenständigen Images zu erstellen, die auf dem Cyclone gespeichert werden. Diese Images enthalten den zum Programmieren von FLASH / EEPROM erforderlichen Algorithmus, die tatsächlich zu programmierenden Binärdaten, die Reihenfolge der Programmiervorgänge und viele benutzerdefinierte Cycloneeinstellungen. Mit dem PEmicro-Dienstprogramm zur Erstellung von Cycloneimages kann der Benutzer die eigenständigen Imageordnungsgemäß konfigurieren.

Setting_Up_a_Stand_Alone_Programming_Image

Oben sehen Sie einen Screenshot des Dialogfelds im Dienstprogramm zur Erstellung von Cycloneimages, mit dem der Benutzer das eigenständige Image konfigurieren kann. Das Feld rechts zeigt die Programmierschritte sowie die Reihenfolge, in der diese Schritte ausgeführt werden.

Zunächst wählen wir den geeigneten Algorithmus für unseren Prozessor aus. In diesem Beispiel verwenden wir den NXP Kinetis KL25Z128.
Als nächstes geben wir die Zielobjektdatei an, die die Binärdaten darstellt, die in den FLASH-Speicher des Prozessors programmiert werden sollen. Hier verwenden wir eine Motorola S-Record-Datei.
Sobald der Algorithmus und die Zielobjektdatei angegeben sind, können wir mit der Programmierung beginnen. In der Regel wird das Gerät gelöscht, um sicherzustellen, dass es leer ist, das Ziel programmiert und überprüft, ob der Inhalt korrekt geschrieben wurde. Wenn Sie die Option Skript-Assistenten starten auswählen, erstellt das Dienstprogramm automatisch die Programmiersequenz für Sie.

vorletzt

Neben der Programmiersequenz gibt es auch Einstellungen für den Cyclone, die wir konfigurieren können. Im obigen Screenshot verwenden wir die Leistungsrelais des Cyclone Universal, um die 3,0 Volt zum Einschalten unseres Prozessors bereitzustellen. Auf diese Weise benötigen wir keine separate Stromversorgung für unsere Zielplatine, was unsere Produktionslinie vereinfacht.

Finally_image_Description

Schließlich geben wir die Imagebeschreibung an, damit wir das Image später leicht identifizieren können. Dies ist der Text, der auf dem Bildschirm von Cyclone angezeigt wird. Mit der Option "Image auf Festplatte speichern" können wir dieses Image und seine Konfiguration als .SAP-Datei für die zukünftige Verwendung mit dem SDK speichern.

PEmicro Cyclone Programmer

pemicro cyclone fx universalCyclone FX Universal Header Layout
Cyclone Universal FX
CYCLONE-FX-UNIV
Der PEmicro Cyclone Universal FX (U-Cyclone-FX) ist eine Standalone Programmer für ARM und 8/16/32 bit Prozessoren.

1.369,00 €*
PEmicro cyclone lc universalpemicro cyclone lc universal header layout
Cyclone LC Universal
CYCLONE-LC-UNIV
Der PEmicro Cyclone LC Universal (U-Cyclone) ist eine Standalone Programmer für ARM und 8/16/32 bit Prozessoren.

979,00 €*
PEmicro cyclone lc armpemicro cyclone lc arm header layout
Cyclone LC ARM
CYCLONE-LC-ARM
Der PEmicro Cyclone LC ARM ist eine Standalone Programmer für ARM Cortex M Prozessoren.

799,00 €*