Salta a TLDR a continuación para obtener una respuesta más corta:
La línea 3.3v de Arduino Uno Rev2 se alimenta desde el USB FT232R al regulador interno 3v3 del chip serie. El dibujo máximo en esto es inferior a 50 mA. Bastante patético en realidad, por lo que hubo un cambio a un regulador dedicado en la Rev3.
La placa Wifi no se conecta al pin 3v3. Normalmente, funciona con 5v, tiene su propio regulador 3v3 y utiliza un chip de traducción de nivel TXB0108 de TI. Toma dos voltajes arbitrarios (con un cierto rango) y permite que la traducción de nivel se comunique entre los dos. El chip principal en el tablero de Wifi es un dispositivo 3v3. También lo son las tarjetas SD.
Así que aquí está el problema. Notación descuidada, idiota e inconsistente de Arduino.
Arduino Rev3 no agrega el pin IORef que figura en el Esquema oficial.
Como se señaló en línea, al agregar el IORef, dijeron que es para una futura expansión. Los tableros 5v, como los basados en Arduino UNO o AVR predeterminados, ioref está vinculado a 5v. Para el nuevo 32bit Due se ejecuta en 3.3v. Es que IORef está vinculado a 3.3v.
La revisión 3 de la placa tiene las siguientes características nuevas:
Pinout 1.0: se agregaron pines SDA y SCL que están cerca del pin AREF y otros dos pines colocados cerca del pin RESET, el IOREF que permite que los protectores se adapten al voltaje provisto desde la placa. En el futuro, los escudos serán compatibles tanto con la placa que usa el AVR, que funciona con 5V como con el Arduino Due que opera con 3.3V.
El esquema de la Junta Wifi muestra que el pin IORef va a la TXB0108 Pin 19, VccB (El lado que se comunica con el Arduino. VccA es para el chip wifi). También muestra ... que el puente está vinculado a 5v.
Ahora,¿porquélediríanquesalteiorefa3.3v,ouseelpuente,cuandoUNOrev2yrev1sondispositivosde5vIO?¿Ocuandoelpuenteempataiorefa5v,ysabenqueesocausaráproblemas?Irfig.Realmentenodeberíahaberunarazón.Sesuponequetodoloqueseencuentraenesaplacadeberecibiralimentaciónycomunicarseexternamentea5v,porlotanto,amenosquetengaunaplacamodificadade3.3voVencimientooalgoasí,nodeberíahacerlo.UntableroREV2coniorefatadoa3.3valimentarálamitaddelTXB0108yunatapa,juntoconsuTMP102ysusresistenciasdeextracción
Perotodavíahayunproblema.ElArduino,elTXB0108yelTMP102,inclusoenelconsumodecorrientecompleto,aúndebenestaramenosde50mAdelFTD232R.ElTXB0108yelTMP102tienenmenosde1mAyestáncompletamenteactivos.Algoestácausandoquelalínea3v3bajealabaja.PodríaserqueelesquemadelostablerosdeWifitampocoseacorrecto,eliorefpodríaestarvinculadoaotracosatambién.Talvezunamalatabla.Otienesuncortoqueestácausandoquesecaiga.Talvezelcondensadorenlaplacarev2,cercadelencabezadodealimentacióndondeestaríaioref,estécortocircuitadocontraelpiniorefdelasplacaswifi.Yaquetiene3.3vconectadoaél,esposiblequetengauncortocircuitoounalíneade3.3v.
TLDR;
Primero, verifique la línea 3v3 cuando se puentea. No debe ser inferior a 3.3v mientras todo está encendido. Asegúrate de que no tengas pantalones cortos y nada más (excepto la placa wifi y la placa tmp102) conectados. (Cualquier otra cosa requeriría un analizador lógico u osciloscopio, para ver si hay daños en las líneas de datos i2c).
También, asegúrese de que el pin ioref no esté clasificándose en el condensador que se encuentra debajo.
Luego, debido a la información anterior, si (y en este punto es un gran IF, no confío en la documentación de Arduino) el ioref está en la pizarra según el esquema, simplemente conéctese a 5v, ya sea a través del puente en la parte inferior, o usando un cable desde el 5v hasta la cabecera ioref. Dado el chip de traducción de nivel, así es como debe funcionar, y debería funcionar.