PEmicro-erlebniswelt

Programmazione automatica di Flash con C

La linea di programmatori stand-alone Cyclone di PEmicro offre una soluzione rapida, robusta e automatizzata per la programmazione di microprocessori su scala produttiva. Tuttavia, gli impianti di produzione possono desiderare un livello di automazione ancora più elevato rispetto al tocco di un solo pulsante offerto dal Cyclone. PEmicro offre diverse opzioni per automatizzare il controllo, tra cui un'applicazione console, la comunicazione con protocollo Ethernet/Seriale o l'SDK incluso nella nuova Cyclone Control Suite di PEmicro. In questo articolo parliamo dell'uso dell'SDK per automatizzare il controllo della programmazione e della flessibilità e scalabilità che offre ai nostri clienti.

NOTA: Questo esempio è mostrato in C. Il codice e le applicazioni demo delle interfacce dell'SDK Cyclone Control sono incluse per GCC, LabView, Microsoft Visual C, Microsoft Visual C # e Delphi / FPC.

1. Introduzione - Controllare un Cyclone tramite PC

Il nuovo Cyclone Control SDK di PEmicro fornisce agli sviluppatori una DLL (Dynamic Link Library), applicazioni di esempio e documentazione di supporto per consentire alle applicazioni software personalizzate di controllare direttamente il Cyclone.

Le informazioni sui dati binari, gli algoritmi, le operazioni di programmazione e altre impostazioni sono memorizzate in un'immagine SAP che viene archiviata direttamente nella memoria FLASH del Cyclone. Le operazioni di programmazione possono essere avviate sul Cyclone semplicemente premendo un pulsante. Tuttavia, l'SDK consente a un PC di impartire un comando al Cyclone per avviare la stessa sequenza di programmazione e di fornire altre funzioni, come la possibilità di aggiungere dati dinamici a ogni scheda in fase di programmazione e la possibilità di ripristinare le informazioni sugli errori.

L'utilizzo di un PC per controllare il Cyclone migliora la funzionalità delle operazioni di programmazione stand-alone e introduce nuove funzioni che prima non erano disponibili. Le sezioni seguenti illustrano le caratteristiche dell'SDK e forniscono esempi pratici da utilizzare nella tua linea di produzione automatizzata.

2. Utilizzo dell'SDK - Semplice esempio

Using_the_SDK__8211__Simple_Example

L'esempio di codice qui sopra mostra un'operazione di base supportata dall'SDK. Di seguito sono riportati i passi che abbiamo compiuto:

Indirizzare il ciclone desiderato specificandone il nome ("Fixture1Cyclone1"). È possibile specificare anche la porta ("USB1", "ETHERNET1" o "COM1") o l'indirizzo IP ("192.168.1.10") del dispositivo. L'handle del Cyclone viene restituito e utilizzato per identificare il Cyclone in tutte le chiamate di funzione successive.
Invia un comando al Cyclone per avviare le operazioni di programmazione specificate nell'immagine 1. Queste operazioni sono state specificate durante la creazione dell'immagine. Queste operazioni sono state specificate durante la creazione dell'immagine.
Attendi che il Cyclone completi le operazioni di programmazione prima di procedere.
Verifica la presenza di errori durante la programmazione e restituisce il codice di errore e un messaggio all'utente.
Termina la sessione corrente con il Cyclone.

3. Utilizzare l'SDK - Funzioni avanzate

a.) Programmare il numero di serie
Il Cyclone dispone già di un meccanismo di programmazione del numero di serie integrato nell'immagine SAP. Il Cyclone può tracciare e incrementare automaticamente il numero di serie dopo che una scheda è stata programmata con successo. I numeri di serie possono anche essere programmati come dati dinamici sulle schede di destinazione tramite l'SDK. In questo caso, la funzionalità del Cyclone per i numeri di serie non viene utilizzata. Piuttosto, l'applicazione chiamante fornisce e programma i dati dinamici dopo che i dati dell'immagine principale sono già stati programmati.

Programming_a_serial_number

Nota: le seguenti funzioni segnaposto sono utilizzate per semplificare l'esempio e non sono fornite dal pacchetto di controllo automatico:

get_serial_from_file
increment_serial_number
save_serial_back_to_file
Il codice dell'esempio di cui sopra si basa sul semplice esempio precedente, che istruisce il cyclone a eseguire le operazioni di programmazione autonoma dell'immagine memorizzata sul cyclone. In seguito, programmiamo un numero di serie dinamico di 2 byte all'indirizzo 0x1000 del processore di destinazione. Il numero di serie viene poi incrementato e scritto in un file per un uso successivo.

L'SDK offre una grande flessibilità quando si tratta di numeri di serie. Questo esempio di codice può essere facilmente modificato per programmare dati dinamici non sequenziali. Ad esempio, se vogliamo programmare la data corrente o un numero di lotto. Questo esempio di codice può anche essere esteso per utilizzare più cicloni (vedi sezione 5) che condividono un numero di serie incrementale tra tutte le unità del ciclone. Tutti questi requisiti possono essere facilmente soddisfatti scrivendo un'applicazione personalizzata utilizzando l'SDK.

b.) Aggiornare automaticamente l'immagine memorizzata nel Cyclone

Automatically_update_image_stored_on_the_Cyclone

Questo è un esempio molto semplice di come garantire che l'immagine memorizzata su un Cyclone sia sempre aggiornata. Viene effettuato un confronto tra l'immagine attualmente presente sul Cyclone e un file di immagine in una posizione specifica sul PC host. Se c'è una mancata corrispondenza, si aggiorna l'immagine. Poi si prosegue con le normali operazioni di programmazione come mostrato negli esempi precedenti.

c.) Lavorare con le proprietà
Le impostazioni di Cyclone, della rete Cyclone e delle immagini salvate possono ora essere recuperate direttamente da un Cyclone utilizzando il meccanismo delle proprietà. Con le proprietà dell'immagine, puoi leggere informazioni come il CRC dell'immagine, il numero di serie attuale e le impostazioni di alimentazione. Con le proprietà del ciclone, puoi leggere o impostare valori come il nome del ciclone, che può essere utilizzato per aprire il ciclone in futuro. Puoi vedere un elenco delle categorie e delle proprietà nel file di intestazione degli esempi di programmazione inclusi nell'SDK.

Working_with_properties

La routine getPropertyList restituisce un elenco di categorie valide e delle loro proprietà. La routine getPropertyValue restituisce il valore della categoria e della proprietà che hai passato come argomenti.

 

4. Utilizzo dell'SDK - Esempio di funzionamento in corridoio

Negli esempi precedenti abbiamo discusso alcuni utilizzi dell'SDK con una singola unità ciclonica. Poiché il PC host invia informazioni di controllo minime per controllare ogni ciclone, un singolo PC può controllare più unità ciclone contemporaneamente.

Gang_Operation_Example

Qui iniziamo a programmare 3 unità Cyclone separate collegate al PC host. Questo funziona anche se tutti i Cyclone sono collegati a un mix di porte diverse. Poi aspettiamo che finiscano prima di continuare. In sostanza, stiamo programmando 3 unità separate in parallelo. Questa procedura può essere facilmente estesa fino a 100 unità Cyclone in rete controllate in parallelo da un unico PC host.

Ulteriori informazioni - Impostazione di un'immagine di programmazione standalone
Il primo passo è sempre quello di creare le immagini standalone che verranno memorizzate sul Cyclone. Queste immagini contengono l'algoritmo necessario per programmare FLASH / EEPROM, i dati binari effettivi da programmare, la sequenza delle operazioni di programmazione e molte impostazioni personalizzate del Cyclone. Con l'utility PEmicro per la creazione di immagini Cyclone, l'utente può configurare l'ordine delle immagini stand-alone.

Setting_Up_a_Stand_Alone_Programming_Image

Qui sopra è riportata una schermata della finestra di dialogo dell'utility di creazione dell'immagine del ciclone che consente all'utente di configurare l'immagine stand-alone. Il riquadro a destra mostra le fasi di programmazione e l'ordine in cui vengono eseguite.

Per prima cosa, selezioniamo l'algoritmo appropriato per il nostro processore. In questo esempio, utilizziamo l'NXP Kinetis KL25Z128.
Successivamente, specifichiamo il file oggetto di destinazione che rappresenta i dati binari da programmare nella memoria FLASH del processore. In questo caso utilizziamo un file S-Record di Motorola.
Una volta specificati l'algoritmo e il file oggetto di destinazione, possiamo iniziare la programmazione. In genere, si cancella il dispositivo per assicurarsi che sia vuoto, si programma il target e si controlla che il contenuto sia stato scritto correttamente. Se selezioni l'opzione Avvia script guidato, l'utility creerà automaticamente la sequenza di programmazione per te.

vorletzt

Oltre alla sequenza di programmazione, ci sono anche delle impostazioni per il Cyclone che possiamo configurare. Nella schermata qui sopra, utilizziamo i relè di alimentazione del Cyclone Universal per fornire i 3,0 volt necessari ad accendere il processore. In questo modo non abbiamo bisogno di un alimentatore separato per la nostra scheda target, semplificando la nostra linea di produzione.

Finally_image_Description

Infine, forniamo la descrizione dell'immagine in modo da poterla identificare facilmente in seguito. Questo è il testo che verrà visualizzato sullo schermo di Cyclone. Con l'opzione "Salva l'immagine su disco" possiamo salvare l'immagine e la sua configurazione in un file .SAP da utilizzare in futuro con l'SDK.

Programmatore PEmicro Cyclone

pemicro cyclone fx universalCyclone FX Universal Header Layout
Cyclone Universal FX
CYCLONE-FX-UNIV
Il PEmicro Cyclone FX Universal è un programmatore indipendente per processori ARM e 8/16/32 bit.

1.369,00 €*
PEmicro cyclone lc universalpemicro cyclone lc universal header layout
Cyclone LC Universal
CYCLONE-LC-UNIV
Il PEmicro Cyclone LC Universal è un programmatore indipendente per processori ARM e 8/16/32 bit.

979,00 €*
PEmicro cyclone lc armpemicro cyclone lc arm header layout
Cyclone LC ARM
CYCLONE-LC-ARM
Il PEmicro Cyclone LC ARM è un programmatore indipendente per processori ARM Cortex M.

799,00 €*