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
|
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 18/10/2024 © 2002 -2024 INTPLUS ®. Todos los derechos reservados
|