Adafruit CC3000 Shield

Adafruit Ethernet, Motor, Proto, Wave, Datalogger, GPS Shields - etc!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
Swifer
 
Posts: 10
Joined: Fri Oct 17, 2014 7:25 am

Adafruit CC3000 Shield

Post by Swifer »

Hola, tengo el Adafruit CC3000 Shield y no se inicializa, he visto en el foro a gente que le pasa lo mismo que a mi pero no logro hacerlo funcionar.

- Arduino Mega 2560. (Fuente alimentación externa 9V)
- Adafruit CC3000 Shield. (Con los jumpers MOSI, SCK y MISO con soldadura.)
- Router TP-Link. Model No. TL-WR740N / TL-WR740ND. (En modo 11bg mixed.)

- El código que he utilizado es el siguiente (buildtest):

Code: Select all

/*************************************************** 
  This is an example for the Adafruit CC3000 Wifi Breakout & Shield

  Designed specifically to work with the Adafruit WiFi products:
  ----> https://www.adafruit.com/products/1469

  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Kevin Townsend & Limor Fried for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

/*

This example does a full test of core connectivity:
* Initialization
* SSID Scan
* AP connection
* DHCP printout
* DNS lookup
* Ping
* Disconnect
It's a good idea to run this sketch when first setting up the
module.

*/

#include <Adafruit_CC3000.h>
#include <ccspi.h>
#include <SPI.h>
#include <string.h>
#include "utility/debug.h"

// These are the interrupt and control pins
#define ADAFRUIT_CC3000_IRQ   3 // MUST be an interrupt pin!
// These can be any two pins
#define ADAFRUIT_CC3000_VBAT  5
#define ADAFRUIT_CC3000_CS    10
// Use hardware SPI for the remaining pins
// On an UNO, SCK = 13, MISO = 12, and MOSI = 11
Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT,
                                         SPI_CLOCK_DIVIDER); // you can change this clock speed but DI

#define WLAN_SSID       "test"        // cannot be longer than 32 characters!
#define WLAN_PASS       "test2014"
// Security can be WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or WLAN_SEC_WPA2
#define WLAN_SECURITY   WLAN_SEC_WPA2



/**************************************************************************/
/*!
    @brief  Sets up the HW and the CC3000 module (called automatically
            on startup)
*/
/**************************************************************************/
void setup(void)
{
  Serial.begin(115200);
  Serial.println(F("Hello, CC3000!\n")); 

  displayDriverMode();
  Serial.print("Free RAM: "); Serial.println(getFreeRam(), DEC);
  
  /* Initialise the module */
  Serial.println(F("\nInitialising the CC3000 ..."));
  if (!cc3000.begin())
  {
    Serial.println(F("Unable to initialise the CC3000! Check your wiring?"));
    while(1);
  }

  /* Optional: Update the Mac Address to a known value */
/*
  uint8_t macAddress[6] = { 0x08, 0x00, 0x28, 0x01, 0x79, 0xB7 };
   if (!cc3000.setMacAddress(macAddress))
   {
     Serial.println(F("Failed trying to update the MAC address"));
     while(1);
   }
*/
  
  uint16_t firmware = checkFirmwareVersion();
  if (firmware < 0x113) {
    Serial.println(F("Wrong firmware version!"));
    for(;;);
  } 
  
  displayMACAddress();
  
  /* Optional: Get the SSID list (not available in 'tiny' mode) */
#ifndef CC3000_TINY_DRIVER
  listSSIDResults();
#endif
  
  /* Delete any old connection data on the module */
  Serial.println(F("\nDeleting old connection profiles"));
  if (!cc3000.deleteProfiles()) {
    Serial.println(F("Failed!"));
    while(1);
  }

  /* Optional: Set a static IP address instead of using DHCP.
     Note that the setStaticIPAddress function will save its state
     in the CC3000's internal non-volatile memory and the details
     will be used the next time the CC3000 connects to a network.
     This means you only need to call the function once and the
     CC3000 will remember the connection details.  To switch back
     to using DHCP, call the setDHCP() function (again only needs
     to be called once).
  */
  /*
  uint32_t ipAddress = cc3000.IP2U32(192, 168, 1, 19);
  uint32_t netMask = cc3000.IP2U32(255, 255, 255, 0);
  uint32_t defaultGateway = cc3000.IP2U32(192, 168, 1, 1);
  uint32_t dns = cc3000.IP2U32(8, 8, 4, 4);
  if (!cc3000.setStaticIPAddress(ipAddress, netMask, defaultGateway, dns)) {
    Serial.println(F("Failed to set static IP!"));
    while(1);
  }
  */
  /* Optional: Revert back from static IP addres to use DHCP.
     See note for setStaticIPAddress above, this only needs to be
     called once and will be remembered afterwards by the CC3000.
  */
  /*
  if (!cc3000.setDHCP()) {
    Serial.println(F("Failed to set DHCP!"));
    while(1);
  }
  */

  /* Attempt to connect to an access point */
  char *ssid = WLAN_SSID;             /* Max 32 chars */
  Serial.print(F("\nAttempting to connect to ")); Serial.println(ssid);
  
  /* NOTE: Secure connections are not available in 'Tiny' mode!
     By default connectToAP will retry indefinitely, however you can pass an
     optional maximum number of retries (greater than zero) as the fourth parameter.
  */
  if (!cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY)) {
    Serial.println(F("Failed!"));
    while(1);
  }
   
  Serial.println(F("Connected!"));
  
  /* Wait for DHCP to complete */
  Serial.println(F("Request DHCP"));
  while (!cc3000.checkDHCP())
  {
    delay(100); // ToDo: Insert a DHCP timeout!
  }  

  /* Display the IP address DNS, Gateway, etc. */  
  while (! displayConnectionDetails()) {
    delay(1000);
  }
  
#ifndef CC3000_TINY_DRIVER
  /* Try looking up www.adafruit.com */
  uint32_t ip = 0;
  Serial.print(F("www.adafruit.com -> "));
  while  (ip  ==  0)  {
    if  (!  cc3000.getHostByName("www.adafruit.com", &ip))  {
      Serial.println(F("Couldn't resolve!"));
    }
    delay(500);
  }  
  cc3000.printIPdotsRev(ip);
  
  /* Do a quick ping test on adafruit.com */  
  Serial.print(F("\n\rPinging ")); cc3000.printIPdotsRev(ip); Serial.print("...");  
  uint8_t replies = cc3000.ping(ip, 5);
  Serial.print(replies); Serial.println(F(" replies"));
  if (replies)
    Serial.println(F("Ping successful!"));
#endif

  /* You need to make sure to clean up after yourself or the CC3000 can freak out */
  /* the next time you try to connect ... */
  Serial.println(F("\n\nClosing the connection"));
  cc3000.disconnect();
}

void loop(void)
{
  delay(1000);
}

/**************************************************************************/
/*!
    @brief  Displays the driver mode (tiny of normal), and the buffer
            size if tiny mode is not being used

    @note   The buffer size and driver mode are defined in cc3000_common.h
*/
/**************************************************************************/
void displayDriverMode(void)
{
  #ifdef CC3000_TINY_DRIVER
    Serial.println(F("CC3000 is configure in 'Tiny' mode"));
  #else
    Serial.print(F("RX Buffer : "));
    Serial.print(CC3000_RX_BUFFER_SIZE);
    Serial.println(F(" bytes"));
    Serial.print(F("TX Buffer : "));
    Serial.print(CC3000_TX_BUFFER_SIZE);
    Serial.println(F(" bytes"));
  #endif
}

/**************************************************************************/
/*!
    @brief  Tries to read the CC3000's internal firmware patch ID
*/
/**************************************************************************/
uint16_t checkFirmwareVersion(void)
{
  uint8_t major, minor;
  uint16_t version;
  
#ifndef CC3000_TINY_DRIVER  
  if(!cc3000.getFirmwareVersion(&major, &minor))
  {
    Serial.println(F("Unable to retrieve the firmware version!\r\n"));
    version = 0;
  }
  else
  {
    Serial.print(F("Firmware V. : "));
    Serial.print(major); Serial.print(F(".")); Serial.println(minor);
    version = major; version <<= 8; version |= minor;
  }
#endif
  return version;
}

/**************************************************************************/
/*!
    @brief  Tries to read the 6-byte MAC address of the CC3000 module
*/
/**************************************************************************/
void displayMACAddress(void)
{
  uint8_t macAddress[6];
  
  if(!cc3000.getMacAddress(macAddress))
  {
    Serial.println(F("Unable to retrieve MAC Address!\r\n"));
  }
  else
  {
    Serial.print(F("MAC Address : "));
    cc3000.printHex((byte*)&macAddress, 6);
  }
}


/**************************************************************************/
/*!
    @brief  Tries to read the IP address and other connection details
*/
/**************************************************************************/
bool displayConnectionDetails(void)
{
  uint32_t ipAddress, netmask, gateway, dhcpserv, dnsserv;
  
  if(!cc3000.getIPAddress(&ipAddress, &netmask, &gateway, &dhcpserv, &dnsserv))
  {
    Serial.println(F("Unable to retrieve the IP Address!\r\n"));
    return false;
  }
  else
  {
    Serial.print(F("\nIP Addr: ")); cc3000.printIPdotsRev(ipAddress);
    Serial.print(F("\nNetmask: ")); cc3000.printIPdotsRev(netmask);
    Serial.print(F("\nGateway: ")); cc3000.printIPdotsRev(gateway);
    Serial.print(F("\nDHCPsrv: ")); cc3000.printIPdotsRev(dhcpserv);
    Serial.print(F("\nDNSserv: ")); cc3000.printIPdotsRev(dnsserv);
    Serial.println();
    return true;
  }
}

/**************************************************************************/
/*!
    @brief  Begins an SSID scan and prints out all the visible networks
*/
/**************************************************************************/

void listSSIDResults(void)
{
  uint32_t index;
  uint8_t valid, rssi, sec;
  char ssidname[33]; 

  if (!cc3000.startSSIDscan(&index)) {
    Serial.println(F("SSID scan failed!"));
    return;
  }

  Serial.print(F("Networks found: ")); Serial.println(index);
  Serial.println(F("================================================"));

  while (index) {
    index--;

    valid = cc3000.getNextSSID(&rssi, &sec, ssidname);
    
    Serial.print(F("SSID Name    : ")); Serial.print(ssidname);
    Serial.println();
    Serial.print(F("RSSI         : "));
    Serial.println(rssi);
    Serial.print(F("Security Mode: "));
    Serial.println(sec);
    Serial.println();
  }
  Serial.println(F("================================================"));

  cc3000.stopSSIDscan();
}
- El mensaje en el monitor serial es:
Hello, CC3000!

RX Buffer : 131 bytes
TX Buffer : 131 bytes
Free RAM: 6846

Initialising the CC3000 ...

- El mensaje en el monitor serial (MODO DEBUGG) es:
Hello, CC3000!

RX Buffer : 131 bytes
TX Buffer : 131 bytes
Free RAM: 6846

Initialising the CC3000 ...
CC3000: init_spi

CC3000: Finished init_spi

init

start

CC3000: SpiOpen CC3000: WlanInterruptEnable.

CC3000: Finished SpiOpen

CC3000: ReadWlanInterruptPin - 001

CC3000: WriteWlanPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 001

CC3000: ReadWlanInterruptPin - 0
He soldado y resoldado los pines varias veces.

Gracias por vuestra atención.
Attachments
IMAG0236.jpg
IMAG0236.jpg (266.04 KiB) Viewed 523 times

User avatar
Franklin97355
 
Posts: 23910
Joined: Mon Apr 21, 2008 2:33 pm

Re: Adafruit CC3000 Shield

Post by Franklin97355 »

Es necesario seguir este Soldering Guide
y volver a hacer esas patillas.

User avatar
Swifer
 
Posts: 10
Joined: Fri Oct 17, 2014 7:25 am

Re: Adafruit CC3000 Shield

Post by Swifer »

Ok, hecho. Pero el resultado es el mismo... : (
Attachments
IMAG0238.jpg
IMAG0238.jpg (255.57 KiB) Viewed 486 times

User avatar
Franklin97355
 
Posts: 23910
Joined: Mon Apr 21, 2008 2:33 pm

Re: Adafruit CC3000 Shield

Post by Franklin97355 »

Sorry, my Spanish is not that good. Your soldering looks much better. If you are powering the Arduino from a USB connection this sometimes happens. Can you try using a power unit or a powered hub for power?

User avatar
Swifer
 
Posts: 10
Joined: Fri Oct 17, 2014 7:25 am

Re: Adafruit CC3000 Shield

Post by Swifer »

He probado con 2 adaptadores de BANNED: 9v y 12v. Pero el resultado es el mismo... : (

I tested with 2 power adapters: 9v and 12v. But the result is the same ... : (

User avatar
Franklin97355
 
Posts: 23910
Joined: Mon Apr 21, 2008 2:33 pm

Re: Adafruit CC3000 Shield

Post by Franklin97355 »

Have you bridged the pads on the back to use the mega? See this page https://learn.adafruit.com/adafruit-cc3 ... 000-shield

(¿Te puenteado las almohadillas en la parte posterior para utilizar la mega? Vea esta página)

User avatar
Swifer
 
Posts: 10
Joined: Fri Oct 17, 2014 7:25 am

Re: Adafruit CC3000 Shield

Post by Swifer »

Si, está hecho. Soldadura en MOSI, SCK y MISO.

Yes, it's done. Solder MOSI, MISO and SCK.

User avatar
Franklin97355
 
Posts: 23910
Joined: Mon Apr 21, 2008 2:33 pm

Re: Adafruit CC3000 Shield

Post by Franklin97355 »

BANNED de que su fuente de alimentación puede proporcionar 1 amperio (1.000 ma) e intente descargar la BANNED versión del IDE Arduino 1.0.6. si se trata de una versión más antigua de la biblioteca CC3000 descargar la BANNED desde GitHub.

User avatar
Swifer
 
Posts: 10
Joined: Fri Oct 17, 2014 7:25 am

Re: Adafruit CC3000 Shield

Post by Swifer »

Ok, hecho.

- Fuente de Alimentación (12v - 1A)
- IDE Arduino 1.0.6
- BANNED biblioteca CC3000 (https://github.com/adafruit/Adafruit_CC3000_Library)

Pero el resultado sigue siendo el mismo. : (

User avatar
Franklin97355
 
Posts: 23910
Joined: Mon Apr 21, 2008 2:33 pm

Re: Adafruit CC3000 Shield

Post by Franklin97355 »

Please email [email protected] with a link to this thread for a replacement. I can't think of anything else to test.

User avatar
Swifer
 
Posts: 10
Joined: Fri Oct 17, 2014 7:25 am

Re: Adafruit CC3000 Shield

Post by Swifer »

Gracias franklin97355, la BANNED funciona perfectamente! : )

Thanks franklin97355, the new works perfectly! : )

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino Shields from Adafruit”