cc3000_ntp_demo_F446RE

Dependencies:   NTPClient2 NVIC_set_all_priorities cc3000_hostdriver_mbedsocket mbed

Fork of cc3000_ntp_demo by Martin Kojtal

Files at this revision

API Documentation at this revision

Comitter:
Kojto
Date:
Thu Oct 03 14:46:22 2013 +0000
Parent:
1:fd70c76e74b2
Child:
3:4a2dfa38a61e
Commit message:
update to NVIC set all priorities, update host driver, init function

Changed in this revision

KL25Z_irq_proirities.lib Show diff for this revision Revisions of this file
NVIC_set_all_priorities.lib Show annotated file Show diff for this revision Revisions of this file
cc3000_hostdriver_mbedsocket.lib Show annotated file Show diff for this revision Revisions of this file
init.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
main.h Show annotated file Show diff for this revision Revisions of this file
--- a/KL25Z_irq_proirities.lib	Tue Oct 01 04:48:37 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/frankvnk/code/KL25Z_irq_proirities/#d2dd5df65f0e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NVIC_set_all_priorities.lib	Thu Oct 03 14:46:22 2013 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/frankvnk/code/NVIC_set_all_priorities/#676bbfffe9f6
--- a/cc3000_hostdriver_mbedsocket.lib	Tue Oct 01 04:48:37 2013 +0000
+++ b/cc3000_hostdriver_mbedsocket.lib	Thu Oct 03 14:46:22 2013 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/Kojto/code/cc3000_hostdriver_mbedsocket/#7069c5f1e6f4
+http://mbed.org/users/Kojto/code/cc3000_hostdriver_mbedsocket/#9fdf8b4e41bf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/init.cpp	Thu Oct 03 14:46:22 2013 +0000
@@ -0,0 +1,54 @@
+#include "main.h"
+
+#if (MY_BOARD == WIGO)
+
+#include "NVIC_set_all_priorities.h"
+
+/**
+ *  \brief Wi-Go initialization
+ *  \param none
+ *  \return none
+ */
+void init() {
+    DigitalOut PWR_EN1(PTB2);
+    DigitalOut PWR_EN2(PTB3);
+
+    // Wi-Go set current to 500mA since we're turning on the Wi-Fi
+    PWR_EN1 = 0;
+    PWR_EN2 = 1;
+
+    NVIC_set_all_irq_priorities(3);
+    NVIC_SetPriority(SPI0_IRQn, 0x0);     // Wi-Fi SPI interrupt must be higher priority than SysTick
+    NVIC_SetPriority(PORTA_IRQn, 0x1);
+    NVIC_SetPriority(SysTick_IRQn, 0x2);  // SysTick set to lower priority than Wi-Fi SPI bus interrupt
+    PORTA->PCR[16] |=PORT_PCR_ISF_MASK;
+    PORTA->ISFR |= (1 << 16);
+}
+
+#elif (MY_BOARD == WIFI_DIPCORTEX)
+
+/**
+ *  \brief Wifi DipCortex initialization
+ *  \param none
+ *  \return none
+ */
+void init() {
+    NVIC_SetPriority(SSP1_IRQn, 0x0);
+    NVIC_SetPriority(PIN_INT0_IRQn, 0x1);
+
+    // SysTick set to lower priority than Wi-Fi SPI bus interrupt
+    NVIC_SetPriority(SysTick_IRQn, 0x2);
+}
+
+#else
+
+/**
+ *  \brief Place here init routine for your board
+ *  \param none
+ *  \return none
+ */
+void init() {
+
+}
+
+#endif
--- a/main.cpp	Tue Oct 01 04:48:37 2013 +0000
+++ b/main.cpp	Thu Oct 03 14:46:22 2013 +0000
@@ -14,24 +14,25 @@
  * limitations under the License.
  */
 #include "mbed.h"
-#include "KL25Z_irq_prio.h"
 #include "cc3000.h"
 #include "main.h"
 #include "NTPClient.h"
 
 using namespace mbed_cc3000;
 
-#if (WIGO_BOARD)
-// Wi-Go battery charger control
-DigitalOut PWR_EN1(PTB2);
-DigitalOut PWR_EN2(PTB3);
-#endif
-
 Serial pc(USBTX, USBRX);
-cc3000 wigo(PTA16, PTA13, PTD0, SPI(PTD2, PTD3, PTC5), PORTA_IRQn);
 tUserFS user_info;
 NTPClient ntp;
 
+/* cc3000 module declaration specific for user's board. Check also init() */
+#if (MY_BOARD == WIGO)
+cc3000 wifi(PTA16, PTA13, PTD0, SPI(PTD2, PTD3, PTC5), PORTA_IRQn);
+#elif (MY_BOARD == WIFI_DIPCORTEX)
+cc3000 wifi(p28, p27, p30, SPI(p21, p14, p37), PIN_INT0_IRQn);
+#else
+
+#endif
+
 #ifndef CC3000_UNENCRYPTED_SMART_CONFIG
   const uint8_t smartconfigkey[] = {0x73,0x6d,0x61,0x72,0x74,0x63,0x6f,0x6e,0x66,0x69,0x67,0x41,0x45,0x53,0x31,0x36};
 #else
@@ -45,16 +46,16 @@
 void print_cc3000_info() {
     uint8_t myMAC[8];
 
-    printf("MAC address + cc3000 info\n");
-    wigo.get_user_file_info((uint8_t *)&user_info, sizeof(user_info));
-    wigo.get_mac_address(myMAC);
-    printf(" MAC address %02x:%02x:%02x:%02x:%02x:%02x\n\n", myMAC[0], myMAC[1], myMAC[2], myMAC[3], myMAC[4], myMAC[5]);
+    printf("MAC address + cc3000 info \r\n");
+    wifi.get_user_file_info((uint8_t *)&user_info, sizeof(user_info));
+    wifi.get_mac_address(myMAC);
+    printf(" MAC address %02x:%02x:%02x:%02x:%02x:%02x \r\n \r\n", myMAC[0], myMAC[1], myMAC[2], myMAC[3], myMAC[4], myMAC[5]);
 
-    printf(" FTC        %i\n",user_info.FTC);
-    printf(" PP_version %i.%i\n",user_info.PP_version[0], user_info.PP_version[1]);
-    printf(" SERV_PACK  %i.%i\n",user_info.SERV_PACK[0], user_info.SERV_PACK[1]);
-    printf(" DRV_VER    %i.%i.%i\n",user_info.DRV_VER[0], user_info.DRV_VER[1], user_info.DRV_VER[2]);
-    printf(" FW_VER     %i.%i.%i\n",user_info.FW_VER[0], user_info.FW_VER[1], user_info.FW_VER[2]);
+    printf(" FTC        %i \r\n",user_info.FTC);
+    printf(" PP_version %i.%i \r\n",user_info.PP_version[0], user_info.PP_version[1]);
+    printf(" SERV_PACK  %i.%i \r\n",user_info.SERV_PACK[0], user_info.SERV_PACK[1]);
+    printf(" DRV_VER    %i.%i.%i \r\n",user_info.DRV_VER[0], user_info.DRV_VER[1], user_info.DRV_VER[2]);
+    printf(" FW_VER     %i.%i.%i \r\n",user_info.FW_VER[0], user_info.FW_VER[1], user_info.FW_VER[2]);
 }
 
 /** Connect to SSID with a timeout
@@ -63,9 +64,9 @@
  *  \param  sec_mode Security mode
  *  \return none
  */
-void connect_to_ssid(uint8_t *ssid, uint8_t *key, uint8_t sec_mode) {
+void connect_to_ssid(char *ssid, char *key, unsigned char sec_mode) {
     printf("Connecting to SSID: %s. Timeout is 10s.\n",ssid);
-    if (wigo.connect_to_AP(ssid, key, sec_mode) == true) {
+    if (wifi.connect_to_AP((uint8_t *)ssid, (uint8_t *)key, sec_mode) == true) {
         printf(" Connected\n");
     } else {
         printf(" Connection timed-out (error). Please restart.\n");
@@ -77,22 +78,8 @@
  *  \param  ssid Name of SSID
  *  \return none
  */
-void connect_to_ssid(uint8_t *ssid) {
-    wigo.connect_open(ssid);
-}
-
-void wigo_init(void) {
-    /* KL25 specific code */
-    // Wi-Go set current to 500mA since we're turning on the Wi-Fi
-    SET_PWR_EN1;
-    SET_PWR_EN2;
-
-    NVIC_SetAllPriority(3);
-    NVIC_SetPriority(SPI0_IRQn, 0x0);     // Wi-Fi SPI interrupt must be higher priority than SysTick
-    NVIC_SetPriority(PORTA_IRQn, 0x1);
-    NVIC_SetPriority(SysTick_IRQn, 0x2);  // SysTick set to lower priority than Wi-Fi SPI bus interrupt
-    CLEAR_PCR_INTERRUPT;
-    CLEAN_PORT_INTERRUPT;
+void connect_to_ssid(char *ssid) {
+    wifi.connect_open((uint8_t *)ssid);
 }
 
 /** First time configuration
@@ -100,15 +87,15 @@
  *  \return none
  */
 void do_FTC(void) {
-    printf("Running First Time Configuration\n");
-    wigo.start_smart_config(smartconfigkey);
-    while (wigo.is_dhcp_configured() == false) {
+    printf("Running First Time Configuration \r\n");
+    wifi.start_smart_config(smartconfigkey);
+    while (wifi.is_dhcp_configured() == false) {
          wait_ms(500);
-         printf("Waiting for dhcp to be set.\n");
+         printf("Waiting for dhcp to be set. \r\n");
     }
     user_info.FTC = 1;
-    wigo.set_user_file_info((uint8_t *)&user_info, sizeof(user_info));
-    wigo._wlan.stop();
+    wifi.set_user_file_info((uint8_t *)&user_info, sizeof(user_info));
+    wifi._wlan.stop();
     printf("FTC finished.\n");
 }
 
@@ -117,56 +104,56 @@
  *  \return int
  */
 int main() {
-    wigo_init();
+    init(); /* board dependent init */
     pc.baud(115200);
 
-    wigo.start(0);
-    printf("CC3000 ping demo.\n");
+    wifi.start(0);
+    printf("CC3000 NTP client demo. \r\n");
     print_cc3000_info();
 
-    printf("Attempting SSID Connection\n");
+    printf("Attempting SSID Connection. \r\n");
 #if (USE_SMART_CONFIG == 1)
     if (user_info.FTC == 1) {
-        wigo._wlan.ioctl_set_connection_policy(0, 1, 1);
+        wifi._wlan.ioctl_set_connection_policy(0, 1, 1);
     } else {
-        printf("Smart config is not set, starting configuration\n");
+        printf("Smart config is not set, starting configuration. \r\n");
         do_FTC();
-        printf("Smart config is set. Please restart your board.\n");
+        printf("Smart config is set. Please restart your board. \r\n");
         while(1);
     }
 #else
-    wigo._wlan.ioctl_set_connection_policy(0, 0, 0);
+    wifi._wlan.ioctl_set_connection_policy(0, 0, 0);
 
 
 #ifndef CC3000_TINY_DRIVER
 #ifdef AP_KEY
-    connect_to_ssid((uint8_t *)SSID,(uint8_t *)AP_KEY,AP_SECURITY);
+    connect_to_ssid(SSID, AP_KEY, AP_SECURITY);
 #else
-    connect_to_ssid((uint8_t *)SSID);
+    connect_to_ssid(SSID);
 #endif
 #else
-    connect_to_ssid((uint8_t *)SSID);
+    connect_to_ssid(SSID);
 #endif
 #endif
     printf("DHCP request\n");
-    while (wigo.is_dhcp_configured() == false) {
+    while (wifi.is_dhcp_configured() == false) {
          wait_ms(500);
-         printf("  Waiting for dhcp to be set.\n");
+         printf("  Waiting for dhcp to be set. \r\n");
     }
 
-    printf("Getting time, 10s timeout.\n");
+    printf("Getting time, 10s timeout. \r\n");
     if (ntp.setTime("0.uk.pool.ntp.org") == 0)
     {
-      printf("Set time successfully\r\n");
+      printf("Set time successfully. \r\n");
       time_t ctTime;
       ctTime = time(NULL);
-      printf("Time is set to (UTC): %s\r\n", ctime(&ctTime));
+      printf("Time is set to (UTC): %s \r\n", ctime(&ctTime));
     }
     else
     {
-      printf("Error\r\n");
+      printf("Error. \r\n");
     } 
 
-    wigo.disconnect();
+    wifi.disconnect();
 }
 
--- a/main.h	Tue Oct 01 04:48:37 2013 +0000
+++ b/main.h	Thu Oct 03 14:46:22 2013 +0000
@@ -16,7 +16,13 @@
 #ifndef MAIN_H
 #define MAIN_H
 
-/* use this defines in AP_SECURITY */
+#define WIGO           1
+#define WIFI_DIPCORTEX 2
+#define UNDEFINED      3
+
+#define MY_BOARD WIGO
+
+// use this defines in AP_SECURITY
 #define NONE 0
 #define WEP  1
 #define WPA  2
@@ -27,25 +33,9 @@
 
  // Default SSID Settings
 #define AP_KEY       "zxcvbnm,./"
-#define AP_SECURITY     WPA2            // WPA2 must be enabled for use with iPhone or Android phone hotspot!
-#define SSID           "SSID"
-/* Board specific */
-#define WIGO_BOARD 1
-
-#if (WIGO_BOARD == 1)
+#define AP_SECURITY  WPA2            // WPA2 must be enabled for use with iPhone or Android phone hotspot!
+#define SSID         "SSID"
 
-#define SET_PWR_EN1    PWR_EN1 = 0
-#define SET_PWR_EN2    PWR_EN2 = 1
-
-#define WLAN_ISF_PCR        PORTA->PCR[16]
-#define WLAN_ISF_ISFR       PORTA->ISFR
-#define WLAN_ISF_MASK       (1<<16)
-
-#define CLEAR_PCR_INTERRUPT    WLAN_ISF_PCR|=PORT_PCR_ISF_MASK;
-#define CLEAN_PORT_INTERRUPT   WLAN_ISF_ISFR|=WLAN_ISF_MASK;
-
-#else
+void init();
 
 #endif
-
-#endif