This program is a initial connection test of mBed and Texas Instruments EZ430 Chronos Watch. The Chronos RF Access Point radio dongle is connected to mBed usb port , and it's configured as a usb host. The program uses the USBHostSerial library.

Dependencies:   USBHost mbed

Chronos Test

  • This program is a successful connection test between mBed and the watch EZ430 Chronos Development Tool from texas Instruments.
  • The RF Access Point usb dongle, that comes with the watch, emulates a usb serial port when connected to a PC. I connected it to the mBed usb port , configured as host ( two 10 K ohms resistors from D+,D- to gnd , I know the recommended value is 15k ) and based the development on the USBHostSerial HelloWorld example program.

/media/uploads/jeroavf/img_20140730_101232.jpg

  • The mBed leds are activated based on the button received from the watch : led2 goes on when the "*" button is pressed , led3 when the "#" button is pressed and led4 when the "up"button is pressed .
  • In order to function , you have to select the "ppt control" mode on the chronos watch and after that , start the transmission pressing the "down" button on the watch.

Files at this revision

API Documentation at this revision

Comitter:
jeroavf
Date:
Wed Jul 30 02:16:30 2014 +0000
Parent:
0:54aa44094993
Commit message:
Excluding a redundant while (1) loop

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Wed Jul 30 02:07:46 2014 +0000
+++ b/main.cpp	Wed Jul 30 02:16:30 2014 +0000
@@ -1,22 +1,23 @@
 #include "mbed.h"
 #include "USBHostSerial.h"
- 
+
 DigitalOut led(LED1);
 DigitalOut led2(LED2);
 DigitalOut led3(LED3);
 DigitalOut led4(LED4);
 
 Serial pc(USBTX, USBRX);
-int chronos_answer[10] ; 
- 
-void serial_task(void const*) {
+int chronos_answer[10] ;
+
+void serial_task(void const*)
+{
     USBHostSerial serial;
-    
+
 
     while(!serial.connect())
         Thread::wait(500);
-    
-    serial.baud(115200) ;    
+
+    serial.baud(115200) ;
 
     pc.printf("chronos init ...\n") ;
 
@@ -24,58 +25,58 @@
     serial.putc(0x07) ;
     serial.putc(0x03) ;
     pc.printf("chronos init completed ...\n") ;
-        
-    
+
+
     while(1) {
-        while (1) {
+
+        // send read request to chronos
+        serial.putc(0xFF);
+        serial.putc(0x08);
+        serial.putc(0x07);
+        serial.putc(0x00);
+        serial.putc(0x00);
+        serial.putc(0x00);
+        serial.putc(0x00);
+        Thread::wait(15);
+
 
-           // send read request to chronos 
-            serial.putc(0xFF);
-            serial.putc(0x08);
-            serial.putc(0x07);
-            serial.putc(0x00);
-            serial.putc(0x00);
-            serial.putc(0x00);
-            serial.putc(0x00);            
-            Thread::wait(15);
- 
+        // put received characters on an array
+        int i = 0 ;
+        while (serial.available()) {
+            int c_in = serial.getc() ;
+            chronos_answer[i++] = c_in ;
+        }
+        int button = chronos_answer[3] ;
+        if(button != 255) {
+            printf("Button received : %d\n", button ) ;
+            switch(button) {
+                case 18 :       // * button
+                    led2 = 1 ;
+                    led3 = 0 ;
+                    led4 = 0 ;
+                    break ;
+                case 50 :       // up button
+                    led2 = 0 ;
+                    led3 = 1 ;
+                    led4 = 0 ;
+                    break ;
+                case 34 :       // # button
+                    led2 = 0 ;
+                    led3 = 0 ;
+                    led4 = 1 ;
+                    break ;
 
-            // put received characters on an array 
-            int i = 0 ; 
-            while (serial.available()) {
-                int c_in = serial.getc() ;
-                chronos_answer[i++] = c_in ; 
             }
-            int button = chronos_answer[3] ;
-            if(button != 255) {
-                printf("Button received : %d\n", button ) ;
-                switch(button) {
-                    case 18 :       // * button
-                        led2 = 1 ;
-                        led3 = 0 ;
-                        led4 = 0 ;                        
-                        break ;
-                    case 50 :       // up button
-                        led2 = 0 ;
-                        led3 = 1 ;
-                        led4 = 0 ;
-                        break ;
-                    case 34 :       // # button 
-                        led2 = 0 ;
-                        led3 = 0 ;
-                        led4 = 1 ;
-                        break ;
-                
-                }
-            }
-            
-            
-            Thread::wait(50);
         }
+
+
+        Thread::wait(50);
+
     }
 }
- 
-int main() {
+
+int main()
+{
     Thread serialTask(serial_task, NULL, osPriorityNormal, 256 * 4);
     while(1) {
         led=!led;