BasicX BX24 microcontrollore programmabile in BasicData di pubblicazione: 17-10-2003 | Versione Italiana | (No English Version) Parole chiave: - BX24 - How-To - |
Figura 1 - Il modulo BX24
compatibile con Visual Basic e
dotato di multitasking nativo
|
Velocità
|
83.000 istruzioni al secondo
|
Multitasking
|
Nativo. Il BX24 è in grado di eseguire più subroutine BasicX contemporaneamente
ed è in grado di gestire la cominicazione tra esse tramite code e semafori. |
Memoria programma
|
32Kb su EEPROM corrispondendi a 8000 linee BasicX. Può contenere anche variabili permanenti
|
Memoria dati
|
400 byte di memoria RAM. I dati non volatili possono essere memorizzati anche sulla EEPROM insieme al programma.
|
Linee di I/O
|
21 di cui 16 standard, 2 seriali, 3 non riportati sui piedini
|
Ingressi ADC
|
8 delle linee di I/O standard possono essere configurate
come ingressi analogici a 10 bit con velocità di campionamento di 6000 campioni al secondo
|
Linee seriali
|
2 linee di cui una principale con baud rate da 1200 a 460.8K (Com1) ed una secondaria con
baud rate da 1200 a 19200 baud (Com3)
|
Alimentazione
|
da 4.8 volt a 15.0 volt in corrente continua
|
Assorbimento
|
20mA escluso il carico sulle linee I/O
|
Massima corrente erogabile sulle linee di I/O
|
80mA in totale 10 mA su ogni singola linea in uscita (a 5 volt)
|
Temperatura operativa
|
da -40°C a +85°C |
Package
|
24 pin dual in line
|
Operazioni in virgola mobile
|
Si
|
Orologio di sistema
|
Si
|
Interfaccia SPI
|
Si
|
Pull-up sulle linee di I/O
|
Si
|
Altro
|
Interfaccia di programmazione Seriale ad alta velocità o parallela (circa 65000 linee/s).
2 LED rosso e verde on board pilotabili da programma
|
Tabella 1 - Caratteristiche del BX24
|
Introduzione al BX24
Il BX24 è un modulino di dimensioni molto contenute (solo 34x17mm) con cui è possibile
sviluppare in modo semplice e veloce le proprie applicazioni a microprocessore senza
dover studiare linguaggi di programmazione troppo complessi.
Il BX24 si presenta in un package dual in line adatto per essere inserito su uno zoccolo per
circuiti integrati a 24 pin. Al suo interno alloggia un microcontroller Atmel AT90S8535,
una memoria EEPROM da 32K, un quarzo ed un chip per la regolazione della tensione di alimentazione.
Il microcontroller Atmel è già programmato per eseguire il codice operativo memorizzato sulla EEPROM.
Il codice operativo viene generato dall'ambiente di sviluppo BasicX e trasferito nella EEPROM
del modulo tramite un connettore seriale RS232.
Esempio di applicazione minimale
In figura 1 riportiamo lo schema elettrico di base con cui poter iniziare a fare esperimenti con il modulo BX24.
In figura 2 possiamo vedere una foto del montaggio pratico realizzato su una normale breadboard per esperimenti.
Figura 1 - Schema di base per creare applicazioni con il BX24
|
|
Figura 2 - Realizzazione pratica dello schema di base
|
Tra i pin 24 (Vin) e 23 (Gnd) dobbiamo fornire una tensione continua compresa tra 5.5 e 15 volt ottenibile
anche da un normalissimo alimentatore a parete (vedi ad esempio il KK570 nella sezione Area SX
store in fondo a questo articolo). Ai pin 1,2,3 e 4 dobbiamo connettere un connettore Canon DB9 femmina
in modo da poter collegare il BX24 direttamente alla porta seriale del nostro PC per poterne effettuare la programmazione.
Verifica del funzionamento del modulo
Ogni modulo BX24 viene venduto già preprogrammato con un codice di prova che ne consente di verificare immediatamente
il corretto funzionamento. Basta fornire l'alimentazione sui pin 24 (Vin) e 23 (GND), se tutto funziona il led bicolore
installato sul modulo inizierà a lampeggiare. In caso contrario occorre verificare che sia stata fornita correttamente la
tensione di alimentazione.
L'ambiente di sviluppo BASICX
Il BX24 può essere programmato dal suo ambiente di sviluppo per Windows BasicX prodotto da NetMedia.
Questo software, fornito in dotazione su CD con i kit di sviluppo NetMedia, è scaricabile gratuitamente dal
sito web http://www.basicx.com.
Il BasicX è un linguaggio molto simile, nella sua sintassi, al Visual Basic di casa Microsoft. La compatibilità
è così spinta che è possibile testare gli algoritmi in ambienre Visual Basic per poi trasferirli in ambiente
BasicX con modifiche minime se non nulle. Ovviamente si parla di compatibilità solo a livello di sintassi e
non a livello di ambiente di sviluppo visuale (form, funzioni, ocx, ecc.).
Non è comunque assolutamente necessario possedere Visual Basic per poter programmare in BasicX.
Figura 3 - L'ambiente di sviluppo BasicX
L'ambiente di sviluppo BasicX si occupa anche del trasferimento dell'opcode all'interno
della EEPROM del BX24 tramite la porta seriale RS232. L'opcode è il vero e proprio programma
che il BX24 interpreta e che viene prodotto dall'ambiente Basix al termine della compilazione
del codice sorgente scritto dall'utente.
Documentazione tecnica
Molto ben fatta la documentazione tecnica fornita con l'ambiente di sviluppo (disponibile solo in lingua
inglese).
Per chi volesse dare solo un'occhiata evitando di dover scaricare tutti i 15Mb dell'ambiente
di sviluppo forniamo, di seguito, l'elenco dei documenti in formato PDF scaricabili
singolarmente:
- Basic Express Language Reference Descrizione della sintasi del linguaggio BasicX
(Versione 2.0, 33 pagine, formato PDF, dimensione 147Kb, (c) NetMedia)
- Basic Express System Library Descrizione delle singole funzioni di libreria
(Versione 2.0, 131 pagine, formato PDF, dimensione 354Kb, (c) NetMedia)
- Basic Express Operating System Reference Descrizione delle funzioni del
sistema operativo integrato nel Basic Express (Multitasking, code, orologio di sistema, ecc)
(Versione 2.0, 31 pagine, formato PDF, dimensione 150Kb, (c) NetMedia)
- Basic Express Compiler User's Guide Manuale utente dell'ambiente di sviluppo BasicX per Windows
(Versione 2.0, 25 pagine, formato PDF, dimensione 530Kb, (c) NetMedia)
- BX24 Hardware Reference Caratteristiche hardware del modulo BX24 e della
demo board BXBD
(Versione 2.0, 19 pagine, formato PDF, dimensione 195Kb, (c) NetMedia)
- Schema elettrico del modulo BX24
(Revisione E, formato GIF, dimensione 34Kb, (c) NetMedia)
- Datasheet del micro Atmel AT90S8535 Datasheet del microcontrollore Atmel AT90S8525
(Revisione 1041E–04/99, 113 pagine, formato PDF compresso ZIP, dimensione 1900Kb, (c)Atmel )
Esempi di applicazioni pratiche
- Manipolatore Planare a due bracci
Un fantastico progetto di Antonello Galanti: un robot manipolatore basato su BX24, in grado di muoversi su un piano di 20cm di raggio; può disegnare funzioni matematiche o operare come emulatore dei movimenti di un braccio gemello mosso manualmente. Una dimostrazione di come sia possibile sfruttare pienamente tutte le caratteristiche del BX24 anche per progetti complessi
- Radio ricetrasmettitore con BasicX-24 e modulo ER400TRS
In questa applicazione vedremo come pilotare quattro linee digitali utilizzando una interfaccia bidirezionale senza fili. Baseremo il nostro progetto su un modulo BasicX 24 collegato al ricetrasmettitore RF ER400TRS della LPRS.
- Generazione di allarmi via SMS con un modulo BX24
In questo esempio vedremo come poter generare degli SMS di allarme utilizzando un modulo programmabile in basic BX24 collegato ad un modem GSM. Quanto riportato in questo articolo può essere usato come base per progettare sistemi in grado di monitorare lo stato di diverse linee digitali o il superamento di soglie prestabilite su ingressi analogici e di inviare segnalazioni via messaggi SMS.
- CMPS03 Bussola elettronica
La bussola elettronica CMPS03 è un piccolo modulo in grado di misurare il proprio orientamento rispetto al campo magnetico terrestre. Ideale come supporto alla navigazione di robot, modelli telecomandati, ecc..
- SFR04 modulo sonar ad ultrasuoni
In questo articolo presentiamo il modulo sonar SFR04 con cui è possibile misurare la distanza da un ostacolo frontale in un intervallo compreso tra i 3 cm ed i 3 metri grazie all'eco di un segnale ad ultrasuoni.
Guida all'acquisto
Per iniziare ad utilizzare i moduli BX24 e le relative schede di sviluppo BXDB e BXDS direttamente dalla
sezione Area SX store in fondo a questo articolo. Non è necessario invece acquistare invece nessun software in quanto
tutto l'ambiente di sviluppo è contenuto in un unico CD fornito in dotazione o scaricabile dalla sezione
links di questo articolo.
Chi intende sperimentare spendendo il minimo indispensabile, può acquistare il solo
modulo BX24 e realizzare da se una piccola board per esperimenti.
Chi vuole comunque spendere il minimo indispensabile, evitando però il rischio di
bruciare il BX24 a causa di qualche errore nel fare le connessioni, consigliamo anche
l'acquisto della demo board BXDB.
Una valida alternativa più professionale è la scheda SX18 BX24, che consente
in maniera semplice e veloce la prototipazioni con il modulo BX-24 non che
la realizzazione anche di progetti molto complessi. Per maggiori informazioni è possibile fare riferimento
all'articolo SX18 -BasicX24: una scheda completa per lavorare con i BasicX24
Documentazione tecnica della scheda BXDS (Basic Express Development Station)
Librerie di sistema
Uno degli aspetti più interessanti del modulo BX24 e dell'ambiente di programmazione BasicX è
la notevole disponibilità di librerie di sistema già pronte per effettuare funzioni anche
a bassissimo livello
Di seguito riportiamo l'elenco delle funzioni di disponibili sul BX24 divise per categorie:
Funzioni matematiche
Abs Absolute value
ACos Arc cosine
ASin Arc sine
Atn Arc tangent
Cos Cosine
Exp Raises e to a specified power
Exp10 Raises 10 to a specified power
Fix Truncates a floating point value
Log Natural log
Log10 Log base 10
Pow Raises an operand to a given power
Randomize Sets the seed for the random number generator
Rnd Generates a random number
Sin Sine
Sqr Square root
Tan Tangent
Funzioni sulle stringhe
Asc Returns the ASCII code of a character
Chr Converts a numeric value to a character
LCase Converts string to lower case
Len Returns the length of a string
Mid Copies a substring
Trim Trims leading and trailing blanks from string
UCase Converts string to upper case
Funzioni di gestione della memoria
BlockMove Copies a block of data from one RAM location to another
FlipBits Generates mirror image of bit pattern
GetBit Reads a single bit from a variable
GetEEPROM Reads data from EEPROM
MemAddress Returns the address of a variable or array
MemAddressU Returns the address of a variable or array
PersistentPeek Reads a byte from EEPROM
PersistentPoke Writes a byte to EEPROM
PutBit Writes a single bit to a variable
PutEEPROM Writes data to EEPROM
RAMPeek Reads a byte from RAM
RAMPoke Writes a byte to RAM
SerialNumber Returns the version number of a BasicX chip
Funzioni di gestione delle code
GetQueue Reads data from a queue
OpenQueue Defines an array as a queue
PeekQueue Looks at queue data without removing any data
PutQueue Writes data to a queue
PutQueueStr Writes a string to a queue
StatusQueue Determines if a queue has data available for reading
Funzioni di gestione dei task
CallTask Starts a task
CPUSleep Puts the processor in various low-power modes
Delay Pauses task and allows other tasks to run
DelayUntilClockTick Pauses task until the next tick of the real time clock
FirstTime Determines whether the program has ever been run since download
LockTask Locks the task and discourages other tasks from running
OpenWatchdog Starts the watchdog timer
ResetProcessor Resets and reboots the processor
Semaphore Coordinates the sharing of data between tasks
Sleep Pauses task and allows other tasks to run
TaskIsLocked Determine whether a task is locked
UnlockTask Unlocks a task
WaitForInterrupt Allows a task to respond to a hardware interrupt
Watchdog Resets the watchdog timer
Funzioni per la conversioni tra tipi di dati
CBool Convert Byte to Boolean
CByte Convert to Byte
CInt Convert to Integer
CLng Convert to Long
CSng Convert to floating point (single)
CStr Convert to string
CuInt Convert to UnsignedInteger
CuLng Convert to UnsignedLong
FixB Truncates a floating point value, converts to Byte
FixI Truncates a floating point value, converts to Integer
FixL Truncates a floating point value, converts to Long
FixUI Truncates a floating point value, converts to UnsignedInteger
FixUL Truncates a floating point value, converts to UnsignedLong
ValueS Convert a string to a float (single) type
Funzioni per la gestione dell'orologio di sistema
GetDate Returns the date
GetDayOfWeek Returns the day of week
GetTime Returns the time of day
GetTimestamp Returns the date and time of day
PutDate Sets the date
PutTime Sets the time of day
PutTimestamp Sets the date, day of week and time of day
Timer Returns floating point seconds since midnight
Funzioni per il controllo delle linee di I/O
ADCToCom1 Streams data from ADC to serial port
Com1ToDAC Streams data from serial port to DAC
CountTransitions Counts the logic transitions on an input pin
DACPin Generates a pseudo-analog voltage at an output pin
FreqOut Generates dual sinewaves on output pin
GetADC Returns analog voltage
GetPin Returns the logic level of an input pin
InputCapture Records a pulse train on the input capture pin
OutputCapture Sends a pulse train to the output capture pin
PlaySound Plays sound from sampled data stored in EEPROM
PulseIn Measures pulse width on an input pin
PulseOut Sends a pulse to an output pin
PutDAC Generates a pseudo-analog voltage at an output pin
PutPin Configures a pin to 1 of 4 input or output states
RCTime Measures the time delay until a pin transition occurs
ShiftIn Shifts bits from an I/O pin into a byte variable
ShiftOut Shifts bits out of a byte variable to an I/O pin
Gestione delle comunicazioni
Debug.Print Sends string to Com1 serial port
DefineCom3 Defines parameters for serial I/O on arbitrary pin
Get1Wire Receives data bit using Dallas 1-Wire protocol
OpenCom Opens an RS-232 serial port
OpenSPI Opens SPI communications
Put1Wire Transmits data bit using Dallas 1-Wire protocol
SPICmd SPI communications
X10Cmd Transmits X-10 data
I kit di sviluppo
Area SX - SX18 BX24
La scheda SX18 BX24 è una scheda di prototipazione
semplice e versatile, adatta per iniziare a sperimentare con BX24, sia a produrre velocemente prototipi o piccoli progetti
la SX SX18 BX24 include:
- Una porta seriale RS232, dotata di connettore femmina a
9 poli. La configurazione elettrica di questa porta è di
tipo DCE (Data Comunication Equipment) ovvero la stessa
delle periferiche, come ad esempio il modem. Questa porta è
collegata direttamente alle line TX , RX e AM del BX24, in
modo da permettere la programmazione direttamente sul
circuito del microcontrollore; oltre che per la
programmazione il connettore può essere utilizzato come
porta di comunicazione seriale.
- Una porta seriale RS232, dotata di connettore maschio a
9 poli. La configurazione elettrica di questa porta è di
tipo DTE (Data Terminal Equipment) ovvero la stessa
dei PC.
- Un pulsante di reset collegato alla linea Reset del
microprocessore BX24
- Un diodo led (+12V) per indicare la tensione + 12V sulla
scheda.
- 3 led (+5V) controllati direttamente dal
microprocessore.
- Un alimentatore switching da 5 volt,in grado di
sostenere picchi di corrente fino a 2A circa, realizzato per
fornire alimentazione stabilizzata all'elettronica presente
sulla scheda; sono disponibili una serie di contatti su cui
poter prelevare 5 volt stabilizzati per alimentare piccole
circuiterie esterne.
- Un connettore di alimentazione standard
- Un micro interruttore per interrompere la linea di
alimentazione senza dover intervenire sull'alimentatore
esterno.
- Una serie di connettori che rendono disponibili tutte le
linee di ingresso/uscita dei microprocessori, le
alimentazioni (+5V, +12V e GND) e le linee del connettore a
9 poli della porta seriale.
- Un connettore di espansione studiato per collegare la
SX16B (SX16B - Scheda di espansione IN/OUT) oppure una SXLCD (SXLCD: pilotare un display LCD utilizzando una linea seriale).
BasicX Demo BoardLa scheda BXDB (BasicX Demo Board) è la scheda più semplice per poter iniziare a fare qualche
esperimento con il BX24.
In figura 4 viene riportata la scheda in configurazione base in cui sono presenti:
- Uno zoccolo 24x2 pin per ospitare un modulo BX24
- Un connettore per alimentazione (5-15 volt CC)
- Quattro pulsanti da stampato
- Un connettore per display LCD seriale 16x2
In figura 5 viene riportata una foto della scheda completa di LCD seriale 16x2
|
|
|
Figura 4
Scheda di sviluppo BXDB
(BasicX Demo Board)
|
|
Figura 5
La scheda BXDB completa di display seriale
(BasicX Demo Board)
|
BasicX Development Station
Esiste anche una scheda più completa (vedi figura 4) denominata BXDS (BasicX Development Station) dotata di una
completa serie di circuiti accessori con cui poter esplorare a fondo tutte le caratteristiche del BX24
senza dover ricorrere neanche al saldatore.
Figura 4
La scheda di sviluppo BXDS
(BasicX Development Station)
In dotazione alla BXDS viene fornito infatti un set di jumper che permettono
di effettuare le connessioni tra il BX24 ed il resto dei componenti montati
sulla scheda tramite pin ad inserzione.
Di seguito riportiamo una lista dei componenti disponibili:
- Un sensore di temperatura
- Un sensore di luminosità
- Un trimmer
- Una linea RS485
- Una linea RS232
- Una porta parallela
- 8 led ad alta luminosità
- 4 pulsanti
- Una uscita DAC (Digital to Analog Converter) audio
- Una EEPROM esterna (opzionale)
- Una connessione per adattatore X10 (opzionale)
- Un'area forata per il montaggio di altri componenti
Sono inoltre presenti sulla scheda due zoccoli a 40 pin dual in line per ospitare
le versioni di micro BX01 e BX35 equivalenti al chip ATMEL montato a bordo della BX24
ma in formato dual in line.
Segnala questo articolo:
Parole chiave: - BX24 - How-To -
|