Robotica Facil. Robots, kits, circuitos, sensores, motores, etc.. SR1 Robot Multifuncional Robótica Fácil  
Página Principal Novedades Ayuda Ver Carrito Catálogo
Kits Robots Circuitos electrónicos Sensores robotica Motores y servos para robots Ruedas y Orugas para robots
Soportes y hardware Tornillos y separadores Libros robotica Radio Modem, Transmisores de Vídeo Robots Fotograficos
Fuentes de Alimentacion Componentes electrónicos Varios robotica Proyectos de Robotica Tutoriales de Robotica
CIRCUITO INTERFACE USB A I2C MEJORADO USB-ISS S310427

CIRCUITO INTERFACE USB A I2C MEJORADO USB-ISS. Clic para ampliar

Descripción general

Este circuito le proporciona una completa interfaz entre su PC y el bus I2C, el bus SPI, un puerto serie y una entrada analógica o E/S digital. El módulo se alimenta desde el puerto USB. Puede seleccionar una tensión de funcionamiento entre 3,3 y 5 voltios y suministrar hasta 80 mA a 5 voltios para los circuitos externos desde un puerto USB estándar de 100 mA.

Comparativa entre USB-I2C y USB-ISS
  USB-I2C   USB-ISS  
Alimentado por USB Si   Si  
Compatible con I2C a 100 khz Si   Si  
Compatible con I2C a 20 - 1000 khz No   SI Fijo a 20,50,100,400 y 1000 khz
I2C + E/S No   Si  
Modo SPI No   Si De 24 khz a 3 Mhz
Modo serie No   Si De 300 baudios a 3 Mbaudios
I2C Directo NO   Si Se utiliza para crear secuencias I2C personalizadas
Cargador de arranque para las actualizaciones de usuario No   Si Utiliza Microchip Bootloader
Fuente de alimentación para el circuito externo Si   Si Hasta 80 mA para USB-ISS 
Funcionamiento a 5 voltios: Si   Si  
Funcionamiento a 3,3 voltios No   Si  
Orificios de montaje en el circuito No   Si  

 

Primer paso: obtener los controladores

Antes de conectar el módulo USB-ISS, debería descargar el controlador y descomprimirlo en una carpeta temporal. A continuación, conecte el módulo USB-ISS y desplácese hasta la carpeta temporal e instale el controlador. El módulo USB-ISS aparecerá ahora como un puerto COM.

¿Qué puerto COM utilizar?

Después de instalar los controladores, y conectar el módulo USB-ISS en el puerto USB libre, necesitará saber a qué puerto COM ha sido asignado. Esto variará de sistema a sistema dependiendo de cuántos puertos COM tenga instalados actualmente. Para averiguar dónde se encuentran, pulse el icono de "Mi PC" del escritorio y y seleccione "Propiedades->Hardware->Administrador de dispositivos". y ahí "Puertos (COM & LPT)". Debería ver una lista de los puertos serie-USB - COM5 en el ejemplo siguiente. Si quiere cambiar el número de puertos COM, simplemente deberá hacer doble clic, seleccionar propiedades avanzadas y seleccionar el número de puerto COM de la lista de puertos disponibles. Una vez asignado el puerto COM, lo único que tiene que hacer es seleccionarlo en la aplicación de Windows que vaya a utilizar para establecer la comunicación. El puerto USB aparece como un puerto más y es totalmente compatible con cualquier aplicación de Windows. El puerto COM predeterminado debería tener la configuración siguiente: 9600 baudios, 8 data bits, sin paridad y 2 bits de parada; pero sea cual sea ignórelo.  Estos ajustes no se utilizan en realidad porque tenemos una conexión completa de 12 Mbits en el núcleo del procesador.

Conexiones

El diagrama siguiente muestra las conexiones para los distintos modos.

Conexión de alimentación - Extraer para el funcionamiento a 3,3 voltios. Función de los Pines según el modo de funcionamiento

I/O SPI Serie I2C I2C+Serie
3,3v / 5v 3,3v / 5v 3,3v / 5v 3,3v / 5v 3,3v / 5v
I/O4 SDI I/O4 SDA SDA
I/O3 SCK I/O3 SCL SCL
I/O2 SDO Tx I/O2 Tx
I/O1 /CE Rx I/O1 Rx
Tierra 0v Tierra 0v Tierra 0v Tierra 0v Tierra 0v
Conexión de Bootloader - Conecte la conexión para el modo bootloader (cargador de arranque)

3,3 o 5 voltios

Añada la conexión para 5 voltios, retire la conexión para 3,3 v
El procesador en el USB-ISS funciona igual de bien con 3,3 voltios o 5 voltios. Con los LEDs, consume hasta 20 mA por lo que si se selecciona 5v vinculando los pines de selección de alimentación, el módulo USB-ISS puede suministrar hasta 80 mA para los dispositivos externos. Cuando se quita la conexión, entonces una fuente de alimentación de 3,3 voltios suministrará la alimentación. Esta fuente de alimentación es capaz de suministrar 50 mA, por lo que cuando funciona a 3,3 voltios, se suministrará hasta 30 mA a sus circuitos. Si su aplicación requiere más, o dispone de su propia alimentación, entonces deje sin conectar el pin de 3,3/5 voltios. No aplique su propia tensión a este pin.

Pines de E/S

Cada pin de E/S (1 - 4) puede seleccionarse de forma individual como Entrada analógica o Entrada digital o Salida digital. 
las entradas no admitirán una tensión superior a la alimentación, por lo que si va a utilizar 3,3 voltios, las entradas NO toleran los 5 voltios.  
Las entradas analógicas oscilan desde 0 voltios hasta 1023 para la alimentación (conversión de analógico a digital de 10 bits).

SCL y SDA

Estos pines son las conexiones del bus I2C. Deberían conectarse directamente a los pines SCL y SDA de su dispositivo I2C. El módulo USB-ISS es siempre un bus maestro y está equipado con resistencias pull-up de 4,7 k en la placa del circuito. Estas resistencias se desconectan automáticamente en otros modos.

SDI, SCK, SDO y CE

SDI es la entrada SPI para el módulo USB-ISS; conéctela a la SDO de su dispositivo.
SDO es la salida SPI desde el módulo USB-ISS; conéctela a la SDI de su dispositivo.
SCK es la salida de reloj SPI desde el módulo USB-ISS; conéctela a la SCK de su dispositivo.
CE es la señal de activación del chip inferior; conéctela a la CE de su dispositivo.

Tx y Rx

Estas son señales de nivel lógico, no RS232. No lo conecte a un puerto RS232 sin utilizar un chip de inversión de nivel lógico de RS232.

Tierra 0v

El pin de conexión a tierra de 0 voltios debe conectarse a los 0 v (tierra) de su dispositivo.

Comandos de configuración

El comando USB-ISS (0x5A) se utiliza para operaciones internas. Hay tres subcomandos:

Comando Subcomando Descripción
USB-ISS (0x5A) ISS_VERSION (0x01) Devuelve 3 bytes, el ID del módulo (7), versión de firmware (actualmente 2), y el modo de funcionamiento actual.
USB-ISS (0x5A) ISS_MODE (0x02) Configura el modo de funcionamiento, I2C/SPI/Serie, etc. Consulte la sección siguiente para obtener detalles.
USB-ISS (0x5A) GET_SER_NUM (0x03) Devuelve el número de serie USB único de 8 bytes del módulo.

ISS-VERSION

devolverá tres bytes. El primero es el ID del módulo que será siempre 7. El segundo byte es el número de revisión del firmware. El tercer byte es el modo de funcionamiento actual, ISS_MODE. Este se inicializa a 0x40 (I2C-S_100KHZ) en el encendido.
Ejemplo: 
Se envía 0x5A, 0x01. 
Se recibe 0x07, 0x02, 0x40.

GET_SER_NUM

Devolverá el número de serie USB único del modulo de 8 bytes. 
Ejemplo:
Se envía 0x5A, 0x03. 
Se recibe 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31. (esto es "00000001")
El número de serie recibido será siempre dígitos ASCII en el rango desde "0" hasta "9" ( desde 0x30 hasta 0x39 ).

ISS_MODE

Establece el modo de funcionamiento. Esto configura los pines de E/S del módulo y el hardware para el modo requerido. Hay 4 modos de funcionamiento (I2C, SPI, Serie y E/S), algunos de los cuales pueden combinarse. El modo I2C puede subdividirse en varias frecuencias fijas y el uso del software (bit bashed) o los puertos I2C de hardware. La lista completa es la siguiente:

Modo de Funcionamiento Valor
IO_MODE 0x00 
IO_CHANGE 0x10
I2C_S_20KHZ 0x20
I2C_S_50KHZ 0x30
I2C_S_100KHZ 0x40 
I2C_S_400KHZ  0x50
I2C_H_100KHZ 0x60
I2C_H_400KHZ 0x70
I2C_H_1000KHZ 0x80
SPI_MODE  0x90
SERIE 0x01

I/O_CHANGE

no es realmente un modo de funcionamiento. Se utiliza para cambiar el modo de E/S entre entrada analógica, entrada digital y salida digital sin cambiar los ajustes serie o I2C.
Los modos I2C tendrán la E/S en los pines I/O1 e I/O2.
El modo serie tendrá la E/S en los pines I/O3 e I/O4.
El modo I2C y serie puede combinarse, por ejemplo I2C_S_100KHZ (0x40) + SERIE (0x01) = 0x41.
El modo SPI requiere los cuatro pines de E/S por lo que no hay otras opciones para este modo.

IO_MODE

El modo de E/S requiere un byte adicional IO_TYPE para establecer el tipo de E/S para cada pin.

El byte IO_TYPE consta de hasta 4 pares de bits, 1 par para cada pin de E/S: 4B,4A, 3B,3A, 2B,2A, 1B,1A

Donde cada par es: xB  xA Modo
  0   0 Salida baja
  0  1 Salida alta
  1  0 Entrada digital
  1  1 Entrada analógica

Por ejemplo, 0x01 (binario 00000001) establecería I/O1 como una salida alta y las I/O 2-4 como una salida baja.
0xB4 (binario 10110100) establecería I/O4 como una entrada digital, I/O3 como una entrada analógica, I/O2 como una salida alta y I/O1 como una salida baja.

El comando de cuatro bytes para configurar el modo E/S:

ISS_CMD ISS_MODE IO_MODE IO_TYPE (ver el cuadro anterior)
0x5A 0x02 0x00  0xB4

El modo I/O puede combinarse con el modo SERIE.
Cuando se combina con el modo SERIE, I/O1 es el pin de recepción (Rx) y I/O2 es el pin de transmisión (Tx). Sólo I/O3 e I/O están disponibles como pines de E/S.
Este es un comando de configuración de 6 bytes.

ISS_CMD ISS_MODE IO_MODE+SERIAL Divisor de la tasa de baudios (byte alto) Divisor de la tasa de baudios (byte bajo) IO_TYPE (ver el ejemplo anterior)
0x5A 0x02 0x01 0x00  0x9B 0xB0

En todos los comandos de configuración, se devuelven dos bytes. Consulte Bytes de Respuesta mas adelante.

La fórmula para calcular la tasa de baudios es:
 x = (48000000/(16+tasa de baudios))-1
Por ejemplo, si la tasa de baudios necesaria es 19200
(48000000/(16*19200))-1 =  155.25 por lo que utilizaremos 155.
155 es 0x009B por lo que establecemos el byte alto en 0x00 y el byte bajo en 0x9B.
Aquí se incluyen algunas tasas de baudios estándar:

Tasa de baudios Divisor Byte alto Byte bajo
300 9999 0x27 0x0F
1200 2499 0x09 0xC3
2400 1249 0x04 0xE1
9600 311 0x01 0x37
19,2k 155 0x00  0x9B
38,4k 77 0x00  0x4D
57,6k 51 0x00  0x33
115,2k 25 0x00  0x19
250k 11 0x00  0x0B
1M 3 0x00  0x03

El modo serie es compatible con los dos formatos de bit de parada 1 y 2 dado que transmite 2 bits de parada y sólo tiene que recibir 1. No hay paridad.

I/O_CHANGE

No es realmente un modo de funcionamiento. Se utiliza para cambiar el modo de E/S entre entrada analógica, entrada digital y salida digital sin cambiar la configuración del modo serie o I2C. Sólo necesita utilizarse cuando está utilizando los modos serie o I2C y desea cambiar los pines de E/S. El formato es

ISS_CMD ISS_MODE IO_MODE IO_TYPE (ver el ejemplo anterior)
0x5A 0x02 0x10 0xB4

En todos los comandos de configuración, se devuelven dos bytes. Consulte Bytes de respuesta mas adelante.

Modos I2C

Hay 7 comandos I2C, como se detalla a continuación. Difieren sólo en la frecuencia SCL y en que utilizan un controlador de software bit bashed o el hardware I2C en el chip del PIC.
El comando I2C por si mismo tendrá E/S en los pines I/O1 y I/O2. Este es un comando de configuración de 4 bytes.

ISS_CMD ISS_MODE I2C_MODE IO_TYPE (ver el modo de E/S anterior)
0x5A 0x02 0x60 0x04

Este ejemplo inicializará el I2C a 100 khz a través de los periféricos de hardware I2C en el chip del PIC.

Los comandos I2C pueden combinarse con el modo SERIE.
Cuando se combina con el modo SERIE, I/O1 es el pin de recepción (Rx) y I/O2 es el pin de transmisión (Tx). Este es un comando de configuración de 5 bytes.

ISS_CMD ISS_MODE I2C_MODE+SERIAL Divisor de la tasa de baudios (byte alto) Divisor de la tasa de baudios (byte bajo)
0x5A 0x02 0x71 0x00 0x9B

La fórmula para calcular la tasa de baudios es la misma que para I/O+Serial anterior.

En todos los comandos de configuración, se devuelven dos bytes. Consulte Bytes de respuesta mas adelante.

Modo SPI

Este modo necesita los cuatro pines de E/S, por lo que no se puede combinar con el modo serie, I2C o E/S. Consulte el diagrama de conexión anterior para ver la asignación de los pines. El modo SPI puede funcionar en todas las cuatro fases de reloj. El comando SPI_MODE (0x90) puede combinarse con los bits de selección de fase.

SPI_MODE  Fase
0x90 Transmisión en la transición desde un reloj activo a reposo; el estado en reposo para el reloj es un nivel bajo
0x91 Transmisión en la transición desde un reloj activo a reposo; el estado en reposo para el reloj es un nivel alto
0x92 Transmisión en la transición desde un reloj en reposo a activo; el estado en reposo para el reloj es un nivel bajo
0x93 Transmisión en la transición desde un reloj en reposo a activo; el estado en reposo para el reloj es un nivel alto

0x90 es el modo estándar; utilícelo con SPI SRAM, EEPROM, etc.
La configuración del modo SPI es un comando de 4 bytes:

ISS_CMD ISS_MODE SPI_MODE  Divisor SCK
0x5A 0x02 0x90 0x01

El divisor SCK establece la velocidad del reloj SPI. La fórmula es:
Divisor = (6000000/SCK)-1
Para un SCK de 3 Mhz, el divisor  =  (6000000/3000000)-1 = 1
Para un SCK de 500 khz, el divisor = (6000000/500000)-1 = 11
El divisor máximo de 255 proporciona el SCK más lento de sólo 23,44 khz. 
Debería establecerse un mínimo de 0x01 para el divisor, ya que si establece 0x00, este será igual que 0x01.

En todos los comandos de configuración, se devuelven dos bytes. Consulte Bytes de respuesta a continuación

Bytes de respuesta

La respuesta a los frames de ajuste de modo son siempre dos bytes.
El primer byte es ACKnowledge (acuse de recibo) (0xFF) o NotACKnowledge (sin acuse de recibo) (0x00).
Si recibe un ACK (acuse de recibo) entonces el segundo byte será sólo 0x00.
Si recibe un NACK (sin acuse de recibo), entonces el segundo byte será el motivo, de la siguiente manera:
0x05 Unknown Command (Comando desconocido)
0x06 Internal Error 1   (Error interno 1) }
0x07 Internal Error 2   (Error interno 2) }; nunca debería ver estos

En circunstancias normales, la respuesta será 0xFF, 0x00

PUEDE ENCONTRAR LAS ESPECIFICACIONES TECNICAS DE CADA MODO EN ESTA PAGINA

 

Haga clic en el botón COMPRAR para añadir este producto a su carrito de la compra.

27,45-Euros.
IVA incluido
AÑADIR AL CARRITO DE LA COMPRA

CIRCUITO INTERFACE USB A I2C MEJORADO USB-ISS

Vea mas productos de esta categoría en:

Circuitos de Interface de entradas y salidas

Ir a la Página Principal de www.SuperRobotica.com

Actualizada el 29/12/2023 © 2002 -2023 INTPLUS ®. Todos los derechos reservados