USB use

   During programming BASICtools is used to load the users ARMbasic program.  But once the user's ARMbasic program is running the USB port may be used to communicate data back to the PC.

General Info

  The USB port is configured as a USB slave device and emulates a serial port for the PC.  Drivers are also available from FTDI for the Mac or Linux (FTDI 232RL running in serial emulation mode, normally VCP type driver).

PC side programs

  Any program on the PC that can communicate with a serial port can send or receive data to the ARMexpress eval PCB or the ARMmite.  This would include MSCOMM and Visual BASIC.  Also various C's including GCC.  Other options include Perl or Tcl scripts. 

   However these programs must be able to control the DTR and RTS lines under user control.  If they cannot refer to the next section. Programs that cannot include Teraterm, Hyperterm and MatLab .

   The TclTerm.tcl is the source for a Tcl program that operates as a terminal emulator for the ARMexpress family.  You can use it if you have access to any of the GPL Tcl interpreters, or a compiled version is available on the Coridium Support page.  The sources are also at the ARMexpress Yahoo Groups Files Section where you will also find a sample C program (written for MinGW) that will also communicate with the ARMexpress family.


   Baudrate will remain at 19.2Kb, unless changed by the user program which can be done with

#include <SERIAL.bas>
BAUD0 (newrate)

  Output of Data to PC 

   The ARMbasic program can use PRINT, or TXD0

Input of Data from PC

   An ARMbasic program should use RXD0.  These routines will return -1 if no data is available.  This allow the users program to continue doing other tasks, or the user program can loop waiting for input on RXD0.

   DEBUGIN in a user program will wait for data, even if that is for ever.  It is not a good practice to use this function for sending data back to the PC.  Its operation is recommended for user interaction with programs during the development stage, while using BASICtools.