E Book Los Principales de Elektor Es 1

82
Los principales de Elektor Artikeltitel • 1 Los principales de Elektor Los 15 mejores artículos de Elektor

Transcript of E Book Los Principales de Elektor Es 1

Page 1: E Book Los Principales de Elektor Es 1

Los principales de Elektor Artikeltitel • 1

5Los principales de Elektor

Los 15 mejores artículos de Elektor

Page 2: E Book Los Principales de Elektor Es 1

Los principales de Elektor Índice de contenidos • 2

Índice de contenidosElekTrack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

PLC ECIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Adaptador JTAG Universal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Reflow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Tilt-Gamepad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

USBprog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Analizador ODB-2 autónomo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Inspector Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Servidor web AVR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Interfaces USB-UART. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49

Explodor CAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54

Radio definida por programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Placa Flash USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Los secretos de l2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Page 3: E Book Los Principales de Elektor Es 1

36

SOBRE EL TERRENO GPS

elektor, la electrónica que sorprende - 10/2007

ElekTrackLocalizacióncon GPSChris Vossen

Localizar está de moda. El archiconocido sistema de navegación TomTom incluso cotiza en bolsa. Asimismo, los sistemas de alarma de los coches más caros y otros vehículos incorporan a menudo de un sistema de este tipo, para así poder saber donde se encuentra el vehículo. Por desgracia, esto último es bastante caro. Así que nos pusimos manos a la obra y hemos desarrollado nuestro propio sistema, el ElekTrack.

Hoy en día queremos saber la ubica-ción exacta de cualquier cosa. ¿Dónde está el paquete que encargué? ¿Este libro ha vuelto ya a la biblioteca? ¿Ha-brá llegado ya el tren de mi sobrino? La técnica ha avanzado tanto en los últi-mos años, que hay realmente una so-lución para todo, por raro que sea. ¡Y si no, nos encargamos de encontrarla!

Gran HermanoLa gente suele ser un poco reacia ante los organismos que lo tienen todo bajo control. Pero en algunos casos esto es precisamente lo que desean. Nos refe-rimos a la seguridad o a los sistemas de alarma. Los pocos de entre nosotros que podemos permitirnos el nuevo Ma-ybach o un Mercedes SLR, seguro que en el momento de asegurar estos bó-lidos, lo haremos con estrictas condi-ciones de seguridad. Por regla general, estos vehículos deben ir equipados con un sistema de alarma de cómo míni-mo clase 4 (para una breve explicación, véase [1]). Esto significa que lleva in-corporado un sistema de localización basado en GPS, que transmite a una

central de avisos el lugar donde se en-cuentra el vehículo. Los vehículos roba-dos aparecen en el mapa de la sala de control con una lucecita roja.

No sólo los turismos están provistos de un sistema de rastreo. También los ca-miones y los barcos pueden sacar pro-vecho de estos sistemas. Pero incluso las excavadoras disponen cada vez más de este sistema esta seguridad. Las roban sobre todo en los bosques. Y con un módulo de localización y se-guimiento, se pueden localizar estas costosas máquinas.

En fin, no todo el mundo tiene una ex-cavadora o un Bentley en el garaje. Pero esto no significa que un localiza-dor GPS no pueda tener otras aplica-ciones. Por ejemplo, en un scooter o una motocicleta. Y si usted es detec-tive privado, seguro que se le hace la boca agua ante un sistema de estos.Para ofrecerle la posibilidad de poder también disfrutar en persona de un lo-calizador GPS, hemos desarrollado el ElekTrack. Debido al gran número de componentes SMD y las dificultades

que suelen aparecer al soldarlos, he-mos decidido entregar este módulo to-talmente montado.

Propósito del proyecto¿Qué debe poder hacer un soporte de localización en su forma más simple? Está claro que querremos saber donde se encuentra el módulo. Para la parte de localización hemos elegido la solu-ción más a mano: GPS. Así el sistema sabrá en casi todo el mundo donde se encuentra. Además, actualmente el GPS es muy preciso. Y mientras no esté operativo el Galileo europeo [2], es la mejor “alternativa”.

Para la transmisión de datos hemos elegido el sistema de SMS. Si bien es cierto que la transmisión de da-tos no es realmente en directo, es posible casi siempre y en todas par-tes. Otra buena opción para la trans-misión de datos, habría sido la red

Figura 1. En el esquema se puede ver fácilmente que todo está montado alrededor del módem GSM.

ElekTrack• 3 Los principales de Elektor

Page 4: E Book Los Principales de Elektor Es 1

3710/2007 - elektor, la electrónica que sorprende

GPRS. GPRS funciona con una conexión directa a través de

Internet, con lo cual se pue-den mostrar los datos en

directo a través de un ordenador con acceso

a Internet. De este modo, es posible

pedir la loca-lización sin

retrasos.

Con esto, los datos también se pueden guardar “en directo” en una base de datos. Sin embargo, dimos preferen-cia al sistema SMS, que es más sim-ple. Por tanto, usaremos dos módulos importantes: un módulo GPS y un mó-dulo GSM.El módulo GSM es de Wavecom, el Q2686. Este módulo se puede contro-lar con el código OpenAT de Wavecom y viene equipado con un microprocesa-dor. Esto nos ofrece la gran ventaja de que el proceso de diseño es más corto en comparación con un módem suelto. Pues así no hace falta instalar ningún microcontrolador con eventual perife-ria externa. Todo se encuentra en un mismo módulo. Y el diseño completo es mucho más compacto.

Para el módulo GPS hemos elegido el Copernicus de Trimble. Es un suce-sor del Lassen iQ, el módulo que ya ha demostrado sus cualidades en el receptor GPS para USB (Elektor de ju-lio de 2005).

EsquemaUn vistazo al esquema (figura 1) per-mite ver rápidamente que todo está montado alrededor del módem GSM. El módulo GPS se conecta a través de un convertidor de nivel lógico (IC3) en UART2 del módem. Alrededor de T3, T4 y T5 se ha montado un circuito que detecta si el circuito de antena está puesto en cortocircuito, abierto o co-nectado normalmente. El módulo GPS

VBAT

T1

VBAT

T2

VBAT

T3

VBAT

T4

VCC_

1V8

5

CHG_

IN6

BAT_

RTC

7

CHG_

IN8

SIM_VCC9

VCC_

2V8

10

SIM_IO11

SIMPRES12

SIM_RST13

SIM_CLK14

BUZZ_OUT15

BOOT16

FLASH LED17

/RESET18

ON_OFF19

BAT_TEMP20

AUX_ADC21

SPI1-CS22

SPI1-CLK23

SPI1-I24

SPI1-IO25

SPI2-CS28

SPI2-IO27

SPI2-I29

SPI2-CLK26

RXD230

TXD231

CTS232

RTS233

MIC2N34

SPK1P35

MIC2P36

SPK1N37

MIC1N38

SPK2P39

MIC1P40

SPK2N41

GPIO042

GPIO4443

SCL44

GPIO1945

SDA46

GPIO2147

GPIO2048

INT149

INT050

GPIO151

VPAD-USB52

GPIO253

USB-DP54

GPIO2355

USB-DM56

GPIO2257

GPIO2458

COL0/GPIO459

COL1/GPIO560

COL2/GPIO661

COL3/GPIO762

COL4/GPIO863

ROW4/GPIO1364

ROW3/GPIO1265

ROW2/GPIO1166

ROW1/GPIO1067

ROW0/GPIO968

RI1/GPIO4269

DCD1/GPIO4370

TXD1/GPIO3671

RTS1/GPIO3872

RXD1/GPIO3773

DSR1/GPIO4074

CTS1/GPIO3975

DTR1/GPIO4176

PCM_SYNC77

PCM_IN78

PCM_CLK79

PCM_OUT80

GND

101

GND

102

GND

103

GND

104

IC2

Wavecom Q2686

C1

100n

R1

100k

GND

1

SW2

VIN3

VIN4

SW5BO

OST

6

GND

8

GND

9

BIAS10

VC11

FB12

SYNC

14

SHDN15

GND

16

GND

17

IC5

LT3430

C17

22n

C18

220p

R13

3k3

R12

12k7

R14

4k99

D8

30BQ060

D5

1N4148C11

680n L547uH

10V

C12

100u

GND

50V

C16

4u7

D6

RS3K

L4

BLM21P300S

D7

SM8S33A250V

C15

100n

GND

1

GND

2

GND

4

GND

13

GND

14

GND

15

GND

27

GND

28

RF-IN3

LNA5

OPEN7

SHORT8

BOOT10

XRESET11

VCC

12

TXD-B24

TXD-A23

RXD-A21

RXD-B20

PPS19

XSTANDBY16

RESERVED9

IC4

Copernicus GPS Receiver

4V3

4V3 1V8 2V8

GND

VIN1

GND

2

ON/OFF3

NC4

VOUT5

IC6

LP2985

GND

4V3 3V3

10V

C14

10u16V

C13

1u

C19

100n

3V3L3100nH

C7

100n

C8

18p

T3 MMBT3906 T4

R10

4k7

R11

4k7

R7

56R2

R8

10k

R61k

T5

MMBT3904

R4

1k

R510R

R910k

T2BC848

T1

IRLML6402

R3

100k

3V3

D41N4148

GND

GND

OVCC21

GND

2VL

3

IVL24

OVL15

IVCC18

THREE-STATE6 VC

C7 IC3

MAX3375E

1V8

C9

100n

C10

100n

GND

GND

EN1

C1+2

C1-4

C2+5

C2-6

T1IN11

R1OUT9

FORCEON12

FORCEOFF16

INVALID10

R1IN8

T1OUT13

V-7

V+3

VCC

15GN

D14

IC1

MAX3221E

C4

100nC5

100n

GND

3V3

C3

100n

C6

100n

C2

470p

1

2

34

5

6

D2

DALC208

VCC1

GND2

RST3

VPP4

CLK5

IO69

10K1

Simcard Holder

1V8

1 63 42 5

D1

ESDA6V1SC6

GND

D3

R2

470R

L1BLM21B102

L2BLM21B102

R1510

k

K3

2V8GND

K2

Vbat

Vbat

GND

RXD_INTXD_OUTEXT_INPUT3EXT_INPUT2EXT_INPUT1

TXD_

OUT

RXD_

IN

2345

1

K4

T6MMBT3904

T7MMBT3904

T8MMBT3904

R17

4k7

R18

4k7

R19

4k7

C20

10n

C21

10n

C22

10n

R22

10k

R23

10k

R24

10k

R1682k

R2082k

R2182k

GND

D11

1N4148

D10

1N4148

D9

1N4148

2V8

DI0DI1DI2

040161 - 11

D12R25470R4V3

K5

1V8

2x

ElekTrack• 4 Los principales de Elektor

Page 5: E Book Los Principales de Elektor Es 1

38

SOBRE EL TERRENO GPS

elektor, la electrónica que sorprende - 10/2007

proporciona tensión de suministro a la antena activa a través de T1 y T2.

Para que este circuito funcione bien se necesitan dos tensiones de alimenta-ción, 4,3 y 3,3 voltios. Para ello utiliza-mos IC5 e IC6. El IC5 (un LT3430) es un convertidor buck que funciona a una frecuencia de 200 kHz. Las resistencias R12 y R14 determinan el ajuste de la tensión de salida. Se ha ajusta aproxi-madamente a 4,5 voltios.IC6 se encarga de la tensión de sumi-nistro del módulo GPS. Con una ten-sión de entrada de 4,3 voltios, ofrece una tensión de salida fija de 3,3 voltios. Alrededor de T6, T7 y T8 se han mon-tado tres convertidores de nivel idénti-cos que transforman las elevadas ten-siones de entrada en valores lógicos comprendidos en la especificación del módem GSM.

IC1 es un convertidor RS232 clásico, con el cual se puede hacer, entre otras cosas, una conexión con el PC para po-der programar el módem. También es posible hacer una conexión a través de IC1 para aplicaciones propias.D1 y D2 protegen la entrada del módu-lo GSM de cargas estáticas que pue-den producirse cuando se inserta la tarjeta SIM en la ranura.El Led D3 muestra el estado de la co-nexión GSM. Si está continuamente ilu-minado, entonces el módem no está re-gistrado en la red. En cuanto empieza a parpadear, el módem se ha podido registrar con éxito. El led D12 muestra el estado del módulo GSM.

ConexionesLa conexión de alimentación puede ser a 12 voltios o a 24 voltios. Tras las prue-bas, se concluyó que el ElekTrack ne-cesita una tensión mínima de 8 voltios

un programa como Hyperterminal para Windows para configurar el ElekTrack. El puerto de serie del PC debe configu-rarse como en la figura 2.

InicioEn primer lugar, debe comprobarse si la tarjeta SIM está protegida con un códi-go pin. Se puede hacer con el comandoat+cpin?Si el módem responde con ‘+CPIN: READY’, , significa que la tarjeta sim no necesita ningún código pin. Pero si la respuesta es ‘+CPIN:SIM PIN’, en-tonces la tarjeta sim tiene un código pin y deberá eliminarse.Por el momento, el firmware todavía no soporta el uso automático del código pin. Probablemente lo haga un futuro firmware. Compruebe si hay nuevas versiones en nuestro sitio web.

Cuando introducimos el comando at+cpin=0000 0000 (siendo 0000 el código pin de la tarjeta SIM), nos contesta ‘OK’. Seguidamente, debe eli-minarse la pregunta del código pin.

Esto se hace de la siguiente manera:at+clck=”SC”,0,0000

para poder funcionar bien. Asimismo, la alimentación debe poder suministrar suficiente corriente. Cuando el módem GSM está en proceso de transmisión de datos, pueden intervenir picos de corriente relativamente altos. El mó-dulo consume de media unos 500 mW. Por tanto, una batería de 9V sólo dura-rá unas dos horas. Una batería de ci-clomotor o coche aguantará más tiem-po. Naturalmente, también se pueden incorporar adaptaciones al software para reducir el consumo de energía. Por ejemplo, se puede configurar para que el módulo GPS se coloque en modo “ahorro de energía” con un determina-do mensaje SMS y que se reactive con otra orden.

Por supuesto, el módulo también tie-ne conexiones para antenas. Una para el módulo GPS y una para el módulo GSM. El módem también dispone de varias entradas lógicas, que se pueden utilizar, por ejemplo, para conectar una alarma al ElekTrack. Una tensión su-perior a unos 8 voltios provocará la ac-tivación de la entrada digital del mó-dem GSM. También en ese momento se puede enviar un SMS a un número de teléfono previamente programado. Esto debe instalarlo usted mismo en el software, (todavía) no viene instalado de serie. Es probable que se incluya en una actualización de firmware.El módulo GPS se puede configurar con la ayuda de varios comandos. Para ello, debe conectarse el módulo al PC con el cable de serie. Entonces será necesario

ElekTrack • 5 Los principales de Elektor

Page 6: E Book Los Principales de Elektor Es 1

3910/2007 - elektor, la electrónica que sorprende

(0000 vuelve a ser el código pin de la tarjeta SIM). El módem vuelve indicar de nuevo ‘OK’.

Para comprobar que el módem se regis-

tra automáticamente en la red, debe reiniciarse con:at+cfun=1Al cabo de un momentito, si todo ha ido bien, parpadeará el LED superior

(D12). Esto significa que el módem in-terno ha conseguido registrarse en la red. Eventualmente, también puede comprobarse con el comandoat+cops?

Mejor que GPSEl Global Positioning System, o GPS, estaba destinado al principio a aplicaciones militares. Pero cada vez más se exigía una localización más precisa y poco a poco el sistema GPS se fue abriendo al consumidor. Primero, los ame-ricanos, los que diseñaron el sistema, hicieron deliberadamente la señal de satélite más impre-cisa. Hace unos años se eliminó esta limitación y ahora el consumidor puede hacer uso de la resolución completa del sistema. Con ello, se puede determinar una posición con el GPS a tres metros de precisión. El nivel de resolución depende del número de satélites “visibles” y si se recibe una señal WAAS o EGNOS.

Los términos WAAS y EGNOS se refieren a sis-temas que hacen posible una localización más precisa junto con el GPS. WAAS significa Wide Area Augmentation Sistema y EGNOS European Geostationary Navigation Overlay Service. Lo que el sistema EGNOS hace en Europa, lo hace el sistema WAAS en Norteamérica. Se trata de una red de satélites y estaciones terrestres que genera una señal de corrección de GPS, que da una localización más precisa; de media unas cinco veces mejor. Un receptor que soporta WAAS/EGNOS da en más del 95% de los casos una posición que difiere menos de 3 metros.

EGNOS consta por el momento de tres satélites geoestacionarios y una serie de estaciones te-rrestres, distribuidas por Europa. Estas estacio-nes recaban la información de todas las demás estaciones terrestres y generan una señal de corrección. Las estaciones terrestres saben su propia localización a la perfección y la calculan con la señal que reciben de los satélites. Ade-más, esta señal de satélite incluso puede pasar, por ejemplo, a través de condiciones atmosfé-ricas. Entonces, la señal de corrección se trans-mite a los satélites geoestacionarios. La infor-mación coincide con la señal de GPS estándar, lo que significa que cualquier receptor GPS que soporte WAAS puede leer esta señal.

EGNOS es un proyecto conjunto de la AEE, Eurocontrol y la Comisión Europea, y funciona tanto para el sistema de navegación americano GPS como para el Glonass ruso. El número de satélite EGNOS para Europa es el 33. General-mente, los sistemas GPS indican cuando reci-ben una señal de corrección. Para ello también se usa el término “differential”.

Por otra parte, en Asia se hace uso del sistema MSAS, que funciona del mismo modo.

ElekTrack • 6 Los principales de Elektor

Page 7: E Book Los Principales de Elektor Es 1

40

SOBRE EL TERRENO GPS

elektor, la electrónica que sorprende - 10/2007

Entonces, el módem responde con ’+COPS: 0,2,20408OK’(20408 es el número de operador y es distinto en cada proveedor).Ahora el módem se registrará automá-

sión de firmware, se han introducido dos comandos con los que se pueden sacar datos del módulo GPS. El primer comando es:at+gpshealth?

Una respuesta del módem será, por ejemplo:

‘Rcvr status code = 0x01 (Don’t have GPS time yet)Receiver health byte = 0x11Battery backup: BBRAM not available at start-upAntenne feedline fault: An-tenna line open/shortType of fault: Open detectedOK’

De ahí se puede concluir que el módulo GPS todavía no tiene coordenadas vá-lidas. El estado de la antena muestra que se encuentra en una situación de error. El tipo de error indica que el cir-cuito de la antena tiene una conexión abierta. Probablemente la antena no esté conectada.Si la antena está conectada y se sigue pidiendo el comando, entonces se reci-be la siguiente respuesta:

‘Rcvr status code = 0x00 (Do-ing position fixes)Receiver health byte = 0x01Battery backup: BBRAM not available at start-upAntenne feedline fault: OKOK’

Ahora vemos que el estado de la an-tena es “OK”. Cuando la entrada de la antena se pone en cortocircuito, enton-ces aparecerá el mensaje ‘Short Cir-cuit’. El código de estado del receptor da el mensaje de que ha podido deter-minar una posición válida. Cuando el módulo ya está activado, el código de estado del receptor indica el número de satélites recibidos. En cuanto el mó-dulo haya podido determinar una posi-ción válida, el LED inferior (D3) parpa-deará. Si el LED es continuo, entonces significa que algo no va bien. Puede ser que el módulo reciba demasiado pocos satélites, pero también puede ser que la antena esté mal conectada.

En usoHemos constatado que hay una co-nexión y que queremos saber las co-ordenadas de longitud y latitud. Para ello, damos el comando at+gpsposition?

ticamente en la red en cuanto el módu-lo tenga tensión.

SeguridadEn primer lugar debe ajustarse la con-traseña. Por defecto es “elektor”. El ajuste tiene que hacerse de la siguien-te manera. Debe preguntarse la con-traseña con:at+password?

El módem responde con ‘+PASSWORD: elektor’. Para cambiarla, se usa el comandoat+password=”gpsmodule”

Atención: las comillas también deben introducirse, de lo contrario se obten-drá un mensaje de ERROR. La contra-seña puede tener como máximo 20 caracteres.

Estado del GPSEl módulo GPS se conecta al puerto de serie del módem. En la primera ver-

Figura 2. Estos son los parametros adecuados para poder establecer la comunicación serie.

Figura 3. La nueva localización de nuestra oficina no supone ningún problema para el ElekTrack

ElekTrack • 7 Los principales de Elektor

Page 8: E Book Los Principales de Elektor Es 1

4110/2007 - elektor, la electrónica que sorprende

Seguidamente, el módem nos devuelve sus coordenadas, por ejemploLong: 5.803043 E; Lat: 50.941492 N;OK

Ahora, naturalmente, también queremos poder pedirlo por SMS, de modo que po-damos pedir la localización del módulo a distancia. Para evitar que todos reciban sin más una respuesta del módulo cuan-do se le envía un SMS éste debe estar provisto de una contraseña. Para ello en-viamos el siguiente SMS al módulo:

info:<password>:<phonenum>

O bienINFO:<password>:<phonenum>Atención: “info” debe escribirse todo en mayúscula o todo en minúscula. En el lugar de <password> debe inser-tarse la contraseña configurada con el comando at+password.

El término <phoneum> es opcional. Por defecto la respuesta se envía al re-mitente. Si se desea enviar la respues-ta a otro número, entonces se puede hacer con la ayuda de este parámetro.

Tras unos segundos, el ElekTrack en-viará un SMS con los datos de longitud, latitud y altitud, con lo cual podemos determinar la ubicación del ElekTrack. Esto se puede hacer por ejemplo en lí-nea en [3] (figura 3) y [4].

El ElekTrack está disponible y se pue-de encargar como módulo totalmen-te montado en nuestra webshop en www.elektor.es. La última versión de firmware también se encuentra en nuestro sitio. Y, por supuesto, siempre estamos encantados de conocer las ideas y aplicaciones que se inventan nuestros lectores.

(040161)

Vínculos:[1] http://www.carmobile.nl/autoalarm.htm

[2] http://nl.wikipedia.org/wiki/ Galileo_(navigatie)

[3] www.gpscoordinates.eu

[4] http://boulter.com/gps

Problemas prácticosTodo aquél que alguna vez haya escrito software, puede hablar de los pequeños gusanos que siempre se cuelan en el código. En la fase inicial de la escritura del soft-ware tuvimos problemas con el envío de SMS. Parecía que el servicio de SMS del módem no quería funcionar. Tras horas de búsqueda y lectura de documentación, se nos ocurrió la simple y brillante idea de probar con otra tarjeta SIM. Así que nos fuimos inmediatamente a la tienda a buscar una nueva tarjeta SIM. ¿Y cuál fue nuestra sorpresa?: con una nueva tarjeta ya no tuvimos más problemas.

Sin embargo, nos sorprendió mucho que sí que funcio-nara con una nueva tarjeta SIM. Así que nos pusimos en contacto con el proveedor. Efectivamente, resultó que había un gusano en el firmware del módem. Por lo visto, en algunas tarjetas SIM el registro del servicio SMS no funcionaba bien. En la nueva versión de firmware, este problema ya se ha solucionado.

Otro problema que seguro que conocen los diseñadores de software es la diferencia little-endian y big-endian en la configuración de memoria. Las coordenadas de lon-gitud y latitud se muestran como radianes en forma de dobles del módulo GPS. El módulo funciona en el modo de byte little-endian, mientras que el módulo GSM en el modo byte big-endian. En la introducción de los datos (como valores ASCII) el orden de los bytes debe inver-tirse. Y es que cuando se convierten datos little-endian en un procesador big-endian en forma de radianes, el resultado no cuadra con ninguna medición. Al principio no nos dimos cuenta. Pues lo primero que piensas es que has cometido un error en el código que debe hacer la conversión.

Más tarde parece una tontería, pero en ese momento te tiras de los pelos.

ElekTrack• 8 Los principales de Elektor

Page 9: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO CONTROL LÓGICO PROGRAMABLE

50 elektor, electronics worldwide - 03/2008

Una placa de aplicación PLC completa, que incluya sali-das aisladas, entradas, pantalla LCD y conexión con el bus CAN… suena muy bien! Pero también nos gustaría oír que se trata de una placa de bajo coste, basada en un módulo ECIO y fácil de programar utilizando la aplicación Flowco-de, un método totalmente gráfico para programar PICs (y también otros microcontroladores).

PLCUn PLC (Programmable Logic Control, es decir, “Control Lógico Programable”) es un dispositivo utilizado normal-mente como elemento de control central inteligente, en un proceso industrial diseñado con diagramas de flujo, ha-bitualmente para fabricación en masa o verificación de calidad. Los controles de cintas transportadoras se hacen tradicionalmente por medio de PLCs.El PLC y sus lenguajes de programación (de alto nivel) se han estandarizado y se han extendido ampliamente. Por desgracia, la factura de casi cualquier PLC comercial lo aleja rápidamente del alcance de cualquier aficiona-

do a la electrónica. Una pena, ya que muchos lectores de Elektor tienen bastante relación con los sistemas de control industriales.Una secuencia de comandos PLC es similar a los progra-mas de un ordenador: siguen una secuencia predefinida de eventos con todas las opciones para bucles condicio-nales, temporizadores de eventos, valores analógicos (tem-peratura, nivel de líquidos, presión) y un sencillo registro de resultados.Si tenemos un proceso relativamente más complejo es po-sible que queramos realizar ese control utilizando electró-nica sobre la máquina. En ese caso, una placa PLC es una buena opción debido a su gran robustez eléctrica y a su flexibilidad, cuando se trata de conectar el mundo real a través de relés y opto-acopladores.Para ser capaces de programar un PLC (por ejemplo, de-finir la secuencia de eventos que suceden en un proceso) necesitamos escribir un programa. Una vez depurado y si-mulado sobre un ordenador, podemos volcar el programa sobre el PLC y, a partir de aquí, “cruzaremos los dedos”.

Los programas de un PLC pueden ser editados, depurados, ampliados, optimizados y, por supuesto, almacenados y recuperados. Justo igual que sucede con un programa de un microcontrolador o de un ordenador!

Descripción del circuitoEn la Figura 1 se muestra el esquema eléctrico de la placa PLC ECIO. El circuito comprende un cierto número de com-ponentes variados que vamos a tratar a continuación.

ECIOEl módulo ECIO es el cerebro de la placa. Es utilizado para controlar todos los dispositivos periféricos que hay sobre la placa. Los módulos ECIO, introducidos en el número de

PLC ECIOBarato, casero y con CAN!

Por Ben Rowland (Matrix Multimedia) & Luc Lemmens (Elektor Labs)

Aquí tenemos la primera aplicación real del los módulos ECIO introducidos en el número de Octubre de 2007 en Elektor. Un ECIO actúa como el cerebro de una placa PLC que dispone de relés, opto-acopladores, conexión CAN (!) y una pantalla LCD. Toda esta capacidad de E/S, junto con la aplicación Flowcode, pueda funcionar como una PLC versátil y potente para proyectos de automatización y control bastante complejos. El modulo LCD se utiliza para mostrar los caracteres ASCII al usuario, como medio de reparación durante la fase de desarrollo de los programas o para monitorizar el sistema.

Prestaciones de la PLC ECIO• Conexión a bus CAN

• 4 entradas aisladas ópticamente

• 4 salidas controladas por relé

• Pantalla LCD alfanumérica de 2x16 caracteres

• Programada con Flowcode, pero acepta ficheros hex para PIC18

• Flowcode gratuito para ECIO

• Conexión USB para programación

PLC ECIO • 9 Los principales de Elektor

Page 10: E Book Los Principales de Elektor Es 1

5103/2008 - elektor, electronics worldwide

octubre de 2007 de Elektor [1], representan un método de muy bajo coste de entrar en el mundo de la programación de microcontroladores PIC. Los módulos ECIO están dispo-nibles en la tienda de Elektor, con muy buenos descuentos para pedidos elevados. En este caso hemos utilizado la versión de 40 terminales denominada ECIO-40P.

RelésLos relés de la PLC se utilizan para conmutar dispositivos electrónicos (activar/desactivar) y son controlados a través de los terminales RB4–RB7 de la ECIO. La programación de un nivel lógico bajo en estos terminales desconecta el relé correspondiente, mientras que su puesta a nivel lógico alto

TXCAN1

RXCAN2

CLKOUT/SOF3

TX0RTS4

TX1RTS5

TX2RTS6

OSC2

7

OSC1

8

VSS

9

RX0BF10

RX1BF11

INT12

SCK13

SI14

SO15

CS16

RESET17 VD

D18

IC3

MCP2515

TXD1

VSS

2VD

D3

RXD4

RS8

CANH7

CANL6

VREF

5

IC4

MCP2551

X1

20MHz

C4

22p

C2

22p

RESET

25V

C7

10u

VDD USB

VDD USB

JP1

2

31

K6

1

23

45

67

8 9

1011

1213

1415

16IC1

TLP620-4

K1

K2

K3

K4

VDD USB

RA0

RA1

RA2

RA3

K9

D1

T1

BC547

VDD USB

D2

T2

BC547

VDD USB

D3

T3

BC547

VDD USB

D4

T4

BC547

VDD USBOI0

OI1

OI2

OI3

123456789

1011121314151617181920

4039383736353433323130292827262524232221

VDD USB

RESETRA0

GND

RA1RA2RA3RA4RA5

RD0RD1RD2RD3RD4RD5RD6RD7

VDD_EXT

RE0RE1RE2

GNDRC0RC1RC2RC6RC7RB0RB1RB2RB3RB4RB5RB6RB7

1234567891011121314

K5

VDD USB

RC6

RC0RC1RC2

RD6RD7

RE0RE1RE2

RA4RA5

RESETB40C1500

2

1

4

3 B1

25V

C1

10u

C3

100n

C5

100n

1 3

2

IC2μA78M05CKC

+12V

VDD_EXT

D5

VDD USB

25V

C6

10u

RB1

RB2

RB3

RC7

RB0

VDD USB P1

10k

RD4

RD5

RD0RD1RD2RD3

T5

BC547

D8D6

1N4001Re1

+12VK14

T7

BC547

D12D10

1N4001Re3

+12VK18

T6

BC547

D9D7

1N4001Re2

+12VK15

T8

BC547

D13D11

1N4001Re4

+12VK19

RB5RB4

RB7RB6

R7

390R

R8120R

R6220R

R1A

R1B

R1C

R1D

R4A

R4B

R4C

R4D

R5A

R5B

R5C

R5D

R2A R2B R2C R2DR3A R3B R3C R3D

R9A

R9B

R9C

R9D

R10A

R10B

R10C

R10D

OI0

OI1

OI2

OI3

123456789

10111213141516

LCD1

VDD USBR11

33R

CAN

HCA

N L

CONTRAST

NOC

END

NOCNC

NOCNC

NOCNC

ECIO

+9V - +20V

R1 = 4x 4k7R4 = 4x 220R R5 = 4x 220R

R2 = 4x 10kR3 = 4x 330R

R10 = 4x 1k

NC

LC D

isplay

2 x 1

6

NODE

R9 = 4x 2k2

070786 - 11

Figura 1.Esquema eléctrico del circuito de la placa PLC ECIO. Componentes mínimos – gran potencial en términos de E/S.

PLC ECIO • 10 Los principales de Elektor

Page 11: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO CONTROL LÓGICO PROGRAMABLE

52 elektor, electronics worldwide - 03/2008

implica la activación de la bobina del relé asociado. Si un relé está activado, el diodo LED situado al lado de ese relé concreto se encenderá para dar una representación visual de encendido/apagado. Los relés son utilizados para pro-porcionar un aislamiento eléctrico entre el modulo ECIO y las tensiones de conmutación externas (las cuales pueden llegar a ser de 230 V de tensión de red). Esto significa que los dispositivos de potencia que trabajan con tensiones ele-vadas como 48 VDC o 230VAC, pueden ser controlados de manera segura a través del módulo ECIO.Cada conjunto de contactos de relé (NO y NC) sale de

la placa a través de un bloque de terminales atornillados para montaje en circuito impreso, de tres salidas (el termi-nal central (C) es el que hace la conmutación).

Opto-aisladoresLas entradas opto-aisladas son especiales en el sentido de que no disponen de terminales más (+) y menos (–). Dentro de IC1, los dos diodos de cada entrada son, de hecho, diodos LED, de manera que la polaridad de la tensión de control que deseamos aplicar a la placa PLC ECIO no nos afecta. Las salidas de los opto-aisladores es-

T5R9

C7

R10 D8

K2

K4

K3

K1

R11

D13

R5

Re4

P1

T8

D9

T6

T7

D12

Re2

Re3

D4

D3IC1

R1 R3

D1

D5

T4

T3

T2

R2

D2

T1

R4R7

R8

IC3

X1

IC4

C4

C2

R6

D11

JP1

K9

K7

D7

K10

K8

D10

D6K11K6

C1

B1IC2

C3 C5C6

14

Re1

213

K5

1

Figura 2.La placa PLC ECIO sin

componentes está disponible en Elektor.

Lista de materialesResistenciasR1 = 8-pin SIL array 4 x 4k 7*R2 = 8-pin SIL array 4 x 10k *R3 = 8-pin SIL array 4 x 330 *R4,R5 = 8-pin SIL array 4 x 220 *R6 = 220R7 = 390R8 = 120R9 = 8-pin SIL array 4 x 2k 2*R10 = 8-pin SIL array 4 x 1k *R11 = 33P1 = 10k preset* ver texto

CondensadoresC1,C6,C7 = 10μF 25V radialC2,C4 = 22pFC3,C5 = 100nF

SemiconductoresD1-D5,D8,D9,D12,D13 = 3mm LEDD6,D7,D10,D11 = 1N4001B1 = B80C1500 (encapsulado redon-

do; 80Vpiv @ 1.5Ap)T1-T8 = BC547IC1 = TLP620-4IC2 = 7805IC3 = MCP2515-I/PIC4 = MCP2551-I/P

VariosRe1-Re4 = 12V relé, SPDT, ejemplo,

Omron G5LE-1.X1 = cristal de cuarzo de 20 MHz.K1,K4,K9 = Bloque terminal de 2 con-

tactos con tornillos, separación entre terminales de 5mm.

K5 = Conector “boxheader” de 14 terminales.

K6 = Conector de tensión de red AC/

DC de baja tensión, para montaje en circuito impreso, ejemplo, CUI Inc. # PJ-002B (Digikey # CP-002B-ND) o Cliff Electronic Components # DC10B (Farnell # 224960).

K7,K8,K10,K11 = Bloque terminal de 3 contactos con tornillos, separación en-tre terminales de 5mm.

ECIO = ECIO-40P módulo procesador (Elektor Shop).

LCD1 = pantalla LCD, alfanumérica, 2x16 caracteres, ejemplo, Displaytech 162.

JP1 = Conector “pinheader” de 3 ter-minales SIL con Puente.

Placa de circuito impreso, código de pedido 070786-1 en la tienda de Elektor.

PLC ECIO • 11 Los principales de Elektor

Page 12: E Book Los Principales de Elektor Es 1

5303/2008 - elektor, electronics worldwide

tán conectadas a los terminales RA0 a RA3 del modulo ECIO. Estos terminales de entrada del módulo estarán a nivel lógico cero cuando no tengamos tensión de entrada y a nivel lógico uno para tensiones de 3,5 V o superio-res. Utilizamos los opto-aisladores para proporcionar una capa de aislamiento de las tensiones de entrada. Esto significa que las tensiones relativamente elevadas pueden ser utilizadas de forma segura para controlar el módulo ECIO. Las señales que queremos procesar en la placa PLC ECIO son aplicadas al circuito a través de los bloques de terminales atornillados para montaje en PCI de dos líneas. Los diodos LEDs D1 a D4 muestran el estado lógico de las entradas opto-aisladas.

CANEl interfaz CAN (Controller Area Network, es decir, Con-trolador de Red de Área) se utiliza para añadir la placa PLC ECIO sobre una red CAN. El bus CAN está de moda y conocemos muy pocos PLCs que ofrezcan esta conexión. En nuestro montaje usamos un circuito integrado controla-dor CAN MCP2515 y un controlador de línea MCP2551. El circuito integrado controlador CAN está conectado a

los terminales periféricos del modulo ECIO, configurados para establecer una comunicación SPI. También dispone de un terminal de interrupción que está conectado al mo-dulo ECIO a través del terminal RB2 y de un terminal de selección de circuito (“chip select”), el cual se conecta al módulo ECIO por medio del terminal RB3. El contro-lador CAN tiene su propio reloj de 20 MHz, obtenidos del cristal de cuarzo X1. La conexión actual del bus CAN al modulo ECIO se realiza a través del conector K9, un bloque de terminales atornillados para montaje en circuito impreso de dos líneas. El puente JP1 tiene que ser instala-do tan solo si el controlador de línea MCP2551 está en el nodo final del bus.

LCDEl módulo LCD es utilizado para mostrar caracteres ASCII al usuario como medio de apoyo en la fase de desarrollo de los programas, o para monitorizar el funcionamiento del sistema cuando está ocupado verificando y controlando los eventos en un proceso automatizado. La pantalla LCD está conectada al modulo ECIO por medio de los termina-les RD0 a RD5, con los 4 bits de datos ocupando los bits

La familia ECIO de microcontroladores pro-gramables por USB proporciona una mane-ra sencilla de adoptar la tecnología de mi-crocontroladores en nuestros proyectos. El componente se comporta como un micro-controlador normal, pero cuando conecta-mos los terminales USB y usamos el conmu-tador de “reinicio” (“reset”), podemos enviar un nuevo programa al componente para su programación. Esto hace que el ECIO sea uno de los PICs programables, compatibles USB, de más bajo coste en el mundo.

Actualmente solo hay dos componentes en la familia: el ECIO-28P y el ECIO-40P. Es-tos dispositivos están basados en las series PICmicro 18; en concreto, el 18F2455 y el 18F4455, respectivamente.

Los microcontroladores ECIO están pre-programados con un programa “carga-dor de arranque” que nos permite enviar un nuevo programa al microcontrolador a través del puerto USB, en principio, tantas veces como deseemos. ECIO es compatible con ficheros en código hexadecimal prove-nientes de cualquier compilador apropiado. ECIO también es compatible directamen-te con la aplicación Flowcode (un lenguaje de programación gráfico que nos simplifi-ca enormemente el proceso de generación de código), pero que también es utilizado con cualquier compilador C o con entornos de desarrollo propios a la casa Microchip como MPLAB.

ECIO se suministra también con un amplio abanico de herramientas de desarrollo y de aprendizaje, incluyendo Flowcode (gratuito) y Bloques Electrónicos muy baratos.

ECIO — el PIC USB programable más barato

GND

RC1

RC0

/RESET

VDD USB

GND

ECIO40 CONNECTIONS

RA0/AN0

RA1/AN1RA2/AN2

RA3/AN3

RA4/AN4RA5/AN5

RE0/AN5

RE1/AN6RE2/AN7

RD0

RD1RD2

RD3RD4

RD5

RD6RD7

RC7/RX/SDORC6/TX/CK

RB1/AN10/INT1/SCK

RB0/AN12

RB3/AN9

RB2/AN8/INT2

RB5

RB4

RB7RB6

RC2

VDD EXT

EC

IO40P

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

40

39

38

37

36

35

34

33

32

31

30

29

28

27

26

25

24

23

22

21

RC1

RC0

/RESET

VDD USB

GND

ECIO28 CONNECTIONS

RA0/AN0

RA1/AN1RA2/AN2

RA3/AN3

RA4/AN4RA5/AN5

RC7/RX/SDORC6/TX/CK

RB0/AN12

RB3/AN9

RB2/AN8/INT2

RB5

RB4

RB7RB6

RC2

VDD EXT

EC

IO28P

1

2

3

4

5

6

7

8

9

10

11

12

13

14

28

27

26

25

24

23

22

21

20

19

18

17

16

15

RB1/AN10/INT1/SCK

PLC ECIO • 12 Los principales de Elektor

Page 13: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO CONTROL LÓGICO PROGRAMABLE

54 elektor, electronics worldwide - 03/2008

0–3, el bit RS ocupando la posición del bit 4 y el bit Enable tomando la posición del bit 5. P1 es el potenciómetro de ajuste del contraste de la pantalla LCD.

Fuente de alimentación No hay nada de especial en este apartado: el tradicional regulador de tensión 7805 (IC2x) y el habitual conjunto de condensadores de desacoplo. Delante del regulador se uti-liza un puente rectificador para permitir que la placa PLC ECIO pueda ser alimentada, tanto por tensión AC como DC, teniendo en cuenta que la tensión de entrada a la placa debe estar comprendida entre 9 V y 20 V. Para una alimentación con VDC la polaridad es irrelevante.

Bueno, como la placa PLC ECIO tiene una gran cantidad de conexiones hacia el mundo exterior y para evitar el perderse siguiendo todas estas líneas de E/S y sus com-ponentes asociados, en la Tabla 1 hemos dado un re-sumen de todo ello.

MontajeEn la Figura 2 se muestra el plano de montaje de com-ponentes del circuito impreso diseñado para la placa PLC ECIO. Como es habitual, los planos de las pistas de cobre pueden ser descargados de nuestra página web, para to-dos aquellos que dispongan de las herramientas adecua-das para tratar con ácido y taladrar las placas de circuito impreso en casa. Para el resto, suponemos que les agra-

Verificación del interfaz CANEl bus CAN es especialmente bueno para enviar estructu-ras complejas de mensajes entre un cierto número de ECUs (microcontroladores). El programa de prueba escrito en la aplicación Flowcode busca sencillamente un “eco” del men-saje CAN saliente. Esto podría ser utilizado para ver cuántos nodos están en la red o utilizarlo para calcular la distancia entre nodos, basándonos en el tiempo del eco, etc.

Básicamente, el programa de prueba para la placa ECIO está enviando un mensaje CAN específico con un ID están-dar de 12. Cuando el Multi-programador recibe un mensaje CAN, verifica el ID y, si es igual a 12, devuelve el ID 12 del mensaje. La placa ECIO continúa enviando este ID de men-saje hasta que recibe un mensaje CAN de vuelta. Una vez que ha recibido un mensaje de vuelta, verifica el ID del men-saje y confirma o deniega si el “eco” era correcto.

Para esta prueba necesitaremos otra placa PLC ECIO o un Multi-programador de e-Blocks conectado a un módulo CAN de e-Blocks. Una placa PLC ECIO enviará varios mensajes sobre el bus CAN. La otra, permanecerá a la escucha hasta que aparezca un mensaje predefinido y responda así hacia la placa ECIO origen. Cuando el transmisor CAN es iniciado, la pantalla presenta el mensaje ‘Startup’ (“Arranque”), segui-do algo más tarde por el mensaje ‘Done’ (“Hecho”), una vez que el controlador CAN ha sido inicializado. Si la conexión CAN es correcta, la pantalla mostrará el mensaje ‘Message returned’ (“Mensaje devuelto”) si no, veremos ‘Message fai-led’ (“Mensaje fallido”).

Tabla 1. Resumen de las conexiones del ECIORelé de salida Terminal E/S del ECIORelé Re1 (K14) RB4Relé Re2 (K15) RB5Relé Re3 (K18) RB6Relé Re3 (K19) RB7

Entrada opto-aisladas Terminal E/S/LED del ECIOK1 RA0 / D1K2 RA1 / D2K3 RA2 / D3K4 RA3 / D4

CAN (desde la CPU) Terminal E/S del ECIOSalida datos serie RC7

Entrada datos serie RB0Reloj serie RB1

Interrupción RB2Chip Select RB3

LCD Terminal E/S del ECIOD0 RD0D1 RD1D2 RD2D3 RD3RS RD4

Habilitar RD5

PLC ECIO • 13 Los principales de Elektor

Page 14: E Book Los Principales de Elektor Es 1

5503/2008 - elektor, electronics worldwide

Figura 3.Este programa Flowcode ejecuta un test interno del circuito en la PLC ECIO.

dará oír que la placa, sin componentes pero ya fabricada, está disponible en la tienda de Elektor.En este proyecto no se han utilizado componentes SMD, por lo que el montaje de los distintos elementos sobre la placa es bastante sencillo, con tan solo poner algo de cuidado y precisión en la soldadura de los componentes. El grupo de resistencias de ocho terminales, que contiene cuatro resistencias cableadas de forma individual(es decir, no tienen un punto común), pueden ser algo difí-ciles de conseguir. En lugar de este grupo de resistencias, Podemos utilizar cuatro resistencias individuales montadas de forma vertical. Una vez que tenemos la placa completada, haremos una inspección visual detenida antes de insertar los integrados y alimentarla por primera vez.

Probando el circuito ECIO - E/S y CANPará ayudar a nuestros lectores a localizar los fallos, hemos escrito un sencillo e instructivo programa de prueba ECIO, cuyo listado de Flowcode se muestra en la Figura 3. Así pues, lo descargaremos, lo volcaremos sobre la aplicación Flowcode, ejecutaremos la simulación, lo compilaremos y lo pasaremos sobre el módulo ECIO.El programa incluye una rutina de configuración general del PIC que hace toda la labor de configurar todos los puer-tos y los terminales de E/S del módulo ECIO. Por ejemplo, las líneas RB4 – RB7 del modulo ECIO son configuradas como líneas de salida (para controlar los relés). El progra-ma de prueba es bastante sencillo de usar: si activamos el opto-aislador de la línea RA0, el relé sobre la línea RB4 se activará. Algo similar pasa con la combinación de las líneas RA1/RB5, y con el resto. La pantalla LCD nos muestra el mensaje: ‘Elektor ECIO PLC board’ (¿no es asi?, ¡intentemos ajustar el contraste del LCD!). Ni los miem-bros de la familia ni este PIC pueden llegar a hacer cosas impresionantes pero, si funcionan adecuadamente, estará ejecutando un completo bloque de código PIC, con lo que podremos asumir de manera segura de todo el circuito está funcionando como debe. La utilidad de prueba del bus CAN, tratada en un aparta-do independiente, también está incluida en el bloque de descargas gratuitas para este proyecto. Los dos programas de prueba proporcionados son bastante educativos y ver-daderamente valiosos, incluso si no acometemos el montaje de este proyecto (consejo: utilizar la versión gratuita de Flo-wcode para empezar). El nombre del fichero a descargar es 070786-11.zip.

Programación de la PLCToda la programación de la placa PLC ECIO presenta una gran similitud con los e-Blocks y con Flowcode, por lo que si ya tenemos alguna experiencia con algunos de estos dos elementos, estamos de suerte. Si no, existe una canti-dad inmensa de información sobre estos temas en Internet [1], en el número anterior de Elektor y en el propio paquete que acompaña Flowcode. Lo mejor de todo es que Flowco-de para ECIO es gratuito [1].La escritura de un programa de control de procesos para la placa PLC ECIO nos confirma que Flowcode lo es todo: en lugar de preocuparnos por la sintaxis y del código ensam-blador del PIC con el que estamos trabajando a un nivel bastante elevado, basta con dibujar un diagrama de flujo del programa y dejar que Flowcode se las arregle con todo el proceso de compilación, inicialización, localización de errores, y volcado del código sobre el módulo ECIO. Por supuesto, podemos simular nuestro programa PLC, de for-ma que tengamos bastantes oportunidades de éxito cuando nuestra placa PLC ECIO sea conectada al mundo real.

Los usuarios más avanzados es posible que quieran con-tar con sus propios métodos de generación de código para el PIC18, usando compiladores C++ o similares. El módulo ECIO acepta incluso código hexadecimal directo proveniente de cualquier código ensamblador realizado con otros sistemas. Sencillamente utilizaremos los con-troladores USB de E/S gratuitos para conectar el módulo ECIO a nuestro PC.

(070786-I)

Enlaces en Internet y Referencias

[1] http://www.matrixmultimedia.com/ECIO-X.php

[2] Control Sencillo de E/S, Elektor Octubre 2007.

PLC ECIO • 14 Los principales de Elektor

Page 15: E Book Los Principales de Elektor Es 1

60 07/2007 - elektor, la electrónica que sorprende

SOBRE EL TERRENO ADAPTADOR JTAG

Adaptador JTAG Universal

Para programación y emulación

Marcel Cremmel

Este adaptador fue pensado originalmente para permitir la programación de la memoria y de la CPLD del microcontrolador PSD 813 utilizado en el cartucho GBECG de la consola Gameboy, el cual convierte esta consola de juegos en un electrocardioscopio (veáse la entrega de Diciembre de 2006). Pero esta interfaz es mucho más universal (ver apartado titulado “JTAG ‘In-circuit’ – Algunas aplicaciones”). Nuestro adaptador se conecta a un puerto paralelo de un ordenador y utiliza el protocolo JTAG IEEE 1149.1

Por supuesto, los aficionados a la mi-croelectrónica bien informados conocen perfectamente que otros dispositivos programables en el propio circuito (“in-circuit”) utilizan este mismo puerto (pa-ralelo) y un protocolo idéntico. Por des-gracia, los programadores/emuladores pensados para estos dispositivos no son compatibles (de hecho, son bastante di-ferentes, de manera que no es posible pensar en una solución intermedia).Sin embargo, un examen más detenido

de los esquemas eléctricos de los circui-tos de ciertos programadores, sugeridos por varios fabricantes de circuitos inte-grados, muestran que las diferencias son relativamente menores y que, de hecho, dichas diferencias se basan prin-cipalmente en la interconexión entre las señales del puerto LPT y las del conec-tor JTAG. Por lo tanto, lo único que te-nemos que hacer es crear unas cuantas funciones de multiplexado para obtener un adaptador “universal”.

Estos dispositivos pueden conseguirse perfectamente utilizando componentes lógicos convencionales. Así, el circuito de nuestro adaptador podría haber sido bas-tante más complejo, con diferente electró-nica para cada una de las secciones de los diferentes tipos de procesador. Utilizando un circuito lógico programable EP 900 (de la casa Altera, que se ofrece gratuitamen-te desde Elektor), es posible ofrecer un programador muy sencillo y barato.Muchos fabricantes han adoptado el pro-

Adaptador JTAG Universal • 15 Los principales de Elektor

Page 16: E Book Los Principales de Elektor Es 1

6107/2007 - elektor, la electrónica que sorprende

tocolo JTAG (Join Test Action Group, es decir, Grupo de Acción de la Asociación de Pruebas) para la programación, depu-ración y comprobación de sus circuitos in-tegrados sobre la propia placa de trabajo (circuitos integrados para trabajar “en el propio circuito”). Afortunadamente, no necesitamos saber todos los detalles de este protocolo para utilizarlo: el programa que corre sobre el ordenador (normalmen-te gratuito) y los componentes de destino, incluyen cada uno un núcleo JTAG que les permite comunicarse entre ellos de un modo completamente transparente.Los dispositivos relacionados con este proyecto tienen unos terminales “JTAG” especiales, de manera que lo único que tenemos que hacer es conectar dichos terminales a los del mismo nombre que aparece en el conector del programador. El tamaño (número de contactos) y la dis-tribución de terminales de este conector, difiere de un fabricante a otro. Esta infor-mación la proporcionamos a nuestros lec-tores a través de los distintos esquemas eléctricos que se muestran a lo largo de las Figuras 1- 4, las cuales se correspon-den respectivamente con los dispositivos CPLDs y EPLDs (Byteblaster II) de la casa Altera (Figura 1); CPLDs y EPLDs (Cable de Descarga Paralelo) de la casa Xilinx (Figura 2); microcontroladores MSP 430 de la casa Texas Instruments (Comunica-ción JTAG con LPT IF de 4 hilos) (Figura 3); y las familias PSD, μPSD y DSM (Flas-hlink FL 101) de la casa ST Microelectro-nics (Figura 4). También debemos hacer notar que existe una cierta discrepancia en el nombre dado a las distintas señales entre los diferentes conectores JTAG.

CIRCUITO ADAPTADOREl corazón del circuito (vea la Figura 5), que con sus 44 terminales difícilmente pasa inadvertido, es una PLD EP 900. Esta PLD forma el enlace entre el puerto para-lelo del ordenador, K1, y los cuatro conec-tores JTAG del tipo DIL “pinheader” para los cuatro dispositivos de destino, nombra-dos respectivamente como MSP 430 (K2), FLASHLINK (K3), XILINX (K4) y ALTERA (K5). El conmutador SW, un conmutador DIP doble que comprende los contactos de JP1 y JP2, permite la selección de uno de los cuatro tipos de programadores reco-nocidos por el adaptador JTAG (ver tabla de verdad en el esquema eléctrico del cir-cuito, que también se proporciona sobre la cara de componentes de la placa). Estas cuatro opciones aparecen en la forma de tabla de estado que identifica la cabecera HE-10, en la parte inferior izquierda del cir-cuito. Cada opción tiene su propia estruc-tura lógica dentro de la EP 900. Todos es-

12

34

56

78

9

TCK

TDO

TMS

TDI10

VCC

VCC

TCK

VCC

TDO

TMS

TDI

GND

060287 - 12

1k

VCC

1k 1k1k

TargetAlteraDevice

1 2

3 4

5 6

7 8

9

TCK

TDO

TMS

TDI 10

GND

VCC

GND

Figura 1. CPLD y EPLD (Byteblaster II) de la casa Altera: conector DIL de 10 terminales. Programas: Quartus II Web Edition, Quartus II Programmer [1].

1 2

3 4

5 6

7 8

9 10

TMS

TCK

TDO

TDI

11 12

13 14

VCC

GND

060287 - 13

VCC

VCC

TDI

TMS

TCK

TDO TDI

TMS

TCK

TDO TDI

TMS

TCK

TDO

XILINX

1 2

3 4

5 6

7 8

9 10

11 12

13

GND

GND

GND

GND

GND

GND 14

VCC

TMS

TCK

TDO

TDI

Figura 2. CPLD y EPLD (Cable de Descarga Paralelo) de la casa Xilinx: conector DIL de 14 terminales. Programas: ISE WebPACK [2].

12

34

5

J1

J2

6

78

VCC TOOL

VCC TARGET

TEST/VPP

9

11

10

12

1314

VCC

1 2

3 4

5 6

7 8

9 10

11 12

13

TDI

TMS

TCK

GND

RST

TDO

14

VCC out

VCC in

TCLK

TEST

VCC / AVCC /DVCC

VSS /AVSS /DVSS

47k

R1C2

C1

C3

10n/2n2

100n

TDI/VPP

TMS

TCK

TDO/TDI

RST/NMI

TDI/VPP

TMS

TCK

TDO/TDI

RST

TEST/VPP

MSP430Fxxx

060287 - 14

Figura 3. Microcontrolador MSP 430 (Comunicación JTAG - LPT-IF de 4 hilos) de la casa Texas Instruments: conector DIL de 14 terminales. Programas: IAR-Kickstart [3].

JTAG ‘In-Circuit’ – Algunas Aplicaciones– PSDs, uPSDs y DSMs de la casa ST Microlectronics

– Microcontroladores MSP430 de la casa Texas Instruments

– EPLDs y CPLDs de la casa ALTERA

– EPLDs y CPLDs de la casa XILINX

Los principales de Elektor Adaptador JTAG Universal • 16

Page 17: E Book Los Principales de Elektor Es 1

62 07/2007 - elektor, la electrónica que sorprende

SOBRE EL TERRENO ADAPTADOR JTAG

tos subconjuntos diferentes utilizan puer-tas lógicas con diferente configuración, tal y como se muestra en la Figura 6.Cada una de estas estructuras ha sido to-mada a partir de los circuitos programado-res de los fabricantes. Por razones de efi-ciencia, la estructura lógica de la EP 900 está descrita en el lenguaje AHDL de la casa Altera. El circuito eléctrico es bastante sencillo de leer para un técnico electrónico, pero en este caso es más eficiente la for-ma “AHDL”. Para información de nuestros lectores, en el apartado correspondiente de este artículo se entregará el listado comple-to del fichero “fuente” (.tdf) de la EP 900.En la parte inferior izquierda del esque-ma eléctrico encontramos la …

FUENTE DE ALIMENTACIÓN¡La PLD EP 900 es ya un circuito integra-do bastante viejo! Requiere una tensión de alimentación de 5 V y, aunque su consumo es bastante elevado, el adaptador de pro-gramación puede estar alimentado direc-tamente de las salidas del puerto LPT del

que obtener las hojas de características y especificaciones de la página web de TI). Sin embargo, la corriente que entrega este circuito está limitada a 30 mA.El único inconveniente, desde el punto de vista de los aficionados, es el tamaño del circuito integrado del regulador (que sólo está disponible en su versión SM, es decir, Montaje Superficial), que hace que sea algo difícil de soldar. Afortuna-damente, dicho componente tan sólo tie-ne seis terminales. Por lo tanto, es ahora o nunca el momento de probar nuestra destreza con un componente SM. Para ello, colocaremos el circuito integrado IC2 de forma precisa sobre sus puntos de soldadura. Aplicaremos un poco de estaño en uno de los terminales “+”. Una vez que esta soldadura ha sido rea-lizada correctamente y el componente no se ha movido, soldaremos la patilla diametralmente opuesta. Si todo está correcto y no hay ninguna patilla fuera de su punto de soldadura, pasaremos a soldar el resto de terminales. Si hemos creado un puente de soldadura entre dos terminales, podemos retirar el estaño so-brante con una trencilla de desoldar.

CONSTRUCCIÓNComo se muestra en la Figura 7, la placa diseñada para este proyecto es de doble cara y utiliza tan sólo unos pocos compo-nentes SM, principalmente en torno a la PLD EP 900. Naturalmente, estos compo-nentes tienen que soldarse en la cara de pistas de la placa. Así que, ¡manos a la obra! Para ser lo más prácticos posible, recomendamos comenzar con los compo-nentes SM. Debemos tener cuidado con algunos de ellos, en particular con el con-densador C1, que se esconde en el cen-tro de la placa, justo entre los terminales del zócalo PLCC 44 (sobre el que la EP 900 tiene que montarse por la otra cara). Tendremos cuidado a la hora de soldar el regulador IC2, ya que sin él, nada puede funcionar. Dicho componente está rodea-do por condensadores que son mayores que el mismo. También tendremos cuida-do en identificar correctamente los valo-res de los componentes SM (las resisten-cias tienen a menudo la información de su valor codificado: 103 significa 10 K ,1203 significa 120 K ,…). Las cosas son aún más difíciles con los condensadores, los cuales a menudo no vienen identifica-dos o no son identificables. Una vez que los componentes SM han sido montados, podemos montar la tira de resistencias, el resto de componentes convencionales, el conmutador SW, los conectores tipo “pinheader” K2 (MSP 40) a K5 (Altera), el zócalo PLCC 44 y, por último, el conec-

ordenador. Para simplificar la implementa-ción y permitirnos trabajar con una tensión de alimentación especialmente dedicada, hemos decidido alimentar el adaptador a partir de las líneas de alimentación del sistema de destino. Pero esta tensión de alimentación normalmente está contenida dentro de los valores de 3 a 3,6 V (¡espe-cialmente hoy día!), por lo que no es sufi-ciente tensión para la EP 900.Por este motivo hemos montado el adap-tador con un conversor de tensión por condensador conmutado, muy flexible, que proporciona una tensión de salida regulada de + 5 V a partir de una ten-sión de entrada comprendida entre los valores de ¡2,7 y 5,5 V!. Sí, es correcto: el conversor trabaja exactamente igual tan-to con una tensión de entrada más baja que la tensión de salida, como con una tensión de entrada más elevada que di-cha tensión de salida, con una eficiencia que ronda el 90%. Hay que felicitar a los ingenieros de la casa Burr Borwn (la com-pañía que fue absorbida por Texas Instru-ments, lo cual explica por qué se tienen

12

34

56

78RST

9

11

TDI

TMS

TCK

10

12

13 TDO14

1 2

3 4

5 6

7 8

9 10

11 12

13

GND

TDI

VCC

TMS

TCK

TDO 14

GND

GND

RST

USERPC BOARD

10k

100k

100k

100k

100k

10n

TDI - PC5

VSTBY or PC2

TMS - PC0

TCK - PC1

TDO - PC6

General I/O - PC3

General I/O - PC4

General I/O - PC7

System Reset Circuity(connect directly to RST

input on PSD)

PSD or PSD Port C

User I/O Signals060287 - 15

Figura 4. Familias PSD, μPSD y DSM Flashlink FL-101 de la casa ST Microelectronics: conector DIL de 14 terminales. Programas: entre otros, PSDsoft Express [3] para programar la PSD 813 en el cartucho de la GameBoy.

Acerca del autorMarcel Cremmel, el autor de este artículo, tiene el título de ingeniero eléctrico, especialidad en electrónica, desde 1979 (certificado por el Sistema de Educación Nacional Francés).

Después de haber completado su primer año de aprendizaje en la Escuela de Ingeniería de Rabat, en Marruecos, bajo un sistema de cooperación, en 1982 fue asignado al Colegio Louis Couffignal, en Strasbourg, en la sección BTS SE (Certificado de Técnico Superior, “sistemas electrónicos”).

Su trabajo requiere que sus conocimientos cubran todos los campos de la electrónica, aunque sus preferencias son las telecomunicaciones, el vídeo, los microcontroladores (MSP 430 y PIC) y los dispositivos lógicos programables (de la casa Altera).

Además de la electrónica, su otra pasión son las motocicletas en todas sus formas: turismo, competición, etc., su página web personal es http://electronique.marcel.free.fr/

Adaptador JTAG Universal • 17 Los principales de Elektor

Page 18: E Book Los Principales de Elektor Es 1

6307/2007 - elektor, la electrónica que sorprende

K1

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

1

2

3

4

5

6

7

8

9

R1100R

R3100R

R4100R

R5100R

R10100R

R9100R

R11100R

R12100R

R6100R

R7100R

R13100R

R14100R

R15100R

R16100R

R17100R

R8100R

STROBE

AUTOFDX

D0

D1

D2

D3

D4

D5

D6

D7

GND1

GND2

GND3

GND4

GND5

GND6

GND7

GND8

R28

100k

R29

100k

R30

100k

R31

100k

R32

100k

SUB D25

+5V

ERROR

INIT

SLCTIN

ACK

BUSY

PE

READY

C1

100n

+5V

R35

10k

R36

10k

R37

10k

D0

D1

D2

D3

D4

D5

D6

D7

INIT

ACK

BUSY

PE

STRB

AFDX

ERR

SLCT

RDY

JP2JP1

R20100R

R24100R

R25100R

R19100R

R21100R

R22100R

R23100R

R26100R

R18100R

R27100R

EP900LC

IC1

SEL0

SEL1

CLK2

CLK1

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

I/O

23

44

22

20IN

19IN

21IN

30IN

25IN

26IN

27IN

41IN

32

31

34

33

35

37

38

40

43

42

IN

IN

IN

10

11

12

13

14

15

16

18

24

17NC

39NC

28

29

36

1

3

4

5

2

7

9

8

6

+5V

1 2

3 4

5 6

7 8

9 10

K5ALTERA 1 2

3 4

5 6

7 8

9 10

11 12

13 14

K3FLASHLINK

1 2

3 4

5 6

7 8

9 10

11 12

13 14

K4XILINX

1 2

3 4

5 6

7 8

9 10

11 12

13 14

K2MSP430

TDO

TDO F

TMS TDI

TCLK

TCK TMS

TDI TMS

TCK RST

TDO TCK

TCK A

Nstat TDO

VCC IN VCC IN

VCC IN

R34

100k

R3310

k

TCK A

TDO

TMS TDI

TDI TMS

Nstat TDO

TCK TMS

TDO TCK

TMS TDI

TCK TMS

TCK RST

Nstat TDO

TMS TDI

TDI TMS

TCK RST

TDO F

TDO TCK

TDO

TMS TDI

TCK TMS

TDO TCK

TCK RST

TCLK

TDI TMS

VCC IN

VCC IN

VCC IN

JP2JP1

ON ON

OFF ON

ON OFF

OFF OFF

ALTERA

XILINX

PSD

MSP430

060287 - 11

REG710NA-5

PUMP+ PUMP-

IC2OUTIN

EN

2

5 1

3

6 4

C2 C4C5 C7

C3

220n

+5VVCC IN

Figura 5. La EP 900 ocupa una buena cantidad de espacio en el centro del circuito para el programador JTAG universal. Este componente está disponible ya programado, de forma gratuita, cuando pedimos una placa de circuito impreso con código de pedido 060287-1.

Adaptador JTAG Universal • 18 Los principales de Elektor

Page 19: E Book Los Principales de Elektor Es 1

64 07/2007 - elektor, la electrónica que sorprende

SOBRE EL TERRENO ADAPTADOR JTAG

comenzar a soldar los enlaces con hilos, utilizando hilo de cobre estañado.Deberemos poner cuidado en evitar los cortocircuitos con los enlaces con hilos colocados entre los conectores “FLAS-HLINK” y “XLINX”, los cuales están re-lativamente cerca el uno del otro.Todo lo que queda es conectar la PLD EP 900 sobre su zócalo. Verificaremos la cali-dad de nuestro montaje una última vez (sol-daduras, valores de componentes…, afor-tunadamente sólo hay un valor para las re-sistencias convencionales), ya que no hay ninguna otra forma de verificar el funcio-namiento correcto de este circuito excepto haciéndolo funcionar en modo real.Nota sobre la PLD EP 900 (con código de pedido 060287-41: este componente está disponible ya programado, libre de gastos (aparte de los gastos habituales de mani-pulación y envío) en la tienda de Elektor. Si hacen el pedido de la placa de circuito impreso con la referencia # 060287-1, el circuito integrado ya programado será su-ministrado automáticamente con ella.

CONEXIONES DE DESTINO¡Atención: tan sólo podemos utilizar un conector cada vez! En la mayoría de los casos un cable plano de 10 hilos o de 14, con un conector “crimpado” en cada ex-tremo (tendremos cuidado en la orienta-ción correcta de dichos conectores) es lo que necesitamos para establecer el enla-ce eléctrico entre el dispositivo destino y el adaptador (ver los esquemas eléc-tricos de los circuitos entre las Figuras 1 a 4 y la asignación de terminales en los correspondientes conectores).Si tenemos un acceso directo a la parte trasera de nuestro ordenador, el adap-tador puede insertarse directamente sobre el puerto LPT del mismo, sin ne-cesidad de utilizar ningún cable adap-tador que realice la interconexión entre el ordenador y el adaptador JTAG.

Adaptadores USBLos ordenadores portátiles y de sobreme-sa actuales ya no disponen de puertos pa-ralelos (LPT) (¡una decisión lamentable, especialmente para este proyecto!). Para dar solución a este problema, podemos intentar localizar un adaptador USB/LPT, pero debemos asegurarnos y verificar su compatibilidad con nuestro programador JTAG, ya que muchos de estos adapta-dores que existen en el mercado tan sólo aceptan impresoras. No vamos a entrar en los detalles de los procedimientos de programación para todos los posibles dis-positivos de destino, por lo que nos limi-taremos a realizar sólo un ejemplo, el…

D0 TCK

D4 ACK

D1

D2

D3

D6

TDO

PIN7

TMS

PIN8

PIN6

TDI

BUSY

READY

ERROR

AFDX

TRI

TRI

TRI

TRI

TRI

WIRE

WIRE

WIRE

WIRE

ALTERA

D0

D1

D2

TRI

TRI

TRI

TDI

TCK

TMS

NOT

D3

ACK

BUSY

READY

WIRE

WIRE

WIRE

WIRE

XILINX

VCC

AND2

D6

PE

ERROR

D4

TDO

D0

D1

D2

TRI

TRI

TRI

TDI

TCK

TMS

NOT

D3

FLASHLINK

NOT

READYWIRE

D5 RSTN

NOT

TDO

D6

BUSY

ERROR

WIRE

WIRE

WIRE

PE

ACK

D0

D1

D2

TRI

TRI

TRI

TDI

TCK

TMS

NOT

MSP430

SLCT

TRI

TDO PE

WIRE

INIT TEST

NOT

TRI

STRB RST

AFDX

BUSY

ERROR

WIRE

WIRE

WIRE

ACK

WIRE

READY

060287 - 16

Figura 6. ¡Nada como esto para ilustrar la flexibilidad de una PLD como la EP 900! Un único dispositivo puede realizar plenamente varias funcionales lógicas complejas.

Figura 7. Planos de distribución de componentes para la placa diseñada para este proyecto. Los pasos para la creación de la placa de circuito impreso están disponibles para su descarga gratuita.

tor Sub-D de 25 terminales K1. Debemos asegurarnos que hemos elegido la ver-sión “macho” del conector de impresora (LPT), ya que la versión hembra no nos permitirá realizar una buena conexión. Una pequeña nota sobre el selector dual SW: no siempre es fácil conseguir un con-mutador DIP dual, por lo que hemos deja-do espacio para uno de cuatro posiciones, pero necesitamos cortar los terminales que nos sobran antes de montarlo sobre

la placa de circuito impreso (PCI).Si estamos construyendo nuestra propia placa, también es posible fabricar dicha placa en la forma de una sola cara, ya que la segunda cara de la placa de doble cara sólo se utiliza, de hecho, para evitar la necesidad de tener que colocar enla-ces con hilos que requeriría la versión de placa de una sola cara. El montaje de los componentes es el mismo, pero en este caso es preferible, por razones prácticas,

Adaptador JTAG Universal • 19 Los principales de Elektor

Page 20: E Book Los Principales de Elektor Es 1

6507/2007 - elektor, la electrónica que sorprende

Cartucho ECG de la GameBoy¡El cartucho utiliza un conector SMD con una separación entre terminales de 1,25 mm (K3). Para fabricar el cable, recomenda-mos seguir los siguientes procedimientos:1. Presionamos en la pieza de cable plano de 14 hilos sobre un conector DIL14 hembra.2. Utilizar el conector Molex y los hilos ya preparados en la lista de componen-tes (ver número de Elektor de Diciem-bre de 2006) para realizar el conector adecuado de seis terminales para K3. 3. Soldar los cuatro hilos: TCK, TDI, TDO y TMS y los dos hilos de la fuente de alimentación a ambos conectores.4. Verificaremos las conexiones con un medidor de continuidad y, a continua-ción, aislaremos la soldadura con un tro-zo de material termo-retráctil.

¡Ya lo hemos conseguido! Todo está listo para programar la PSD 813 en el cartu-cho ECG de la GameBoy.Un último detalle: el adaptador es compa-tible con Byteblaster II (de la casa Altera),

pero no trabaja correctamente con la pri-mera versión de dicho controlador (Byte-blaster sin más, sin los “II”). Este viejo controlador era utilizado por el programa MaxPlus II y ha sido sustituido por el pro-grama Quartus hace dos o tres años.

(060287-I)

Bibliografía y Enlaces en Internet

[1] https://www.altera.com/support/software/download/sof-download_center.html

[2] http://www.xilinx.com/ise/logic_design_prod/webpack.htm

[3] http://focus.ti.com/docs/toolsw/folders/print/iar-kickstart.html

[4] http://mcu.st.com/mcu/modules.php?name=Content&pa=showpage&pid=57

Hojas de características con REF710-5 en:

http://focus.ti.com/lit/ds/symlink/reg710-5.pdf

Información suplementaria: fichero # 060287-11.zip, descarga gratuita desde: www.elektorelectronics.co.uk

Fichero fuente “AHDL” para el EP 900Contrariamente a las primeras impresiones, un fichero AHDL puede informarnos sobre una gran cantidad de cosas. Mirando este fichero un poco más detenidamente es fácil diferenciar las distintas opciones (->).

subdesign prog_jtag_univers(TDO,Nstat_TDO,TDO_F : input;STRB,AFDX,INIT,SLCT : input;D[6..0] : input;SEL[1..0] : input; -- 0->ALTERA,1->XILINX,-- 2->FLASHLINK,3->MSP430ACK,BUSY,READY,ERROR: output;TCK_A,TMS_TDI,TCK_TMS,TDO_TCK,TDI_TMS,TCK_RST,PE : bidir;)variableTCK_A,TMS_TDI,TCK_TMS,TDO_TCK,TDI_TMS,TCK_RST,PE : tri;beginTCK_A.in=D0; TCK_A.oe=AFDX;case SEL[] iswhen 0 -- ALTERA=> TMS_TDI.in=D1 ; TMS_TDI.oe=AFDX;TCK_TMS.in=D3 ; TCK_TMS.oe=AFDX;TDO_TCK.in=D2 ; TDO_TCK.oe=AFDX;TDI_TMS.in=D6 ; TDI_TMS.oe=AFDX;TCK_RST.in=GND; TCK_RST.oe=GND;ACK =D4;BUSY =TDO;PE.in=GND; PE.oe=GND;READY=Nstat_TDO;ERROR=GND;when 1 -- XILINX=> TMS_TDI.in=D2 ; TMS_TDI.oe=!D3;TCK_TMS.in=D1 ; TCK_TMS.oe=!D3;TDO_TCK.in=GND; TDO_TCK.oe=GND;TDI_TMS.in=GND; TDI_TMS.oe=GND;TCK_RST.in=D0 ; TCK_RST.oe=!D3;ACK =GND;BUSY =D6;PE.in=D6; PE.oe=VCC;READY=Nstat_TDO & D4;ERROR=VCC;when 2 -- FLASHLINK=> TMS_TDI.in=D2 ; TMS_TDI.oe=!D3;TCK_TMS.in=GND; TCK_TMS.oe=GND;TDO_TCK.in=!D5; TDO_TCK.oe=VCC;TDI_TMS.in=D1 ; TDI_TMS.oe=!D3;TCK_RST.in=D0 ; TCK_RST.oe=!D3;ACK =GND;BUSY =GND;PE.in=!TDO_F; PE.oe=VCC;READY=D6;ERROR=GND;when 3 -- MSP430=> TMS_TDI.in=D0 ; TMS_TDI.oe=!SLCT;TCK_TMS.in=D1 ; TCK_TMS.oe=!SLCT;TDO_TCK.in=D2 ; TDO_TCK.oe=!SLCT;TDI_TMS.in=INIT; TDI_TMS.oe=VCC;TCK_RST.in=STRB; TCK_RST.oe=!AFDX;ACK =GND;BUSY =GND;PE.in=TDO; PE.oe=!SLCT;READY=GND;ERROR=GND;end case;end;

Para más información, el fichero de programación ‘Jedec’ (prog_jtag_univers.jed) está dispo-nible en la página web de Elektor (www.elektor-electronics.co.uk).

Lista de materialesResistenciasR1,R3-R27 = 100R28-R32,R34 = 100k (SMD)R33,R35,R26,R37 = 10k (SMD)(R2 no montada)

CondensadoresC1 = 100nF (SMD 1206)C2,C4 = 2μF2 (SMD 1206)C3 = 220nF (SMD 1206)C5,C7 = 47μF condensador electrolítico

de 10V radial(C6 no montado)

SemiconductoresIC1 = EP900LC (programado, con código

de pedido 060287-41)*IC2 = REG710-NA5

VariosK1 (K_LPT) conector Sub-D de 25 termi-

nales macho, con terminales en ángulo recto para montaje en placa de circuito impreso (PCI)

K2 (FLASHLINK), K3 (MSP430), K4 (XI-LINX) conector tipo “pinheader” de 14 terminales en dos filas

K5 (ALTERA) conector tipo “pinheader” de 10 terminales en dos filas

J1,J2 (SW) conmutador DIP de 2 filasZócalo PLCC-44 Programa del proyecto en fichero #

060287-11.zip, descarga gratuita de la página web de Elektor

PCI con código de pedido 060287-1* PLD ya programada suministrada cuan-

do se pide la PCI # 060287-1 en la Tienda de Elektor

OpcionesComponentes para la conexión del cable

a K3 sobre la GBECG:- Zócalo IDC de 14 terminales (2x7) de

presión- Zócalo Molex, de 6 terminales, separa-

ción entre terminales de 1,25 mm (RS Components # 279-9178)

- 6 hilos con contactos crimpados para conec-tor Molex (RS Components # 279-9544)

Adaptador JTAG Universal • 20 Los principales de Elektor

Page 21: E Book Los Principales de Elektor Es 1

6 elektor, electronics worldwide - 12/2007

SOBRE EL TERRENO SOLDADURA POR REFLUJO

Reflow ControlSoldadura de SMD con un horno eléctrico corriente

Paul Goossens

El laboratorio de Elektor, como muchos lectores, cada vez hace más soldaduras de componentes SMD. En la edición de enero de 2006 ya describimos en detalle como se puede construir un horno de reflujo con ayuda de un pequeño horno eléctrico económico. Este artículo tuvo mucho éxito entre los lectores, y nos dimos cuenta de que este tipo de proyectos genera un gran interés. En esta edición presentamos una versión totalmente renovada de la electrónica de control para hacerse un horno SMD. Además, se puede adquirir como kit de montaje, ¡de modo que el montaje será pan comido!

Tras más de dos años, nuestro hor-no de reflujo todavía trabaja con cier-ta frecuencia en nuestro laboratorio. Con motivo de las múltiples respues-tas de nuestros lectores, nos pareció una buena idea hacer una versión re-novada de este proyecto, que además se puede obtener como kit de monta-je. De este modo, la autoconstrucción de un horno de reflujo para SMD será posible para todos.

Para los que se perdieron la primera versión de este artículo, examinare-mos primero el proceso de reflujo.

¿El fin del soldador?La soldadura convencional se realiza con un soldador. Primero hay que ca-lentar las piezas que queremos soldar con el soldador. En cuanto la tempe-ratura es suficientemente elevada, se añade un poco de estaño para solda-dura, que se fundirá con ambas piezas. El resultado es una buena soldadura (según se espera).

Este método es bastante ideal para piezas, porque las conexiones se ca-lientan una por una y la temperatura del chip permanece bastante baja.Pero este método tiene una limitación, y es que hay que poder llegar a las dos piezas que deben soldarse con la punta del soldador. En varios SMD esto es complicado, ¡y a veces incluso imposible!

ReflujoUno de los métodos para soldar este tipo de componentes es la “soldadu-ra por reflujo”. En vez de soldar pie-zas calentando un soldador, con este método se calienta toda la tarjeta de circuito impreso, incluidos todos los componentes.Tampoco se usa el estaño de soldadu-ra estándar, sino que usamos lo que se llama pasta de soldadura. Este material gris consta de partículas su-mamente finas de estaño mezcladas con líquido (o fundente). Esta pasta se coloca en la placa de circuito im-

preso primero. Después, se colocan encima los componentes. Luego se coloca todo en un horno, donde se calienta hasta el punto en que el es-taño se funde con las capas de metal del entorno.

Perfil de temperaturaParece muy fácil, así que ¿por qué ne-cesitamos el circuito de control “Re-flow-Control”? ¡Un horno normal tam-bién podría realizar esta tarea!El truco está en que el circuito impreso debe recorrer un trayecto de tempera-tura concreto para obtener un buen re-sultado final.Empezamos el proceso con el perío-do de “Pre-heat” (precalentamien-to). Aquí, la temperatura del horno se eleva a unos 125 ºC. A partir de esta temperatura el fundente se licua. Este líquido fluye hacia los laterales, pero las bolitas de estaño permanecen en su sitio original.Luego, la temperatura se eleva lenta-mente hasta un valor de 175 ºC. Esta

Los principales de Elektor

Page 22: E Book Los Principales de Elektor Es 1

712/2007 - elektor, electronics worldwide

temperatura se mantie-ne en y cerca del punto de fu-

sión de las bolitas de estaño. El moti-vo por el cual debe subir lentamente, es que la tarjeta de circuito impreso y

los componentes deben tener tiempo para llegar todos aproximadamente a la misma temperatura. En términos de reflujo, denominamos a este paso “soak” (impregnación).

Una vez alcanzada esta temperatura, el horno debe calentar la tarjeta y los componentes hasta una temperatura máxima (220...240 ºC). Durante esta fase (que lleva el nombre de “reflujo”)

00

50

100

150

200

250

100 200

Temperatura

[°C

]

300 400

060234 - 12

500

Tiempo [s]

Figura 1. Perfil de la temperatura en el horno.

3V3

060234 - 11

GND

GND_2

3V3

GND

22p

C4

22p

C3

K5

MAX6675ISA

4

SO7

CS6

SCK5

1

T+3

T-2

IC2

100n

C1

GND

GND

3V3

22p

C5

GNDGND

5V

GND_2

S1S2S3S4S5S6

S1S2S3S4S5S6

RESET ER/WRS

S1S2S3S4S5S6

3V3_2GND_2

Re1

Re2

5V

5V

OUT1OUT2

OUT1

OUT2

123

K9

123

K8

INTERFAZ DE USUARIO

CSSO SCK

SOCSSCK

MEDICIÓN DE TEMPERATURA

D2

BAS116

D1

BAS116IC4

78M05CKTPR

100n

C18

GND

5V

RESET

10u

20V

C2R1

10k3V3

S1

S2

S3

S4

S5

S6

LED

230_1

230_2

230_3

230_4

D3

KBP2005G

K1

K2

X1

12MHz

F1

TR1

5VA 9V230_5

25V

C17

1000u100n

C19

(AD0)P0.037

(AD1) P0.136

(AD2) P0.235

(AD3) P0.334

(AD4) P0.433

(AD5) P0.532

(AD6) P0.631

(AD7) P0.730

P1.0 (T2)40

P1.1 (T2 EX)41

P1.242

P1.343

P1.444

P1.5 (MOSI)1

P1.6 (MISO)2

P1.7 (SCK)3

(A8) P2.018

(A9) P2.119

(A10) P2.220

(A11) P2.321

(A12) P2.422

(A13) P2.523

(A14) P2.624

(A15) P2.725

VCC

38

EA/V

pp29

ALE/PROG27

PSEN26

P3.0 (RXD)5

P3.1 (TXD)7

P3.2 (INT0)8

P3.3 (INT1)9

P3.4 (T0)10

P3.5 (T1)11

P3.6 (WR)12

P3.7 (RD)13

XTAL

115

XTAL

214

GND

16

GND

17

RST4

IC1

AT89S8253-24AU

GND30

PS15

MI14

DB713

V429

V328

V227

V126

V025

C2-24

C2+23

C1-22

C1+21

C3-20

C3+19Vo

ut18

VDD

17

GND16

DB612

DB511

DB410

DB39

DB28

DB17

DB06

E5

R/W4

RS3

RST2

CS1B1

AA

KBKB

KRKR

KGKG

LCD1

64 x 128 LCD

3V3_2

100n

C7

GND_2

R6

33R

R5

33R

R4

33R

5V_2

5V_2

3V3

IC5TLV2217-33KTPR

100n

C21

100n

C20

3V3

GND

T3

FDV301N

T4

FDV301N

T5

FDV301N

BG_RBG_GBG_B

BG_GBG_B

BG_R

T2FDV301N

T1

FDV301N

GND

GND

123456789101112131415161718192021222324

K7

GND_2

1 23 45 67 89 10

11 1213 1415 1617 1819 2021 2223 24

K6

RESETLCD

RESETLCD

3V3

1

2 3 4 5 6 7 8 9

R38x10k

1

2 3 4 5 6 7 8 9

R28x10k

R8

1M

R7

1M

GND

GND_2

25V

C6

1000u

C8

1u

C9

1uC10

1uC11

1u

C12

1u

C13

1u

C14

1u

C15

1u

C16

1u

EART

H

Figura 2. Esquema del circuito de Reflow Control.

Los principales de Elektor

Page 23: E Book Los Principales de Elektor Es 1

8 elektor, electronics worldwide - 12/2007

SOBRE EL TERRENO SOLDADURA POR REFLUJO

las bolas de estaño se derriten y se funden en las piezas de metal circun-dantes. La soldadura ya está hecha.Después de alcanzar la temperatura máxima, debemos dejarlo enfriar todo. Esta fase, la denominamos muy ori-ginalmente “cooling” (enfriamiento). Este enfriamiento no debe producirse rápidamente, también para evitar gran-des diferencias de temperatura entre los componentes y la tarjeta de circui-to impreso. ¡En caso contrario, podrían deformarse o romperse!Pero este enfriamiento, sobre todo al principio, tampoco debe ser muy len-to. ¡Algunos componentes sólo pueden resistir un intervalo de tiempo máximo determinado por encima de una tem-peratura crítica!

Con o sin plomoLa pasta de soldadura obtenible se puede dividir más o menos en 2 gru-pos, según la composición de las bo-las de estaño. Aunque hasta aquí he-mos utilizado el término “estaño”, no

usan para fabricar aparatos domés-ticos, con la única excepción de la automoción. Pero en el laboratorio se siguen usando estas sustancias con plomo para producir prototipos. Mientras sigan vendiéndose, haremos como si tal cosa.

Nuevo proyectoTras la descripción del concepto “reflu-jo”, llega el momento de estudiar dete-nidamente el circuito controlador.Como queríamos hacer también para este proyecto un kit de montaje, resul-tó una buena ocasión para mejorar el proyecto original. En sí, la versión an-terior no estaba nada mal, pero hemos adaptado un poco la electrónica con motivo de nuestras propias experien-cias con la versión anterior y natural-mente las observaciones y críticas de nuestros lectores.Tras una sesión de ruegos y preguntas entre los usuarios, resultó que nadie usaba el puerto de serie. Este puerto permite ver el perfil de temperatura du-rante el proceso de reflujo en un pc. Así que en lugar de ello, sería más práctico poder ver esta curva en el visualizador de la electrónica de control.En el nuevo proyecto hemos eliminado el puerto de serie y la EEPROM. Y lo hemos sustituido por un visualizador de 2x16 caracteres para tener así un bonito visualizador gráfico. En cuan-to a costes, ha resultado ser un poco más económico y el producto final es un poco más bonito.Otra adaptación es la sustitución de los dos relés de estado sólido por re-lés convencionales. Esto también se ha hecho para ahorrar costes.

EsquemaEl esquema del controlador (figura 1)no ha cambiado mucho respecto al an-terior. El eje del circuito es el controla-dor IC1, un AT89S8253. Aquí funciona a una frecuencia de 12 MHz.K5 es un interfaz de programación, con lo cual es posible programar nuevo firmware en el controlador. Para ello basta un simple progra-mador. El controlador del kit ya está programado, por tanto para la mayo-ría de usuarios esta conexión no será muy interesante.La alimentación se hace a través de Tr1, D3, IC4 y IC5, más algunos com-ponentes circundantes para la amor-tiguación. Respecto a la alimentación, debemos mencionar también que el kit de montaje está disponible en 2

es totalmente correcto. El metal de la pasta de soldadura es una aleación de dos o más metales.En el caso de la pasta con plomo se trata en general de una aleación de es-taño y plomo (SnPb). Esta aleación tie-ne el punto de fusión a 183ºC.El segundo grupo, la pasta sin plomo, consta en general de una aleación de estaño, plata y cobre (SnAgCu). Por tanto no contiene plomo y el punto de fusión es más elevado. Hacia 217ºC esta aleación cambia a un estado más o menos fluido.Al soldar con este último grupo, la temperatura máxima de la soldadura por reflujo debe alcanzar aproximada-mente 240 ºC.En la pasta con plomo bastará con 220 ºC, a veces incluso basta con una temperatura máxima de 200 ºC. Esto no sólo nos ahorra tiempo, sino que también permite que los componen-tes sufran menos durante el proceso de soldadura.Conforme a las nuevas directivas RoHS las pastas con plomo ya no se

Figura 3. Vista del interior de la caja.

Los principales de Elektor

Page 24: E Book Los Principales de Elektor Es 1

912/2007 - elektor, electronics worldwide

versiones, una para 230 V y la otra para 115 V. La diferencia entre ambas versiones está en el transformador de red empleado.La tensión de red entra a través de K9. Esta tensión se conecta a través del relé Re1 y Re2 que a su vez se contro-lan a través de los FET T1 y T2. El hor-no se conecta en el conector K8.La medición de la temperatura se hace a través del termopar. Este se conecta a través de un cable y un jack telefóni-co en los puntos K1 y K2. IC2 se encar-ga de la medición real, este IC estable-ce la tensión del termopar para poder leer una temperatura absoluta a través de P2.0, P2.1 y P2.2 del controlador.La conexión de los pulsadores S1 a S6 es muy sencilla. Están directamen-te conectados con las entradas P1.2 a P1.7 del controlador. Hay que tener en cuenta que estas conexiones tam-bién deben utilizarse durante la pro-gramación. ¡Esto implica que durante la programación a través de K5 no se puede accionar ningún pulsador! La resistencia elevadora R2 se encarga de que la tensión en las entradas esté a 5 V en reposo.El LCD gráfico tampoco tiene sorpre-sas. Además del interfaz LCD habitual, se necesitan varios condensadores. To-dos juntos se encargan de la electróni-ca en el módulo LCD para las tensiones de ayuda requeridas.Los FET T3...T5 atacan los LED para la iluminación de fondo. En nuestro caso hemos elegido una iluminación RGB. Al atacar los 3 FET con una señal PWM, podemos darle el color que queramos a la iluminación de fondo.

¿Qué horno?Además del circuito de “Reflow-Con-trol” naturalmente necesitamos un horno para construir nuestro horno de reflujo. Este horno debe ser ne-cesariamente de tipo analógico, que esté provisto de un termostato me-cánico y un reloj mecánico. Además, la temperatura debe poder ajustarse como mínimo hasta 225 ºC, mejor un poco más.También es práctico que el horno sea lo más pequeño posible. En este caso la temperatura del horno podrá subir más rápidamente, y será suficiente con una potencia de unos 1,5 kW.Por regla general, cualquier horno para pizza o minihorno analógico de 1,5 kW servirá.En esta versión del “Reflow-Control” ya no hace falta modificar radical-mente el horno. Tan sólo habrá que

colocar un termopar dentro del hor-no. Esto se puede hacer perforando el lateral, o con una abrazadera en el interior. ¡Hay que vigilar que el ter-mopar esté derivado separadamente del horno!La 2ª intervención es la adaptación del enchufe. Debemos cambiar el cable de red eléctrica estándar por el cable de red eléctrica que suministramos. Éste lleva un conector hembra que se adap-ta a nuestro “Reflow-Control”.

Montaje y usoEl montaje del Reflow-Control es muy sencillo. El montaje se limita a atorni-llar los diversos componentes y a co-

nectar los conectores. El manual co-rrespondiente se suministra con el kit de montaje. También se puede descar-gar gratuitamente del sitio web de Ele-ktor. Asimismo, describe la puesta en marcha del horno de reflujo.

(060234)

Enlaces[1] : http://www.elektor.com

[2] : http://www.8052.com/visisp52/

Pasta de soldaduraAdemás de dividir la pasta de soldadura entre con plomo y sin plomo, en el mundo de las pastas hay otra división posible, basada en el fundente aplicado. El fundente puede ser quí-mico o bastante reactivo, con lo cual será necesario limpiar la tarjeta de circuito impreso tras la soldadura para eliminar el fundente que haya quedado en la tarjeta. También hay tipos de fundente que son más o menos conductores. ¡Así que atención!

Lo mejor es usar una pasta de soldadura en cuya etiqueta figure ‘No-Clean’. Esto no significa que el bote y/o el contenido no estén limpios, sino que el fundente aplicado puede dejarse sin problema en la tarjeta de circuito impreso. Esto no afectará a la tarjeta de circuito impreso y además el residuo no será conductor y no perturbará el funcionamiento del prototipo.

Otro punto de atención es el tamaño de las “bolas de estaño”. Cuanto más finas sean las bolas, mejor se podrán dosificar con una jeringa en la tarjeta de circuito impreso. Aquí rige la simple regla empírica: “¡Menos es más”!

CocciónLos componentes pueden coger humedad del aire. Durante el funcionamiento normal esto no es grave. Pero en el proceso de soldadura de reflujo puede dar problemas.

La temperatura del chip supera el punto de cocción del agua. Entonces, la humedad del chip formará vapor, con lo cual la presión del chip subirá considerablemente. La consecuencia de ello puede ser que el chip explote como consecuencia de este vapor.

Si los componentes han adquirido humedad, es posible sacarla de los chips calentándonos por unas horas hasta una temperatura de unos 80 ºC.

Esto es muy importante si se trabaja con pasta sin plomo. ¡La presión del vapor aumenta de forma cuadrática con la temperatura!

El Reflow-Control está equipado con una función especial con la que se puede llevar a cabo el proceso de cocción.

FirmwareEl firmware para este proyecto se puede obtener, como en la mayor parte de los proyectos de Elektor, gratis en el sitio web.

Como compilador se ha usado el C-compiler SDCC gratis.

Quien tenga deseos específicos, y quiere programarlos él mismo en el controlador, entonces además del compilador necesitará un programador.

Tenemos buenas experiencias con el software VisISP-52. El programador que tiene (se puede encontrar en el sitio web de visISP52 [2]) es fácil de montar en placa perforada.

Los principales de Elektor

Page 25: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO MANDO DE JUEGOS

30 elektor, la electrónica que sorprende - 09/2007

Tilt-Gamepad Von Xin Wang y Marko Westphal

Los controles intuitivos son la nueva moda entre los jugadores desde que llegaron las Nintendo Wii y las Sony PS3. La interacción directa sobre el juego, posible gracias a los controladores de la Nintendo Wii o del mando de la nueva PlayStation 3, con su función de inclinación, entusiasma a millones de usuarios. Sólo para quienes juegan en el PC no hay hasta ahora nada equiparable. El mando de inclinación, que presentamos en este proyecto, permite también a los jugadores de PC disfrutar de una vivencia interactiva con control intuitivo. El gamepad de inclinación es especialmente apropiado para juegos en donde se conduce o vuela, y para los de aventuras.

El Tilt-Gamepad es un mando de jue-gos con sensores de inclinación. Ya no es necesario presionar los botones de di-rección. Es suficiente inclinar el mando para dirigir los movimientos del objeto. Se emplea un sensor de acele-ración para determinar el mo-vimiento de inclinación. Para evaluar las señales de los sen-sores de inclinación se necesita un microcontrolador. La placa aquí utilizada emplea un sen-sor de Analog Devices y un AT-mega8 como microcontrolador. Con esta placa se puede trans-formar un gamepad común en un tilt-gamepad. Las señales di-gitales de movimiento emitidas por las salidas del microcontro-lador (arriba, abajo, izquierda, derecha) simplemente reempla-zan a las señales del botón de dirección del gamepad.

El sensorLa pieza central del tilt-gamepad es un sensor de aceleración ana-lógico que suministra una ten-sión de salida proporcional a la inclinación. Para el proyecto, se escogió el ADXL322 de Analog Devices. Este sensor de acelera-

ción, de dos ejes, trabaja con una ten-sión de operación de 2,4 V a 6 V. Cuen-ta con dos salidas analógicas, cada una con una resolución de 420 mV/90 gra-dos. El rango de medición está en ±2 g.

Dado que el sensor viene con un encap-sulado SMD CP-16, no se puede trabajar con un soldador convencional. Por esta razón, para este proyecto, la tarjeta se suministra con un sensor ya montado.

Tratamiento de la señalYa que el sensor dispone sólo de salidas analógicas, es necesario un microcontrolador con puerto ADC para el procesamiento di-gital de la señal del sensor. Para satisfacer las exigencias, se ha seleccionado el microcontrola-dor de 8 bits ATmega8 de AT-MEL. Cuenta con seis canales ADC de 10 bits y dos de 8 bits, al igual que con otros 13 pines de entradas y salidas. Los niveles de tensión suminis-trados por el sensor de acelera-ción (valores de inclinación X-/Y-) pasan directamente al puer-to ADC del microcontrolador y, a continuación, éste los digita-liza, procede a su filtrado y los prepara para la señal de control de salida. Las señales de salida emulan la función de los boto-nes de dirección. Los valores de X e Y se mues-trean alternativamente, la ten-

PC6 (RESET)1

PD0 (RXD)2

PD1 (TXD)3

PD2 (INT0)4

PD3 (INT1)5

PD4 (XCK/T0)6

VCC

7

GND

8

XTAL1

9

XTAL2

10

PD5 (T1)11

PD6 (AIN0)12

PD7 (AIN1)13

PB0 (ICP)14

PB1 (OC1A)15

PB2 (SS/OC1B)16

PB3 (MOSI/OC2)17

PB4 (MISO)18

PB5 (SCK)19

AVCC

20

AREF21

GND

22

PC0 (ADC0)23

PC1 (ADC1)24

PC2 (ADC2)25

PC3 (ADC3)26

PC4 (ADC4/SDA)27

PC5 (ADC5/SCL)28

IC1

ATmega8-16PI

X1

4MHz

C2

100n

C1

100n

C3

100n

C4

22p

C5

22p

GND

GND

GND

+5V

+5V

+5V

K1

GND

ST2

GND

3

GND

5

GND

6

Yout10

Xout12

Vs14

Vs15

GND

7

IC2

GND

070233 - 11

0

ADXL322

Figura 1. Aparte del sensor de aceleración y del microcontrolador, se necesitan pocos elementos.

Actualización del mando de juegos con sensor de aceleración

Tilt-Gamepad • 25 Los principales de Elektor

Page 26: E Book Los Principales de Elektor Es 1

3109/2007 - elektor, la electrónica que sorprende

sión de referencia de 2.56 V para el conversor A/D la produce el propio chip y se desacopla con el condensador C3 en el pin 21 (AREF). Los pines de E/S tie-nen capacidad para suministrar bastante corriente, lo que unido a la posibilidad de seleccionar resistencias de “pull-up”, implica que no requiere amplificadores adicionales para las señales de salida.

RealizaciónTal como lo indica el esquema de co-nexión de la Figura 1, el microcontro-lador necesita solamente unos pocos componentes adicionales. Igualmen-te claro es el diagrama de la pequeña placa de dos caras de la figura 2.El funcionamiento del software se ilus-tra en el diagrama de flujo de la Figura 3. El puerto ADC del microcontrolador se debe leer cada 10 milisegundos. A continuación, se convierte primeramen-te el valor de aceleración en inclinación y, después, éste se suaviza mediante un filtro. Dependiendo del sentido de la in-clinación y de su ángulo, se suministran los respectivos valores a las salidas que van hacia el gamepad.Las conexiones necesarias para la co-nexión al gamepad salen desde la re-gleta de conexión de seis polos K1. El suministro de energía se realiza direc-

tamente desde el interfaz USB (+5V y masa).

TransformaciónComo objeto de transformación, se nece-sita un gamepad común. En principio, se pueden transformar todos los gamepads que tengan botones de dirección activos a nivel bajo. Los autores, por ejemplo, utilizaron el mando “Firestorm Digital 3” de Thrustmaster y, en el laboratorio de ELEKTOR, se utilizó el “MAXFIRE G-08X4” de Genius. Para la transformación, aparte de la pla-ca montada y el mando, se necesita un cable de señal de colores y seis hilos y una pequeña cubierta de plástico para la protección de la placa montada. No de-bemos insertar al principio el microcon-trolador programado,. Se puede adqui-rir un microcontrolador ya programado o programar uno por cuenta propia. El código hex está disponible en la página web de ELEKTOR, como descarga gratui-ta. El código fuente no pudo ser propor-cionado por los autores por los derechos relacionados con la licencia.La transformación se inicia abriendo la parte trasera del gamepad, para lo cual se retiran todos los tornillos de la caja. A continuación, se debe averiguar dónde se encuentran las conexiones de +5 V y de masa. El método más sencillo es se-

C5

C1K1

IC1

C2

C3

IC2

C4

X1

Figura 2. La placa de dos caras ya cuenta con un sensor montado. El sensor, tipo SMD, se encuentra en la parte

inferior de la tarjeta.

Lista de componentesCondensadores:C1..C3 = 100 nC4,C5 = 22 p

Semiconductores:IC1 = Atmega8-16PI

(programado, EPS 070233-41*)IC2 = ADXL322

Varios:K1 = Tira de 6 pines.X1 = cuarzo de 4 MHzPlaca con ADXL322 montado (EPS

070233-8191, ver ELEKTOR y www.elektor.es)

*El código hex está disponible como des-carga gratuita en la web.

Tilt-Gamepad • 26 Los principales de Elektor

Page 27: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO MANDO DE JUEGOS

32 elektor, la electrónica que sorprende - 09/2007

guir el conductor USB. El Pin 1 es masa y, normalmente, es negro; el pin 4 es +5 V y, normalmente, es rojo. Procede-mos de igual manera con los otros cua-tro botones de dirección del gamepad. Bajo cada botón hay dos conexiones. Una de éstas casi siempre está conec-tada directamente a masa o a +5 V. En el Thrustmaster empleado como ejem-plo, cada botón tiene respectivamente una conexión a masa. La otra conexión conduce directamente al microcontrola-dor. En esta conexión, posteriormente, se soldará un cable que estará conectado a las salidas del microcontrolador, en K1 (pines 2 a 5) de la placa. En el caso de que en el mismo mando no haya su-ficiente espacio para montar la tarjeta (como en el “Firestorm Digital 3”), se la alojará en una pequeña caja pro-pia de plástico. Posteriormente, también en ésta, al igual que en la parte trasera del gamepad, se perfora un agujero de aprox. 5 mm de diámetro por el que se introducirá el cable.

caja de la placa, así como la del man-do, y se adhiere a la parte inferior de la caja del gamepad con un pegamento termofusible.

¡Eso es todo! No cambia mucho la for-ma de jugar, pero, con la nueva función intuitiva de inclinación, se presenta una sensación complemente nueva, sin nece-sidad de controladores adicionales...

(070233e)

Enlace de Internet:www.3dimotion.com (Website der Autoren)

Ha llegado el momento de conectar los seis cables entre K1 de la tarjeta del sen-sor y el gamepad. Los cables se sueldan en +5 V, en masa y en los botones de di-rección, en el lado del mando. En el lado de la placa del sensor se indica la asignación de conexiones de K1 en el diagrama de conexiones (figura 1). Los pines 1 y 6 sirven para la alimentación de corriente. Los pines de 2 a 5 son salidas digitales para los botones de dirección (el nivel bajo es el activo, el estado normal es el nivel alto).En la Tabla se ilustran claramente las co-nexiones que el cable de colores de 6 hilos establece entre K1 de la tarjeta y los puntos de conexión del mando. En la placa se pueden ver flechas junto a K1, que indican qué salida estará activa cuando uno mueva la placa en la direc-ción correspondiente.Ahora se puede instalar el controlador programado en el zócalo de la placa. Después, se cierra cuidadosamente la

System Init

Reset Timer

Start Timer

Output

070233 - 12

no

yes

yes

no

SelectADC Channel

Start ADC

Filter andCalculate

ADCReady

?

Timer = 10 ms?

Figura 3. Diagrama de flujo del software evaluador. La exploración de los valores del sensor se realiza cada 10 ms.

Tabla. Cableado entre K1 de la placa del sensor y gamepad con cable de colores de seis hilos

K1 Tierra Arriba Izquierda Abajo Derecha +5 V

Cable Negro Naranja Amarillo Verde Azul Rojo

Gamepad Tierra Arriba Izquierda Abajo Derecha +5 V

Tilt-Gamepad • 27 Los principales de Elektor

Page 28: E Book Los Principales de Elektor Es 1

Interfaz USB-R

Programa

48

SOBRE EL TERRENO MICROCONTROLADOR

elektor, la electrónica que sorprende - 10/2007

USBprogHerramienta universal de código abiertoDel licenciado en informática Benedikt Sauter, en colaboración con el doctor Thomas Scherer

¿Un nuevo microcontrolador y otra vez un programador nuevo? Hoy en día, los que se dedican a los controladores a menudo disponen de un arsenal de placas y adaptadores para la programación de diferentes chips. ¡El USBprog acaba con eso! Y como “extra“ se utiliza como interfaz USB-I/O y USB/RS232.

A Benedikt Sauter, el desarrollador de este proyecto, también le molestaba que casi cada microcontrolador re-quiriera un programa propio. Eso sig-nifica espacio innecesario y no es ni

económico ni ecológi-co. Además, muchos programadores sen-cillos de internet y productos comercia-les antiguos requie-ren interfaces que ya no tienen los PCs mo-dernos ni los portáti-les. También ocurre con los interfaces pa-ralelos de impresora, así como los interfa-

ces RS232 serie que se utilizaban an-tiguamente. Los periféricos tienen que ser obligatoriamente conectables con un USB. Para lo periféricos en serie ayudarían

convertidores serie/USB, pero a menudo son bastante lentos cuando el software también gestiona los cables de control de la interfaz en serie. La transmisión de algunos KBits a la memoria de un microcontrolador puede convertir-se en una prueba de paciencia de un minuto, algo que en el desarrollo de software y sobre todo en la depura-ción pone nervioso. Sin embargo, los buenos (es decir, “rápidos“) converti-dores en serie/USB cuestan un poco más que la herramienta multiusos de MacGyver que les presentamos a continuación [1] para el mundo de los microcontroladores.

¿Omnipotente?Teniendo en cuenta esta situación de partida, tenemos al alcance de la mano la posibilidad de solucionar to-dos esos problemas de una vez por todas. Y es realmente posible:

Como para conseguir una transmi-sión de datos más o menos rápida entre el USB y el sistema de destino no tiene sentido colocar al lado de un chip de interfaz compatible con USB un microcontrolador independiente que asuma la comunicación rápida con el microcontrolador a programar, se puede recurrir a un dispositivo efi-caz y utilizar un poco de inteligencia. Luego se pueden trasmitir los datos a la memoria del microcontrolador y éste se encarga luego del resto:

Características y funciones: - Interfaz USB- Software para Windows y Linux - Programador y depurador para procesadores AVR - Programador y depurador para procesadores ARM - USB para convertidor RS 3 sin driver- Interfaz JTAG- Interfaz USB-I/O (5 líneas)

IC2USBN9604

USB

IC1ATmega32

8 bit

paralelo

060224 - 12

serie

Bootloader

Firmware

Bus de 8 bits

Bus de 8 bits

serie

serie

PuenteUSB

USBprog

Figura 1. El diagrama de bloques del USBprog muestra la combinación de un puente USB con un microcontrolador.

USBprog • 28 Los principales de Elektor

Page 29: E Book Los Principales de Elektor Es 1

Win

dows & Linux

USBprog

Win

dows & Linux

USBprog Interfaz JTAG

RS232Interfaz USB-I/O

ador AVR Programador ARM

4910/2007 - elektor, la electrónica que sorprende

La simulación de un interfaz de pro-gramación y de la transferencia de datos al sistema de destino (véase figura 1). Pero será todavía mejor:

Este microcontrolador dispone de un cargador de arranque como progra-ma básico, así que con el software adecuado del PC se le pueden car-gar en todo momento en la memoria el firmware propio del microcontrola-dor directamente con el USB y sin un programador. Precisamente esa po-sibilidad ahora permite no sólo ac-tualizar el firmware con comodidad, sino que sirve de vehículo para la he-rramienta universal. Así se pueden guardar firmware con las diferentes funciones en el microcontrolador del

USBprog, que de ser un programador AVR pasa a ser un programador para el controlador ARM7/9 o en una in-terfaz de distribución USB. Y como el controlador que se utiliza en USBprog también lleva incorporado un UART, ¡también se añade la funcionalidad de un convertidor serial/USB gratis!

Código abiertoEl hecho de que el dispositivo más bo-nito sin software no es más que una pieza electrónica inútil es especialmen-te cierto para el concepto de USBprog. Sin un cargador de arranque adecuado y sin firmware apropiados para todas las funciones imaginables se confirma esta funesta teoría. El que te adviertan

de la posibilidad de escribir el software uno mismo tampoco ayuda mucho. Por supuesto, el desarrollador también lo tenía claro, por eso ofrece para descar-gar más que sólo los drivers necesarios para el funcionamiento del USB de IC2 y el cargador de arranque para IC1 en su página web del proyecto [2] y en www.elektor.com.

La tabla 1 muestra una lista de fir-mware adecuados, que se amplía con-tinuamente. Incluye datos muy intere-santes que convierten el USBprog en un clon del programador dentro del sistema MK2 de Atmel. Así, se puede utilizar sin problemas el entorno de de-sarrollo AVR-Studio que ofrece Atmel de forma gratuita y otro software que

Tabla 1. Los firmware disponibles en la página del proyecto (08/2007, se ampliará continuamente)

Nr. Firmware Descripción Estado

1 Clon AVRISP-MK2 Copia del AVRISP-MK2 original estable

2 Adaptador OpenOCD Adaptador para ARM7 y ARM9 beta beta

3 Programador AT89 Creado para el panel AT89S8252 de Elektor beta

4 SimplePort 8 I/O navegables mediante C, Python y Java estable

5 Adaptador JTAG Adaptador universal USB-JTAG con biblioteca C beta

6 Convertidor en serie/USB Convertidor USB/RS232 (¡funciona sin drivers!) adicionales!) pre-alpha

7 Clon JTAGICE-MK2 Copia del original JTAGICE mk2 Desarrollo (primeras funciones)

8 XSVF-USB-Player XSVF Player universal Concepto y texto fuente básico

9 Blink-Demo Blink-Demo sencilla (el LED brilla) estable

10 Programador PIC Basado en Odyssey para Linux y Windows Concepto y texto fuente básico

11 BDM-USB Interface Interfaz, depurador de 68 procesadores Concepto y estructura básica

12 MSP430-JTAG Interfaz para controlador de ahorro de energía de Texas Instruments Concepto y estructura básica

USBprog • 29 Los principales de Elektor

Page 30: E Book Los Principales de Elektor Es 1

50

SOBRE EL TERRENO MICROCONTROLADOR

elektor, la electrónica que sorprende - 10/2007

soporta el AVRISP-MK2.

Otro firmware permite programar y depurar un controlador ARM7 o ARM9 con ayuda del entorno de software OpenOCD [4]. También está pensa-do para su uso como convertidor se-rie/USB o como un interfaz sencillo de USB con diez I/O digitales. Además de la función obligatoria de programador con interfaz JTAG, en estos momentos

se produce en los proyectos de código abierto, a menudo demasiado alto, en la página web del proyecto hay dispo-nible software que no sólo puede reno-var el Atmega32, sino que apretando un botón en la página del proyecto se puede comprobar si han llegado nue-vos firmware para él y descargarlos dado el caso.

Todo ello existe no sólo para Windows,

se está trabajando la compatibilidad con más familias de controladores.

Todo el software se presenta (en la lí-nea de la mentalidad de código abier-to) como texto fuente abierto. Todo el mundo está invitado a ampliar el fon-do de posibles firmware por el bien de la comunidad. Ya existe un pequeño grupo de aficionados al USBprog. Sin embargo, para reducir el acceso que

Tabla 2. Distribución de las clavijas SV según los firmware utilizados.

Pin Nº ClonAVRISP-MK

AdaptadorOpenOCD

ProgramadorAT89 SimplePort Adaptador

JTAGConvertidorserial USB

ClonJTAGICE-MK2

K2 #1 MOSI TDO MOSI Port 1 TDO – TDI

K2 #2 VCC VREF VCC VCC VREF VCC VREF

K2 #3 – SRST – Port 2 SRST – –

K2 #4 – TRST – Port 3 TRST – –

K2 #5 Reset TMS Reset Port 4 TMS – TCK

K2 #6 – – – Port 5 – – –

K2 #7 SCK TCK SCK Port 6 TCK – TMS

K2 #8 – – – Port 7 – – –

K2 #9 MISO TDI MISO Port 8 TDI – TDO

K2 #10 GND GND GND GND GND GND GND

JP3 RX – SRST – Port 9 – RX –

JP3 TX – TRST – Port 10 – TX –

Y1

24MHz

C1

15p

C2

15p

GNDGND

GND

PC0PC1PC2PC3PC4PC5PC6

R31M

VCC

R1

10k

C4

100n

GND

1234

5 6

K1

GND

VUSB

R41k5

C5

1u

PD0PD1PD2PD3PD4PD5PD6

PC0PC1PC2PC3PC4PC5PC6PC7

VCC

GND

R2

10k

VCC

LED1 LED2

R5

274R

R6

274R12

345678910

K2

GND

MOSI

RSTSCKMISO

C8

100n

JP1

PC7

USB

060224 - 11

RESETPOWER

CS19

RD20

WR/SK21

INTR22

DRQ23

DACK24

A0/ALE/SI25

D0/SO26

D127

D228

D31

D42

D53

D64

D75

RESET6

AGND7

V3.38

D+9

D-10

GND

11

VCC

12

GND

13

MODE114

MODE015

XIN

16

XOUT

17

CLKOUT18

IC2

USBN9604SLB

D2

MBRS130T3G

VCC

JP3

GND

VCC

C11

100n

C3

1u

GND

PB0 (XCK/T0)40

PB1 (T1)41

PB2 (AIN0/INT2)42

PB3 (AIN1/OC0)43

PB4 (SS)44

PB5 (MOSI)1

PB6 (MISO)2

PB7 (SCK)3

RESET4

PD0 (RXD)9

PD1 (TXD)10

PD2 (INT0)11

PD3 (INT1)12

PD4 (OC1B)13

PD5 (OC1A)14

PD6 (ICP)15

PD7 (OC2)16

XTAL27

XTAL18

GND

6

PC0 (SCL)19

PC1 (SDA)20

PC2 (TCK)21

PC3 (TMS)22

PC4 (TDO)23

PC5 (TDI)24

PC6 (TOSC1)25

PC7 (TOSC2)26

AREF29

AVCC

27

PA7 (ADC7)30

PA6 (ADC6)31

PA5 (ADC5)32

PA4 (ADC4)33

PA3 (ADC3)34

PA2 (ADC2)35

PA1 (ADC1)36

PA0 (ADC0)37

VCC

5

VCC

17GN

D18

VCC

38

GND

39AG

ND28

IC1

ATmega32L-8MU

C7

1u

C6

100n

C9

100n

C10

100n

GND

JP4

R7

10k

AUX

JP2

D1

MBRS130T3G

VUSB

R8 100RR13100R R9 100RR15100RR14100R

R10 100RR11 100RR12 100R

PB0PB1PB2PB3PB4PB5PB6PB7

PB0

PB5PB4PB0PB7PB6

PB3PB1PB2

rot grϋn

Figura 2. El diagrama de circuito del USBprog no es mucho más complejo que el diagrama de bloques.

USBprog • 30 Los principales de Elektor

Page 31: E Book Los Principales de Elektor Es 1

5110/2007 - elektor, la electrónica que sorprende

también para Linux, y está pensada incluso una versión OS-X.

DispositivoLa figura 2 muestra el circui-to del USBprog. No es mu-cho más complicado que el diagrama de bloques. El cir-cuito completo se alimenta di-rectamente desde el conector del USB del PC, algo que con una toma de corriente general de menos de 100 mA es posi-ble sin problemas. D2 protege el PC que le da alimentación de posibles sobrecargas de tensión mediante el disposi-tivo cerrado de USBprog.

IC2 es un puente USB especializado que es lo bastante rápido para nuestro objetivo con un USB 1.1 “full speed“ compatible y su transmisión de da-tos basada en DMA. La frecuencia del cuarzo de 24 Mhz exterior se do-bla en el interior y se puede poner en CLKOUT con una frecuencia progra-mable, de manera que IC1 se vuelve cíclico, así que sobra un segundo cuarzo. La ma-yoría de firmware vuelven cí-clico IC1 con su máxima fre-cuencia de 16 MHz. IC1 e IC2 se conectan entre sí median-te algunos cables de control y un bus ancho de 8 bits. A las clavijas de las salidas parale-las K2 y de JP3 se les puede agregar según las necesida-des las funciones adecuadas (véase la tabla 2).

Si está introducido JP1, se puede controlar la transmi-sión de reinicio de IC1 des-de fuera mediante el pin 5 de K2, imprescindible para

la programación externa (cargador de arranque). Con JP2 se puede es-coger si hay que alimentar un dispo-sitivo cerrado K2 directamente de 5 V de la interfaz de USB o si el PC debe estar mejor protegido por D1. D1 y D2 son diodos Schottky por las mínimas caídas de tensión. JP4 está disponi-ble para fines personales, se podría

conectar, por ejemplo, un pul-sador adicional.

Estructura y cargador de arranqueComo el USBprog se hace con una placa de doble cara y al-gunos componentes SMD, se-guro que muchos lectores recurrirán encantados en la tienda Elektor al kit disponi-ble con la placa ya ensambla-da. Sólo hay que soldar los co-nectores. Quien tenga ánimo para hacerlo, también puede fabricarse su propia placa (fi-gura 3) con ayuda de los la-yout (descarga en www.ele-ktor.com) o pedirla en www.

thePCBShop.com y montarla comple-tamente a mano.

Tras haberla montado con éxito (figu-ra 5) se presenta un problema como el del huevo y la gallina: antes de poder escribir los firmware deseados en la memoria flash con comodidad con el USB, primero hay que guardar el car-

gador de arranque en IC1, que se puede hacer gracias al flash con USB. El puerto B de IC1 indica como segunda función las conexiones nece-sarias para la programación, y todas ellas se llevan a K2. Quien no pueda disponer de un programador AVR o tomar-lo prestado de un amigo o co-nocido, tal vez tenga acceso a un PC con una interfaz pa-ralela. Mediante esa interfaz de impresora se puede pro-gramar también IC1 con una conexión muy sencilla, rápida y unida [5]. El archivo “usbprog_base.hex“ se trasmite así con AVR-Studio, AVRDUDE u otro soft-

Lista de piezas Resistencias:R1, R2, R7 = 10 k, SMD 0603R3 = 1 M, SMD 0603R4 = 1k5, SMD 0603R5, R6 = 274 , SMD 0603R8...R15 = 100 , SMD 0603

Condensadores:C1, C2 = 15 p, SMD 0603C3, C5, C7 = 1 μ, SMD 0603

C4, C6, C8...C11 = 100 n, SMD 0603

Semiconductores:IC1 = ATmega32L-AU, QFP 12x12 (Atmel) IC2 = USBN9604SLB (National

Semiconductor)D1, D2 = MBRS130T3G, SMB DO214AA D3 = LED rojo, SMD 0603 D4 = LED verde, SMD 0603

Además:Q1 = Cuarzo, 24 MHz, HC49/4X1 = Conector USB, tipo B para montaje

en PCB K2 = Conector DIL de 10 pines, para mon-

taje en PCB JP1, JP4 = Conector SIL de 2 pinesJP2 = tira de 3 pinesJP3 = tira de 4 pinesPlaca 060224-1 (Layouts y pedidos en

www.elektor.com) Placa SMD montada con todos los compo-

nentes necesarios (060224-71, véase el escaparate de la tienda Elektor)

Figura 3. La placa de dos caras de tiene montaje SMD.

Figura 4. Una captura de pantalla de “usbprog-gui.exe” en Windows.

USBprog • 31 Los principales de Elektor

Page 32: E Book Los Principales de Elektor Es 1

52

SOBRE EL TERRENO MICROCONTROLADOR

elektor, la electrónica que sorprende - 10/2007

ware AVR al ATmega32. Además los fusibles se deben colocar según la tabla 3.

Una vez esté el cargador de arranque y los fusibles colocados, elUSBprog está disponible.

SoftwareComo ya hemos mencionado, hay una

versión con soporte gráfico “usbprog-gui.exe”, el driver correspondiente. Se conecta el USBprog a un interfaz de USB, el asistente de drivers de Windo-ws debería reconocer el USBprog y acti-var esos drivers automáticamente.

El software para Linux no se presenta como un programa ya compilado por la variedad de arquitecturas que existen. Como de costumbre, hay que descargar el archivo completo de software de [2] y pro-ceder como le indicamos a continuación:

1. Desempaquetar con “tar xvzf usbprog.tar.gz”.

2. Cambiar a la lista “usbprog”. 3. Preparar la compilación con la

orden “./configure” 4. Iniciar la compilación con la

orden “make”. 5. Instalar con la orden “make

install” (¡ejecutar como “root”!)

De momento no existe ningún progra-ma de flash USBprog para Mac, pero se puede utilizar un USBprog con flash como clon de AVRISP-MK2 con el pro-grama gratuito “AVRDUDE“ [6], un pro-grama de línea de mando para micro-controladores de AVR.

En la página web del proyecto [2] siem-pre están actualizadas las novedades en USBprog.

(060244e)

Enlaces

[1] MacGyver:www.hypediss.com/mac_gyver_multitool

[2] Página del proyecto: www.embedded-projects.net/usbprog und bei www.elektor.de

[3] AVR-Studio: www.atmel.com/avrstudio

[4] OpenOCD: http://openocd.berlios.de/web

[5] Programador paralelo: www.ixbat.de/index.php?page_id=188

[6] AVRDUDE: www.nongnu.org/avrdude/

[7] WinAVR: http://winavr.sourceforge.net/

[8] Yartago (entorno de desarrollo ARM):www.yagarto.de/

[9] Ficha técnica ATmega3: www.atmel.com/dyn/resources/prod_documents/doc2503.pdf

versión de línea de mando para Linux y Windows, así como un programa “co-rrecto“ para grabar en la memoria flash con comodidad de USBprog.

Para Windows hay en la página web del proyecto [2] un programa de instalación con la denominación “Installer.exe”. Cuando se ejecute este archivo en Win-dows se instalará, además de la versión de línea de mando “usbprog.exe” y la

Tabla 3. Fusibles aplicables al ATmega32

Nº Fusible Valor Descripción

1 BODLEVEL 1 Sin Brown-Out-Detection

2 BODEN 0 Sin Brown-Out-Detection

3 SUT0 0 Startup-Time = 6 CLK + 64 ms

4 SUT1 1 Startup-Time = 6 CLK + 64 ms

5 CKSEL3..0 0000 Tiempo externo

6 CKOPT 1 Tiempo externo

7 OCDEN 1 On-Chip-Debug disable – importante por el puerto C

8 JTAGEN 1 JTAG fuera

9 SPIEN 0 serial program download enabled

10 EESAVE 1 Chip erase apaga también EEPROM

11 BOOTSZ1..0 00 Boot start address = $3800

12 BOOTRST 1 Sólo en “usbprog_base.hex“ – si no BOOTRST = 0

Sobre el autor Benedikt Sauter es un apasionado desarrollador de software y hardware de código abierto, y en la página web del proyecto se ocupa de la ampliación y el fomento de las aplicaciones posibles con el USBprog.

Figura 5. Este modelo construido en el laboratorio Elektor corresponde ya casi a la producción en serie…

USBprog • 32 Los principales de Elektor

Page 33: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO EQUIPO DE TESTEO VEHICULAR

116 08/2007 - elektor, la electrónica que sorprende

Interpreta“códigos de

error” sin un ordenador

Folker Stange and Erwin Reuss

Este analizador portátil manual realiza el sencillo trabajo de “rebuscar” entre lainformación almacenada en la parte accesible al cliente del computador de nuestro coche.

El dispositivo funciona con todos los protocolos OBD-2 actuales y puede leer y borrar códigos de error almacenados en el vehículo, al mismo tiempo que puede reiniciar la pantalla MIL. Todo ello sin la

ayuda de un ordenador o de visitar el servicio técnico correspondiente.

Desde la llegada del nuevo milenio, cada vez más, los nuevos modelos de coche han sido equipados con la última versión de la interfaz de diagnostico de a bordo OBD-2. Con el incremento de la sofisti-cación en la gestión de los modernos mo-tores, muchos nuevos propietarios han visto los beneficios de un analizador OBD, de manera que rápidamente se ha con-vertido en una parte esencial del kit de herramientas de su garaje, junto con la llave de bujía y la llave dinamométrica.Se ha escrito que, algunas veces, cuando los propietarios instalan una nueva radio o sistema de navegación en su coche, el sistema de gestión del vehículo innecesari-amente registra un fallo, de forma similar a algunos propietarios que modifican el motor para poder usar un combustible al-ternativo y han notado que la gestión del

motor puede interpretar incorrectamente la nueva situación del motor y genera un error. En algunos casos la gestión del mo-tor puede llegar a convertirse en una con-dición de emergencia. Cualquier que sea la causa el resultado es el mismo: un MIL (indicador luminoso de mal funcionami-ento) montado en el salpicadero se en-ciende, se registra una condición de fallo y es necesario hacer una visita (cara) al taller más próximo para arreglar el “prob-lema” y reiniciar el MIL. Con el analizador OBD descrito aquí en nuestra guantera, es un trabajo sencillo conectar el equipo al conector OBD de nuestro coche, encontrar de qué problema se trata, reiniciar el error y continuar viaje. Pensando en el coste básico, sólo el precio del analizador estará más que recuperado si evitamos una úni-ca e innecesaria visita al taller del

distribuidor.En las revistas de electrónica ya han sido descritos un cierto número de analizadores OBD (incluyendo Elecktor), donde se de-scribe una interfaz entre el conector OBD del vehículo y un ordenador portátil. Sin embargo, la configuración que presenta-mos aquí es menos enrevesada. Esta uni-dad autónoma no requiere un ordenador portátil o una batería, reconoce todos los protocolos habituales OBD-2 o EOBD y es lo suficientemente pequeña como para guardarla en la guantera del coche. El manejo es bastante sencillo por medio de sólo dos botones, 580 de los códigos de los problemas más comunes se pueden reconocer y describir en su pantalla de texto.

Analizador OBD-2

Analizador ODB-2 autónomo • 33 Los principales de Elektor

Page 34: E Book Los Principales de Elektor Es 1

11708/2007 - elektor, la electrónica que sorprende

El circuitoEl analizador OBD-2 emplea un micro-controlador AT-90CAN128 de la familia AT mega128 de la casa Atmel. Este par-ticular modelo tiene equipado una interfaz para el bus CAN, tal y como se muestra en la Figura 1. El controlador se suminis-tra pre-programado con el programa in-terno (“firmware”) del AGV 4900, el cual maneja la interfaz de usuario, incluyendo botones, timbre, diodos LEDs y pantalla LCD. La asignación de terminales en el conector OBD-2 se muestra en la Figura 2. Para poder soportar todos los protocolos OBD-2 actuales, el analizador necesita poder conectarse a var ios in ter faces bidireccionales:

• Interfaz K/L • Interfaz PWM • Interfaz VPWM • Interfaz CAN

Los primeros tres de esta lista han sido implementados en el esquema eléctrico del circuito (Figura3) usando transistores y comparadores configurados para adaptarse a las interfaces estándar. Las resistencias especificadas de “pull up” para la señales K y L tienen una impedan-cia relativamente baja, por lo que los tran-sistores MOSFETs se han usado aquí como controladores. El circuito integrado contro-lador del bus CAN es del tipo PCA

82C250 y se ocupa de la interfaz CAN.El programa de la interfaz de usuario ha sido diseñada, lógicamente, de modo que sólo se necesiten dos botones para mane-jar el analizador y seleccionan todas las posibles opciones del menú. Las conex-iones para el zumbador, los diodos LEDs de “conect” (conectado) y “Data Traffic” (tráfico de datos) no deberían requerir más explicaciones. El control de la pan-talla LCD de tres líneas es un poco más complejo. Así, una interfaz SPI de cinco hilos conecta la pantalla al controlador. El diodo LED de iluminación de fondo aseg-ura que la pantalla es legible de noche. La velocidad relativamente baja del reloj del controlador (8 MHz) tiene un buen com-promiso entre la producción de un nivel bajo de emisiones EMI y una amplia ve-locidad de operación para esta aplicación.

2 autónomoISO/KWP

16 x 3 LCD DISPLAY

CAN

conector

070038 - 12

VPWM

PWMAGV4900

escáner portátil

BA

Figura 1. Diagrama de bloques del analizador OBD-2.

161515

+12 V

L-LineK-Line

CAN-H

S-GND

C-GND

PWM+VPWM

CAN-L

PWM-

1413

1211

109

87

65

43

21

070038 - 14

Figura 2. Identificación de terminales en el conectorOBD-2 / EOBD.

Especificaciones• Selección automática o manual del protocolo OBD-2.

• Búsqueda automática muy rápida del protocolo (de 0,1 a 2,6 s por protocolo)

• Secuencia de arranque de programa muy rápida (listo para trabajar un segundo después del encendido).

• Lee y muestra información importante sobre el vehículo (dependiendo del coche).

• Lectura de sensores en tiempo real (seleccionable).

• Muestra el número de chasis del vehículo (si es soportado por el fabricante del vehículo).

• Lee y muestra el código de error almacenado en memoria.

• Lee y presenta en pantalla el dato de captura de trama.

• Borrado del código de error de la memoria.

• Selección de idioma (Inglés o Francés).

• 580 códigos de error con descripción de los mismos en texto deslizante.

• Están soportados todos los protocolos OBD existentes para vehículos privados:

ISO9141-2

ISO14230-4 (KWP2000)

J1850 PWM

J1850 VPWM

ISO15765-4 (CAN, 11/29 Bit, 250/500 kbits/s)

• La alimentación para el analizador se suministra del conector OBD-2 del vehículo (12 V).

• Pantalla LCD de tres líneas con iluminación de fondo y contraste ajustable.

• Señal acústica que proporciona unos tonos audibles cuando se reconoce un código de error.

• Diodos LED indicadores del estado de la conexión y del flujo del tráfico de datos.

• Funcionamiento sencillo utilizando tan sólo dos pulsadores.

• Conexión por medio de un cable OBD-2 estándar.

• Formato manejable y portátil: 80 x 135 x 30 mm (ancho x alto x fondo), peso 150 g (aprox.).

• Suministrado como KIT a través de Elektor SHOP.

Puntos a señalarEl analizador OBD sólo es adecuado para vehículos equipado con un conector OBD-2/EOBD.

El conector EOBD se monta sobre vehículos vendidos en la Unión Europea:

· Después del 01 / 01 / 2001, para vehículos con motor de gasolina.

· Después del 01 / 01 / 2004, para vehículos con motor de gasoil.

Antes de conectar el analizador a ningún vehículo fabricada antes de estas fechas, es importante verificar la compatibilidad de dicho vehículo con el estándar OBD-2. La página web de Florian Schäffer [3] contiene una base de datos de vehículos donde podemos comprobar si el nuestro es compatible con el estándar OBD-2.

Analizador ODB-2 autónomo • 34 Los principales de Elektor

Page 35: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO EQUIPO DE TESTEO VEHICULAR

118 08/2007 - elektor, la electrónica que sorprende

El programa internoEl corazón del analizador OBD-2 es el mi-crocontrolador pre-programado con la designación AGV4900 [1] disponible sola-mente en la casa Stange Distribution. El programa ha sido desarrollado por el co-autor Erwin Reuss. Como otros proyectos similares OBD, el programa interno (“firmware”) para este analizador sólo está disponible pre-programado dentro del propio microcontrolador donde es copia protegida. El fichero fuente no está dis-ponible para su descarga. Sin esta protec-ción de copia del programa no sería posi-ble ofrecer el analizador en forma de kit. No hay posibilidad para el montador casero de ensamblar una versión de bajo coste de este diseño a menos que, por su-puesto, toda la programación necesaria sea escrita desde cero.Una opción del menú cambia toda la in-formación de la pantalla entre inglés o francés (por el interés de nuestros lectores

Se ha prestado atención al diseño de la Placa de Circuito Impreso (PCI) (Figura 4); no se han usado componentes SMD para este diseño para simplificar el mon-taje de componentes. La PCI ha sido pro-ducida siguiendo la norma industrial y us-ando tarjetas tipo FR4 con un chapado de oro. El oro es químicamente inerte y da a la tarjeta vida casi ilimitada. El chapado también asegura que no habrá problemas de corrosión, algo que sí se puede pro-ducir cuando se usan soldaduras sin plo-mo en placas sin este chapado. El oro tiene unas excelentes propiedades de con-servación y permite el uso tanto de solda-duras libres de plomo como de soldaduras de plomo/estaño. Además de la necesi-dad de cuidar la colocación de compo-nentes y las soldaduras, no es necesaria una especial destreza en electrónica o en el dominio de la programación para com-pletar este proyecto.Aparte de los dos diodos LEDs “connect”

canadienses). La casa Stange Distribution está especializada en el equipo OBD co-mentado y producen varios controladores OBD-2 para aplicaciones en el campo del desarrollo ODB.Todas las funciones del analizador OBD pueden seleccionarse desde el menú us-ando tan sólo dos teclas. Una característi-ca del programa es el rápido proced-imiento de arranque, el cual asegura que el aparato está preparado para su uso en poco más de un segundo tras su encendi-do. Los 580 códigos de errores más im-portantes tienen un claro texto descriptivo del fallo, el cual se indica en texto desli-zante (en el lenguaje seleccionado). Esta característica ayuda dando una rápida y efectiva diagnosis del problema. En la gran mayoría de los casos no será necesa-rio buscar el código en un libro de códigos de errores OBD.

Colocación de todos los bits juntos

K2

1

2

3

4

5

6

7

8

9

PCA82C250

IC4

CANH

CANL

VREF

TXD

RXD

RS5

6

3

2

1

4

7

8

Q1

8MHz

C5

22p

C4

22p

C10

100n

+5V

LED1 LED2

R1

1k

R12

1k5

+5V

S1 S3

RN2

10k

8

7

R8

100

R7

100

C7

470p

C6

470p

+5V

R9

33

+5V

BZ1

F/CM12P

R5

33

D2

1N4148

EA DOG-M163ELCD

CAP1N CAP1B

VO

UT

VC

C

RS

T

R/W VIN

GN

D

PS

B

CSB

26 40 37 36 25 24 35

D0

34

D1

33

D2

32

D3

31

D4

30

D5

29

D6

28

D7

A120

A2

C119

C2

27 23

38

39RS

21

E

1

2

3

Q6

BS170

6

7

1IC2.B

4

5

2IC2.A

10

11

13IC2.D

8

9

14IC2.C

RN2

10k

4

3

RN2

10k

6

5

RN3

6k8

3

4

RN2

10k

10

9

12

RN2

10k

Q7

BS250D4

1N4148

+8V +5V

Q5

BS170

(OC3C/INT5)PE5

(OC3B/INT4)PE4

(OC3A/AIN1)PE3

(XCK0/AIN0)PE2

PD2(RXD1/INT2)

PD3(TXD1/INT3)

PB7(OC2/OC1C)

PF7(ADC7/TDI)

PF6(ADC6/TDO)

PF5(ADC5/TMS)

PF4(ADC4/TCK)

(IC3/INT7)PE7

PD0(SCL/INT0)

PD1(SDA/INT1)

(T3/INT6)PE6

(RXD/PDI)PE0

(TXD/PDO)PE1

PG4(TOSC1)

PG3(TOSC2)

AT90CAN128

PB6(OC1B)

PB5(OC1A)

PB3(MISO)

PB2(MOSI)

PF3(ADC3)

PF2(ADC2)

PF1(ADC1)

PF0(ADC0)

(XCK1)PD5

PG2(ALE)

PB4(OC0)

PB1(SCK)

(AD7)PA7

(AD6)PA6

(AD5)PA5

(AD4)PA4

(AD3)PA3

(AD2)PA2

(AD1)PA1

(AD0)PA0

(A15)PC7

(A14)PC6

(A13)PC5

(A12)PC4

(A11)PC3

(A10)PC2

(IC1)PD4

PG1(RD)

PG0(WR)

PB0(SS)

(A9)PC1

(A8)PC0

(T2)PD7

(T1)PD6

RESET

XTAL1 XTAL2

IC3

AG

ND

AV

CC

AREF

VC

C

VC

C

GN

D

GN

D

PEN

20

24 2363

64 52 21

53 22

19

18

43

34

33

17

16

15

14

13

12

11

10

54

55

56

57

58

59

60

61

44

45

46

47

48

49

50

51

42

41

40

39

38

37

36

35

25

26

27

28

29

30

32

31

62

1

9

8

7

6

5

4

2

365

RN1

10k

109

RN1

10k

RN1

10k

3

4

Q8

BS250D5

1N4148

RN1

10k

8

7

56

RN3

6k8

+5V

RN3

6k8

2

1

Q3

Q4

BS170

RN3

6k8

8

7

RN1

10k

2

1

R4

100k

R3

100k

R11

560

R6

560

+12V +5V

D1

1N4004

+12V

IC2IC2 = LM339N12

3

+12V

C1

100n

C2

100n

C3

100n

7805

IC5

78L08

IC1

+8V

+5V

070038 - 11

2x

K-Line

L-Line

CAN-H

CAN-L

PWM-Interface

VPWM-Interface

CAN-Interface

K/L-Interface

K OUT

L OUT

KL IN

PWM+ OUT

PWM- OUT

PWM IN

VPWMIN

VPWMOUT

PWM-

PWM+VPWM

+12V

red green

AGV4900

Figura 3. El microcontrolador AVR, con la interfaz CAN incorporada, es la parte principal del esquema eléctrico del circuito.

Analizador ODB-2 autónomo • 35 Los principales de Elektor

Page 36: E Book Los Principales de Elektor Es 1

11908/2007 - elektor, la electrónica que sorprende

(conectado) y “data-trafic” (tráfico de da-tos), los dos botones pulsadores y la pan-talla LCD, todos los demás componentes se montan en el lado impreso de la PCI, donde se aporta la forma de los compo-nentes y su identificación (Figura 5). El montaje de componentes comienza con la soldadura de cada una de las resistencias en su lugar, seguido por los diodos, los condensadores, el cristal de cuarzo, los zó-calos para los circuito integrados, las re-des de resistencias (debemos asegurarnos de que los estamos montando de forma correcta), el regulador de tensión y, por último, los transistores. Antes de soldar los terminales del circuito integrado 7805 de-berá fijarse primero de forma mecánica a la placa. Una vez que el timbre y el conec-tor sub-D están fijados en la tarjeta, po-demos dar la vuelta a la placa y soldar en su lugar los pulsadores, la pantalla y los diodos LED.Por desgracia, el circuito integrado AT-

Figura 4. La Placa de Circuito Impreso (PCI) está libre de componentes SMD.

Lista de componentesResistorsRR1 = 1kR3,R4 = 100kR5,R9 = 33R6,R11 = 560R7,R8 = 100R12 = 1k 5RN1,RN2 = 10k matriz SIL de 10

resistenciasRN3 = 6k 8 matriz SIL de 8 resistenciasCondensadoresC1,C2,C3,C10 = 100nFC4,C5 = 22pFC6,C7 = 470pFSemiconductoresD1 = 1N4004D2,D4,D5 = 1N4148IC1 = 78L08IC2 = LM339NIC3 = AT90CAN128 (de la casa Atmel, en-

capsulado QIL, programado como “AGV 4900”).

IC4 = PCA82C250 (Philips)IC5 = 7805LED1 = 3mm, rojo

LED2 = 3mm, verdeQ3-Q6 = BS170 (TO92)Q7,Q8 = BS250 (TO92)VariosQ1 = Cristal de cuarzo de 8 MHz (HC49/S)LCD = Pantalla de 3 x 16 líneas, tipo

EA DOGM163E; con luz de fondo: EA LED55X31-A

S1 – S3 = Pulsador para montaje en PCI tipo 40-XX B3F (Omron) con tapa de aluminio adaptada

SG1 = Zumbador DCX2 = Conector Sub-D de 9 terminales macho

para montaje en PCIZócalo = DIL de 14 terminalesZócalo = DIL de 8 terminalesZócalo = QIL (4 segmentos de 16 terminales)PCI = Caja con lámina de serigrafía para el

panel frontal.Materiales de montaje

NOTA: el KIT de montaje Nº 070038-71 con-tiene todos los componentes, la caja (con la lámina de serigrafía para el panel frontal montada), los materiales de montaje y el cable OBD-2. Vea la nota de publicidad en Elektor SHOP o visite la página web www.elektor-electronics.co.uk

Los principales de Elektor Analizador ODB-2 autónomo • 36

Page 37: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO EQUIPO DE TESTEO VEHICULAR

120 08/2007 - elektor, la electrónica que sorprende

90CAN128 de la casa Atmel usado en este proyecto sólo está disponible en el en-capsulado TQFP o en el MLF/QFN, y nin-guno de estos es realmente adecuado para proyectos de auto-montaje. Por lo tanto, el controlador es suministrado (en encapsulado MLF) ya montado en una pequeña tarjeta. Sólo es necesario montar una especie de zócalo intermedio, pre-parado para conectar la tarjeta a la PCI principal. La distribución de terminales de este conector es el mismo que el de un encapsulado QIL64 (cuatro bloques de 64 terminales en línea). Todos los componen-tes para este conector están incluidos en el kit. Para asegurar el éxito del montaje será necesario seguir las instrucciones cuida-dosamente, un error aquí será difícil de corregir.El conector completo está hecho de cuatro tiras (Figura 7) fijadas a la PCI principal. Cada tira se fija en su lugar inicialmente soldando sólo un terminal de cada una de las tiras. Esto permite que la disposición

también todas a la misma altura de la tar-jeta) todos los terminales que quedan pueden ser cuidadosamente soldados has-ta completar el conector.Vamos a montar ahora la pequeña placa que monta el controlador, que será fijada sobre unos terminales que se instalan so-bre este conector. Las tiras de terminales suministradas deben separarse cuidadosa-mente en trozos de 8x2 terminales. Cualquier esquina rugosa puede reba-jarse con una lima fina. Las tiras se intro-ducen totalmente en el conector, tal y como podemos ver en la Figura 8a (és-tas sólo se fijan por un lado: los terminales más finos van dentro del conector).La tarjeta del controlador puede colocarse ahora sobre los terminales que sobresalen (Figura 8b), asegurándose que el pin 1 está correctamente alineado (a la izquierda de C10). Una vez montado todo correcta-mente, podemos ahora, cuidadosamente, soldar los 64 terminales de la tarjeta del controlador (Figura 8c).

final del conector en su conjunto sea fácil-mente ajustable, hasta que cumpla exact-amente al dibujo marcado en la placa.Una vez que las cuatro tiras están alinead-as con precisión (verificaremos que están

Figura 5. Cara de componentes de la PCI. Figura 6. Los dos pulsadores, los diodos LEDs y la pantalla LCD se montan sobre la otracara de la PCI

Figura 7. El conector para la placa del controlador está hecho de cuatro secciones independientes.

Analizador ODB-2 autónomo • 37 Los principales de Elektor

Page 38: E Book Los Principales de Elektor Es 1

12108/2007 - elektor, la electrónica que sorprende

Una vez que todos los componentes se han fijado, podemos hacer un pequeño test conectando una alimentación de 12 V al conector sub-D (terminal 9 = +12 V, terminales1 ó 2 = 0 V). La corriente con-sumida por el analizador no debería ex-ceder de unos 150 mA. La pantalla con iluminación de fondo se encenderá y el número de la versión de ar-ranque cargada aparecerá en la pantalla, seguida del mensaje de bienvenida. La corta prueba inicial ya está completada.Una vez terminada la PCI, po-demos montarla en su caja: fi-jaremos los tapones de los pul-sadores y la caja del conector sub-D, quitaremos la película de protección de la pantalla y, con la pantalla hacia abajo, colo-caremos la PCI sobre la tapa frontal de la caja. Ahora podem-os atornillar cuidadosamente los pequeños tornillos, dejándolos bien apretados. Por último, fija-mos la otra mitad de la caja y el Analizador OBD-2- queda pre-parado para trabajar.

Funcionamiento del analizadorEl primer requerimiento antes de que el analizador OBD-2 pueda usarse es que el coche esté do-tado del correspondiente conec-tor OBD-2 (ver el apartado “Puntos a Señalar”, dentro de este artículo). Si es así, el cable OBD-2 suministrado se conecta en el conector OBD-2 del coche. El conector no debería ser de-masiado difícil de colocar, la norma insiste en que debe estar montado en el vehículo, a un

metro de distancia, como máximo, del asiento del conductor. En la página web www.elektor-electronics.co.uk podemos encontrar y descargar un conciso manual de operación para el analizador. Con el kit de todos los componentes también se entrega un pequeño manual, de modo que no debería haber problemas con es-

tos puntos. En nuestra página web tam-bién hay un simulador on-line, de modo que podamos familiarizarnos “de forma virtual” con el funcionamiento y manejo del analizador. Al conectar y encender el equipo, es posi-ble cambiar el contraste de la pantalla (Figura 9a). Esto se consigue mantenien-

do pulsadas las teclas A y B y conectando el analizador en el conector OBD-2. El contraste cambia cada vez que se presione la tecla A. Una vez que estemos conformes con el ajuste, solta-mos la tecla A y presionamos la B para grabar la configuración. Este método básico se usa para controlar el analizador: con la te-cla A nos movemos a través de las opciones del menú, mientras que con la tecla B confirmamos una selección o damos una re-spuesta desde el equipo. La pantalla muestra ahora el mensaje de bienvenida “ELE-KTOR OBD2 1.4” con el menú de arranque (Figura 9b) con-tinuando, un corto periodo de tiempo después, con las op-ciones: Start Diag (Inicio del di-agnóstico), Protocol (Protocolo) y Language (Idioma). Cuando el analizador se usa regularmente en el mismo vehículo y estamos seguros del protocolo adecuado, podemos seleccionar la opción “código 0” para que el analiza-dor encuentre automáticamente el protocolo correcto. Presionan-do la tecla B comienza la búsque-da (si la interfaz del vehículo no es compatible con el protocolo OBD el test finaliza con un men-saje de fallo). Cuando el proceso de búsqueda ha finalizado, la

Figura 8. Tres sencillos pasos para montar la placa del controlador.

Figura 9. Presentaciones en pantalla: (a) ajuste del contraste, (b) menú inteligente, (c) presentación del estado, (d) Menú PID MIL / DTC, (e) número de código DTC de avería.

a

b

c

d

e

cba

Analizador ODB-2 autónomo • 38 Los principales de Elektor

Page 39: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO EQUIPO DE TESTEO VEHICULAR

122 08/2007 - elektor, la electrónica que sorprende

pantalla mostrará el estado del MIL/DTC, indicando si hay algún problema almace-nado en memoria (Figura 9c). Seleccio-nando la opción Live Data con el botón B se mostrará el valor actual del parámetro. El número de chasis o el Identificador (ID) del vehículo puede leerse y se mostrará el protocolo de comunicaciones, así como la opción volver a buscar.En la opción de menú PID (parámetro identificador) se da la lectura actual de un sensor (datos en vivo). El ejemplo mostra-do en la Figura 9d es una lectura del consumo de Flujo de Masa de Aire (MAF en g/s). Presionando la tecla B volvemos al menú anterior. Cuando se detecta un fallo por el sistema de gestión del motor, el analizador indicará que el MIL está ac-tivado (MIL:ON), y se proporciona el número de DTCs almacenado (Disgnostic Trouble Code, es decir, Código de Fallo de Diagnóstico) (Figura 9e). Ahora podemos elegir entre presentar los códigos de fallos o las tramas de datos capturadas. Para los códigos de fallo, el número de código se indica (en la mayoría de los casos) con una descripción detallada del fallo (Figu-ra 10). Cuando se muestra el código del fallo, al presionar la tecla A aparece una opción para borrar los códigos de la memoria del vehículo.Podemos obtener más información acerca del fallo seleccionando “Freeze Frame” (capturar trama). Cuando el sistema de

través de sucesivos parámetros mientras el botón B vuelve al menú anterior.El manual de usuario, que se puede des-cargar de Internet, contiene vistas gene-rales de todas las opciones del menú, se-lecciones y mensajes de pantalla. Cuando queramos una mayor familiaridad con el funcionamiento del equipo, podemos pro-bar el simulador online mencionado ante-riormente, o mejor aún, ¡haz tu pedido y construye tu propio analizador OBD-2!. También podemos descargar un fichero extra que contiene consejos de soldadura y ensamblaje, desde la página web de Elektor.

(070038-I)

Literatura[1] Datasheet for the AGV4900-Controller:

www.obd-diag.de

[2] Source of the AGV microcontroller: www.stange-distribution.de

[3] http://www.blafusel.de/misc/OBD-2_scanned.php

gestión del motor detecta un fallo, el orde-nador de a bordo realizará una captura de una imagen o “congelará la trama” de todos los sensores leídos y almacenará todo en la memoria del vehículo. Un chequeo de este dato puede dar una valoración de la causa del fallo. Al seleccionar los códigos de fallo de la trama capturada, es posible seleccionar sucesivos valores de sensores, almacenados en torno al momento en que se produjo el fallo. El ejemplo de la Figura 11 indica la lectura de un sensor cuando se registró el fallo; fal-lo F000, un PID 0D (velocidad) medido de VSS = 33 km/h. El botón A nos lle-va a

errores encontrados:2 de 4

código de error 2

descripcióndel error 2

selecciona el error 3con el botón B

070038 - 13

Figura 10. Menú con el código de avería que muestra una descripción de la misma en un texto que se desplaza.

Figura 11. Menú con la trama capturada (PID seleccionado).

elektor, la electrónicaAnalizador ODB-2 autónomo • 39 Los principales de Elektor

Page 40: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO ANALIZADOR

26 elektor, la electrónica que sorprende - 09/2007

Ronald de Bruijn

InspectorDigitalAnalizador lógico de cuatro canales

El analizador lógico es indispensable para comprobar las señales digitales, especialmente hoy en día que cada vez más circuitos están dirigidos por microconntroladores. En este artículo presentamos un circuito fácil de

montar que sabe como manejar perfectamente compatible con la mayoría de señales digitales a la perfección y además dispone de una función de memoria.

Para controlar comprobar las señales digitales, se utiliza un analizador ló-gico. A veces es práctico poder ha-cerlo in situ, sino o si debe hacerse una ‘medición flotante’. El analiza-dor lógico de 4 canales que presen-tamos a continuación es ideal para eso ello gracias a su compacidad y la alimentación por pilas. La velocidad de muestra muestreo asciende como máximo a 2 MHz y el circuito dispo-ne de suficiente memoria para alma-cenar temporalmente 1024 muestras de la señal. La pantalla gráfica de 64 x 128 píxels reproduce claramente las señales lógicas.

EsquemaLa pieza principal del circuito es el IC2 (un PIC18F4850, véase figura 1). Este controlador PIC examina las se-ñales y gestiona el visualizador. Se

maneja con cinco bo-tones pulsadores (S1...S5). El cristal (X1) de 10 MHz determina en gran

medida la frecuencia de muestraeo más elevada posible. El PLL interno del microcontrolador está conectado-se utiliza para entregar al controlador una frecuencia de reloj interno de 40 Mhz, con lo cual el controlador funcio-na con una velocidad del reloj interna de 40 MHz, la velocidad máxima que recomienda Microchip para este tipo de integrados.En la entrada, los D1 a D8 protegen con-tra tensiones negativas o demasiado altas o demasiado bajas. Las señales de entrada pasan a través del IC1, un 74HC04N que se utiliza como buffer. Si por elloDe echo la señal se invierte, pero no importa en este caso. Lo podemos co-rregir con el software. Luego, las seña-les entran directamente en el controlador por RA1...RA4, y luegodonde el software se ocupa de ello ellas (zie Bediening).Con P1 podemos establecer el contraste de la pantalla y con T1 encender la su

iluminación de fondo de la pantalla. BZ1 da un aviso acústico cuando se inicia un nuevo ciclo de muestra y cuando se conmuta del modo run al modo hold.Los cinco interruptores utilizados para el manejo control no requieren circuitería de eliminación de vibraciones rebotes, ya que el software se encarga de ello. a través del hardware. Se hace con el software.La alimentación del circuito consta de dos partes: una tensión estabilizada a 5 V y una tensión de 9 V para la ilumi-nación de la pantalladel visualizador. La fuente de alimentaciónde que su-minstre estas tensiones puede ser un adaptador de red de 9 a 12 V o una batería de 9 V.También dispone de un sencillo circuito de carga simple integrado para la ba-tería (T2, R1, R17, D12) que se pone en marchaconecta en cuanto se conecta un adaptador de red. Partiendo de un LED estándar con una tensión directa Vf de 1,5 V, la batería se carga con: (1,5-0,6)/56 = 16 mA. Así, una batería de NiMH de 9V de 170 mA se carga aproximadamen-

EspecificacionesFrecuencia de muestra: 200 Hz a 2 MHzNúmero de canales: 4Rango de medición: de 0 a 5 VMemoria: 1024 muestras por canalEstado de activación: + y –Patrones de activación: a establecer para cada entradaLCD gráfico: 64 x 128 píxelsAlimentación: batería de 9 V

Inspector Digital • 40 Los principales de Elektor

Page 41: E Book Los Principales de Elektor Es 1

2709/2007 - elektor, la electrónica que sorprende

X1

20MHzC2

22p

C1

22p

+5V

R16

10k

R13

10k

R14

10k

R15

10k

K2

060092 - 11

T1

BC337

R19

1k

R21

220

BZ1

R2

10k

R20

47

+5V +9V

20k

P1

+5V

LC

DIS

PL

AY

9 81

IC1.D

R9

100k

R5

330CH4

5 61

IC1.C

R10

100k

R6

330CH3

3 41

IC1.B

R8

100k

R4

330CH2

1 21

IC1.A

R7

100k

R3

330CH1

R12

10k

R11

10k

D5

1N4148

+9V

D8

1N4148

D4

D7

D1

D2

D3

D6

+5V

C5

100n

IC1

14

7

C6

100n

+5V

K3

2

3

1

D11

1N4004

R1

680

D12R17

56

T2

BC337

BT1S6

C3

100n

C4

100n

7805

IC3

9V

+9V

+5V

12V

4x

4x

11 101

IC1.E

13 121

IC1.F

+5V

S4

S3

S2

S1

S5

D9

D10

1N4148

RD4/PSP4/ECCP1/P1A

RA5/AN4/SS/HLVDIN

RB0/INT0/FLT0/AN1

RC0/T1OSO/T13CKI

RE1/WR/AN6/C1OUT

RE2/CS/AN7/C2OUT

RD0/PSP0/C1IN+

RD1/PSP1/C1IN-

RB2/INT2/CANTX

RD2/PSP2/C2IN+

RD3/PSP3/C2IN-

PIC18F4580-I/P

RA3/AN3/VREF+

RA2/AN2/VREF-

RA0/AN0/CVREF

MCLR/VPP/RE3

RB1/INT1/AN8

RB7/KBI3/PGD

RB6/KBI2/PGC

RB5/KBI1/PGM

RB4/KBI0/AN9

RD7/PSP7/P1D

RD6/PSP6/P1C

RD5/PSP5/P1B

RC3/SCK/SCL

RC4/SDI/SDA

RE0/RD/AN5

RC1/T1OSI

RA4/T0CKI

RC7/RX/DT

RC6/TX/CK

RB3/CANRX

RC2/CCP1

RA1/AN1

RC5/SDO

IC2

OSC1 OSC2

11

15

40

39

38

37

35

36

34

33

3112

10

32

16

17

18

19

20

21

22

13 14

26

25

24

23

30

27

28

29

1

3

2

4

6

5

7

8

9

2x

IC1 = 74HC04

te con 1/10 C, de modo que la car-ga continua no cause daños. La ba-tería se carga en unas 10 horas con esta conexión. Durante la carga per-manece encendido el LED D12. Si se utiliza una pila normal (no recarga-ble), el circuito puede caer cerca de T2.la circuitería entorno a T2 puede eliminarse.

ManejocontrolCon el interruptor S1 se elige la fre-cuencia de muestramuestreo. Las velo-

cidades que deben ajustarsese pueden eleguir son 5/10/20/50/100/200/500 μs/div y 1/2/5 ms/div. S2 sirve para se-leccionar el canal en el que se activa el circuito. Con S3 se puede estable-cer si el PIC debe activarse en flanco ascendente o descendente y con el S4 se activa o detiene el circuito, o se va-cía borra el contenido del visualizador. Pulsando una vez sobre S4 se arma el circuito. Tras recibir la señal de dispa-ro, se leen y almacenan 1024 muestras por canal tras una señal de activación. Si se pulsa de nuevo brevemente S4 el

Figura 1. En el esquema se puede ver claramente que el microcontrolador se encarga de todo.

Inspector Digital • 41 Los principales de Elektor

Page 42: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO ANALIZADOR

28 elektor, la electrónica que sorprende - 09/2007

circuito lee 1024 muestras nuevas tras recibir unala siguiente señal de acti-vación. Si mantenemos pulsado S4 de forma prolongada, se borra la panta-lla. Entonces se almacenan los últimos ajustes de la frecuencia de muestra-muestreo, el canal en el que se ha acti-vado y el estado de activacióny condi-ciones de disparo en ella EEPROM del microcontradormicrocontrolador. Estos ajustes se usan como valor de inicio al encender de nuevo el circuito.Con S5, se enciende o apaga la ilu-minación de fondo del visualizadorde la pantalla. Tras un minuto y medio aproximadamente o en caso de ‘Lo_

transcurre como máximose repite 1024 veces. Al terminar, se han leído y mos-trado en el visualizador 128 muestras de la memoria RAM. Este proceso se repite cada 1 s.Si durante 3 s (según dependiendo de la frecuencia de muestra) no se ha producido ningúnninguna nueva con-dición de disparo estado de activa-ción, el circuito lee 128 muestras y las muestra presenta en el LCD. Así se puede ver en qué estado (alta o baja) se encuentran las entradas.Una pulsación corta en S4 activa la función de memoria. Como indicación aparece de nuevo en la pantalla una

Batt’ (bateria baja) el microcontrola-dor apaga automáticamente la ilumi-nación de fondo.

FuncionamientoPara obtener una velocidad de mues-tra muestreo lo más elevada posible, dejamos que el microcontrolador, tras una señal de activación, cargue prime-ro las muestras en su memoria RAM. Esto lo hacemos con la instrucción de software movff port a, postinc0. Esta instrucción copia el contenido del puerto a en RAM y luego incremen-ta a uno la dirección RAM. Este ciclo

C4I3

K3

D12

S6C3

IC32

13

R15

R14

D11

R16

R13

D3D5D4D1

I4

R11 IC2R12

R3R4R6R5

X1

R7

C2

C5

C1

R9IC1

D7

R8D6D8

K2

R10

D2

I2

I1P1

I5S2S1

R17

S5T2

31

BT1

BZ1

S4T1

3

R21

1

R1C6

D10

D9

R2

R19R20

S3

Lista de componentesResistencias:R1 = 680 R2,R11...R16 = 10 kR3...R6 = 330 R7...R10 = 100 kR17 = 56 R19 = 1 kR20 = 47 R21 = 220 P1 = 20 k potenciómetro de ajuste,

modelo multiturn, vertical.

Condensadores:C1,C2 = 22 pC3...C6 = 100 n

Semiconductores:D1...D10 = 1N4148D11 = 1N4001D12 = 5 mm LEDT1,T2 = BC337IC1 = 74HC04IC2 = PIC18F4580-I/P

(programado, EPS 060092-41)IC3 = 7805

Varios:Bz1 = Buzzer ACX1 = cristal 10 MHzVisualizador LC gráfico 128 x 64 píxels,

pej DEM128064A o NLC128x64 (núm. pedido Conrad 187429)

Caja 186 x 123 x 41 mm con com-partimiento para batería de 9 V, pej. Strapubox (núm. pedido Conrad 522775)

S1...S5 = botón pulsador Multimec RA3FTL6 con botón AQC09-24.2

S6 = interruptor unipolarClip de batería de 9 V5 conectores tipo banana para montaje

con tornillos (para conexión con I1...I5)Paquete completo con caja:

EPS 060092-71Diseño de placa descargable gratui-

tamente en la web, 060092-1

Figura 2. Como se puede ver en la instalación de los componentes, la estructura del circuito no es complicada. El conector K2 se coloca de modo que el visualizador se pueda colocar directamente sobre la placa de doble cara.

Inspector Digital • 42 Los principales de Elektor

Page 43: E Book Los Principales de Elektor Es 1

2909/2007 - elektor, la electrónica que sorprende

‘R’Ello queda indicado a la derecha de la pantalla con una ‘R’. El circuito es-pera ahora una señal de activacióndis-paro. Cuando ocurre, y se almacenan 1024 muestras, la ‘R’ cambia a ‘S’ y el visualizador muestra las primeras 128 muestras de cada canal. Con S1 y S2 se puede ir pasando por las posiciones de memoria. Pulsando brevemente en S1 o S2, el visualizador avanza poco a poco por la memoria; Pulsando más tiempo en S1 o S2 la pantalla avanza más rápido. El cursor en la parte infe-rior de la pantalla muestra se indica qué parte de la serie de muestras se está reproduciendomostrando en cada momento.Pulsando de nuevo brevemente-Una pulsación rápida sobre S4 hace que, el circuito lee lea de nuevo los valores de entrada y los fija almace-na en la memoria. La pantalla sigue mostrando la misma zona de memo-ria que se estableció primeropara las muestras anteriores. Evidentemente, esto es muy práctico para estudiar las señales que siguen a una señal de activacióndisparo.Si se pulsa más tiempo S4, suficiente para que el zumbador dé una señal, el circuito leerá de nuevo sus entra-das y almacenará los valores medi-dos en su memoriaun nuevo conjunto de muestras y los almacenará en la memoria. Ahora, sin embargo, no se muestra la misma zona de memoria, sino que el visualizador salta al prin-cipio de la memoria.Si se pulsa aún más S4 (hasta que sue-nen dos señales acústicas, una tras otra), el analizador lógico sale del modo memoria y regresa a su modo estándar en el que se muestran presentan siem-pre 128 muestras ‘live’ (en directo) en el visualizador.

ConstrucciónPara este diseño no se utilizan SMD. La estructura placa es bastante amplia y todos los componentes son accesibles-fácilmente localizables. Por lo tanto, al soldar no habrá problemas.Sin embargo, quisiéramos comentar la conexión entre el visualizador y la impresoraplaca. El visualizador pue-de colocar sobre la impresoraplaca. El método más práctico para conectar el visualizador a la impresoraplaca, es soldar primero un pinheader simple en la impresora del visualizadoruna tira de pines a la placa de la panta-lla. Luego se inserta un enchufe de alambre enrollado en el pinheader y se coloca todo en la impresora princi-pal.Después, enchufamos en esa tira de pines un zócalo de grapinado y lo insertamos en la placa principal Debe comprobarse que el visualiza-dorla pantalla se encuentra a la altu-ra adecuada y después se suelda el enchufe de alambre enrollado en la impresora principal.zócalo de grapi-nado a la placa principal.Si se integra el circuito en la caja re-comendada, deben limarse las dos esquinas de la impresora del lado de las entradas de señal. Entonces la impresora entrará como si estuviera moldeada.Cuando se utilice la caja recomendada para este circuito, hay que limar primero las esquinas de placa por la parte de las señales de entrada. Entonces la placa encajará perfectamente.

ObservacionesSi no se usan todos los canales, es recomendable conectar a masa los no utilizados. Si no se (desea) conectan todos los canales al mismo tiempo,

entonces se recomienda conectar los canales no usados a tierra. En mu-chos casos las entradas abiertas pue-den captar interferencias, que repro-ducen todo tipo de señales inútiles en el visualizador.Es muy posible que este analizador no seaDebe quedar claro que este anali-zador no es apto para frecuencias muy altas. Por lo tanto, las aplicaciones de este aparato de medicióndispositivo deben elegirse parason los micrcon-troladores “lentos”, control de buses seriales lentoscomunicaciones serie, etc. Sin embargo, este sencillo circuito simple ofrece es muy útil para prototi-pos de un diseño digital (microcontro-lador).puede hacer nuestra vida más fácil durante el desarrollo de un circui-to digital (microcontrolador).De Para este diseño, ofrecemos un pa-quete de montaje (EPS 060092-71). Este paquete contiene el visualizadorla pan-talla, la impresoraplaca, el microntrola-dor microcontrolador programado, las piezaslos componentes y la caja. Lo único que hay que hacer, es soldar los componentes en la impresora placa y montarlo todo en la caja. Una vez co-nectada la batería o la alimentación, se puede empezar a medir analizar inmediatamente.Para los que prefieran programar confeccionar ellos mismos la impre-soraplaca, se pueden descargar el diseño de la impresorade la misma de nuestro sitio web, www.elektuur.nl, bajo el número EPS 060092-1. Si desean programar el microcontrola-dor PIC, también pueden obtener el código fuente en nuestro sitio (EPS 060092-11).

(060092)

Publicidad

Inspector Digital • 43 Los principales de Elektor

¡Visita la web de Elektor España!

ForoPreguntas frecuentesSuscripcionesNoticias

Mi ElektorProductosBúsqueda mejoradaArtículosTienda

Anímate a visitar nuestra web ahora mismo,hay infinidad de novedades y contenido:

Page 44: E Book Los Principales de Elektor Es 1

26

SOBRE EL TERRENO MICROCONTROLADOR

elektor, electronics worldwide - 12/2007

Servidor web AVRBajo coste – Baja potencia

del ingeniero (Escuela de ciencias) Holger Buss y Ulrich Radig, en colaboración con el Dr. Thomas Scherer

Un servidor web con controlador Atmel.¿No puede ser?¡Pues claro que sí!Al parecer en el mundo del código abierto nada es imposible, así que se ha extraído el código necesario para un ATmega3. Incluso se pueden controlar elementos externos y conectar una cámara web.

En realidad al principio Ulrich Radig sólo quería encender su máquina de café por internet. Tras algunas sutile-zas, de ahí surgió un pequeño servidor

web en el que se podían contro-lar algunos puertos y escoger entradas análogicas.Después de haber presentado su pro-yecto en internet [1], enseguida en-contró un aliado que trabajaba con hardware y software. Holger Buss de-sarrolló una placa que establecía la conexión con internet gracias a una vieja tarjeta Ethernet compatible con NE2000 [2] (Figura 1). A diferencia de muchos otros pequeños proyectos de servidores, este circuito funciona com-pletamente sin SMD, así que es ade-cuado para montarlo por cuenta pro-pia, y además no sólo recicla electróni-ca antigua, sino que es muy barato de implementar.

¿Todo Linux o qué?Normalmente uno se imagina un ser-vidor web como un ordenador ruidoso en una carcasa de 19“ – diseñado para un centro de procesamiento de datos– y con Linux o Windows como siste-

ma operativo. Hoy en día esa imagen está cambiando, y uno ya está acostumbrado a formatos más pequeños, ya que al-gunas carcasas para discos duros ex-ternos no sólo incluyen interfaces de USB, SATA o Firewire, sino también con las tres letras NAS (Network Atta-ched Storage). Por lo general contiene un controlador rápido con una veloci-dad de unos cientos de MHz, en el que funciona un Linux reducido. Se pueden configurar las propiedades del servidor para el protocolo FTP, SMB y a veces también el HTTP a través de una pá-gina web incorporada. Son necesarios muchos MB de memoria flash y RAM.Pero un ATmega32 sólo tiene 32 Kilo-byte de memoria Flash, y en la RAM hay que contentarse con 2048 bits (!). Además, un microcontrolador así funciona a una velocidad de 16 MHz con sólo una fracción de la velocidad de un controlador NAS. Y, no obstan-te, el “32“ del nombre de la serie AT-mega32 se refiere a puras CPUs de 8

Característicasde rendimiento• Servidor web con ATmega32/ATmega644

• Consumo de corriente <100 mA

• Consulta de tres entradas analógicas

• 7 I/O digitales

• 1 interfaz de cable (Dallas)

• Conexión para cámara web

• Interfaz para tarjeta de memoria SD

• Consulta de un servicio de sincronización de tiempo NTP

• Configuración mediante archivos de texto

• Aviso por correo electrónico

• Interfaz en serie

• Programación dentro del circuito

• Ethernet mediante una tarjeta de red ISA compatible con NE2000

Figura 1. El servidor web completamente montado con tarjeta Ethernet e interfaz serie.

Los principales de Elektor

Page 45: E Book Los Principales de Elektor Es 1

2712/2007 - elektor, electronics worldwide

bits. Eso recuerda mucho a los prin-cipios de los microordenadores hace ya 25 años, cuando se podía comprar por mucho dinero algo parecido en la forma a una placa grande, casi del ta-maño DIN-A3, con CPUs Z80, 5602 o 6800. Hoy en día se puede obtener un ATmega32, claramente con un mayor rendimiento, por menos de 5 , inclu-so la variante Atmega644, con el doble de memoria flash, por menos de 10en la tienda. Este minimalismo econó-mico y técnico tiene una consecuencia clara: no es Linux.

¿Código abierto?Así pues, no queda nada más que com-primir los componentes absolutamente imprescindibles del protocolo de inter-net, que se ajusten a la memoria flash de un controlador AVR. Los autores no estaban solos con semejantes exigen-cias, ya que ya existían trabajos pre-paratorios de muchos otros programa-dores, y lo bonito del código abierto es precisamente que uno no tiene que in-ventar de cero cada componente. De to-dos modos, en no tardaron mucho en realizar un servidor web sobre la base de un controlador AVR. Existen no sólo los códigos fuente completos, sino que

también están disponibles los archivos hex preparados y compilados en la pá-gina web del proyecto [3] y [4], con los que también los que estén menos fami-liarizados con el software puedan gra-bar en la memoria flash con comodidad, lo que por otra parte reduce errores. In-cluso existe un foro [5] extra si en algún momento se necesita ayuda.Lo que el pequeño servidor “puede hacer“ se encuentra en la carcasa con los datos de potencia. Es asombroso de lo que es capaz esta pequeña elec-trónica. Además de entradas y sali-das, es especialmente interesante la inclusión de una económica tarjeta de

PB0 (XCK/T0)1

PB1 (T1)2

PB2 (AIN0/INT2)3

PB3 (AIN1/OC0)4

PB4 (SS)5

PB5 (MOSI)6

PB6 (MISO)7

PB7 (SCK)8

RESET9

PD0 (RXD)14

PD1 (TXD)15

PD2 (INT0)16

PD3 (INT1)17

PD4 (OC1B)18

PD5 (OC1A)19

PD6 (ICP)20

PD7 (OC2)21

XTAL

212

XTAL

113

GND

11

PC0 (SCL)22

PC1 (SDA)23

PC2 (TCK)24

PC3 (TMS)25

PC4 (TDO)26

PC5 (TDI)27

PC6 (TOSC1)28

PC7 (TOSC2)29

AREF

32

AVCC

30

GND

31

PA7 (ADC7)33

PA6 (ADC6)34

PA5 (ADC5)35

PA4 (ADC4)36

PA3 (ADC3)37

PA2 (ADC2)38

PA1 (ADC1)39

PA0 (ADC0)40

VCC

10

IC1

ATmega32

Q1

16MHz

C1

22p

C2

22p

GND

R3

10k

C5

100n

C13

100n

GND

C1+1V+

2

C1-3

C2+4

C2-5

V-6

T2OUT7

R2IN8

R2OUT9

T2IN10

T1IN11

R1OUT12

R1IN13

T1OUT14

GND15

VCC16

IC2

MAX232

1

2

3

4

5

6

7

8

9

11

10

X2

RS232

C7

100n

C6

100n

C9

100n

C8

100nGND

+5V

R12470R

1234567891011121314

S1

RESET

GND

GND

+5V

PD0PD1

PD3PD4PD5PD6

RES_ISA

PD4PD6PA5PA6PA7

PD3PD5PD7+5V

+12V

GND

INT0

R10

10k

R8

470R

red

LED2

GND

RE

.GND

A1 B1A2 B2A3 B3A4 B4A5 B5A6 B6A7 B7A8 B8A9 B9

A10 B10A11 B11A12 B12A13 B13A14 B14A15 B15A16 B16A17 B17A18 B18A19 B19A20 B20A21 B21A22 B22A23 B23A24 B24A25 B25A26 B26A27 B27A28 B28A29 B29A30 B30A31 B31

C1 D1C2 D2C3 D3C4 D4C5 D5C6 D6C7 D7C8 D8C9 D9

C10 D10C11 D11C12 D12C13 D13C14 D14C15 D15C16 D16C17 D17C18 D18

X1

DATA7

DATA0DATA1DATA2DATA3DATA4DATA5DATA6

ADR0ADR1ADR2ADR3ADR4

PA6PA5

PA7

A7 A6 A5

WR_ISA

RD_ISA

12345678910

PROG

SCKSCKMISOMOSI

PB3

SCKMISO

MIMO

GND

+5V

MISOSCK

MOSI

MOSI

GND

6

GND

3

VCC

4

DI2

SCK5

CS1

DO7

MMC/SD Card

R5

3k6

R6

3k6

R7

3k6

R1

1k8

R2

1k8

R4

1k8

R11

470R

GND

C10

100n

+5V

GND

DATA1DATA0

DATA2DATA3DATA4DATA5DATA6DATA7

ADR1ADR0

ADR2

ADR4ADR3

D1

D2

1N4148

+5V

GND

GND

2x

RES_ISA

INT0

INT0IRQ7

IRQ9

060257 - 11

IRQ4IRQ5IRQ6

RESET

WR_ISAREADWRITE

SCK

MISO

MOSI

PB3

IRQ3

C11

22u

D3

1N4001

C3

100n

1 3

2

N1uA7805

C4

100n

green

LED1

R9

470R

C12

22u

X4

GND

+5V+12V 5V

GND.

RD_ISA

DATA

ADDR

ESS

PD7

Figura 2. El circuito del servidor web es sorprendentemente sencillo, ya que la conexión en red se traslada a una tarjeta Ethernet.

Los principales de Elektor

Page 46: E Book Los Principales de Elektor Es 1

28

SOBRE EL TERRENO MICROCONTROLADOR

elektor, electronics worldwide - 12/2007

memoria SD. Así, se pueden optimizar fácilmente los parámetros de configu-ración o modificar la página web que debe mostrar el servidor. Y un sistema tan minimalista es muy seguro frente a los ataques de los hacker.Donde hay luz, también hay sombras. El pequeño servidor no está pensado como sustituto de un servidor grande “de verdad”. Recibe demasiada poca cantidad de datos (se consigue descar-gar cosas a unos 10 kB/s) y, aparte de HTTP, no sería fácil soportar otros pe-queños detalles como como scripts, etc. El pequeño servidor es fantástico como control o sensor remoto de temperatu-ras, o para hacer fotos con una cámara web. Su consumo de energía, menos de un vatio, seguro que tampoco es ecoló-gicamente perjudicial.

ATmega y FirmwareEn el circuito de (Figura 2) domina el microcontrolador. Además de este cir-cuito integrado, también está el conver-tidor de nivel MAX232 para la interfaz

za un ATmega16, ATmega32 o ATme-ga644 en un encapsulado DIL-40, ya que son compatibles en sus pines.El firmware de 1.4 se compila para una frecuencia de cuarzo de 14,7456 MHz, porque así se puede transferir fácilmen-te la velocidad en baudios correspon-diente para la interfaz en serie. En el caso del ATmega644 se regalan algunos MHz porque este chip resiste sin pro-blemas 20 MHz. Si alguien desea jugue-tear con una mayor velocidad y sacar un poco más de rendimiento al hardware, tiene que adaptar el código fuente o re-nunciar a la comunicación en serie.La tarjeta SD en realidad necesita 3,3 V para funcionar. Con los dos diodos D1 y D2 se produce una tensión de funcio-namiento de unos 3,5 V. Como las tar-jetas SD no son críticas respecto de la alimentación, es suficiente.Además de las interfaces en serie, tam-bién hay dos interfaces SPI para la pro-gramación dentro del circuito con pro-gramadores propios (p.ej. el USBprog del número de octubre de ELEKTOR) con 10 o 6 pines. La tensión de alimen-

en serie y un regulador de tensión de 5 voltios. No se utiliza ninguna comu-nicación en serie y no se necesitan 12 voltios, así que se puede alimentar el servidor web directamente con 5 V. Por lo tanto, se eliminan IC2, N1 y D3 y en su lugar hay un D3 conectado en puen-te, así como un puente de alambre en-tre los terminales 1 y 3 del regulador de tensión. Así, el resultado es – aparte de la tarjeta Ethernet – un servidor web de un IC que sería difícil imaginar más pe-queño. El consumo de energía debería estar por debajo de los 500 mW.En las páginas web de los autores hay algunas versiones del firmware para el que es suficiente la memoria flash de un ATmega32. Sin embargo, para la versión más actualizada, hasta el mo-mento, la 1.4, se necesita un poco más de espacio, de manera que para esto se necesita el tipo ATmega64. ¡Los más astutos incluso han reducido, por am-bición sana, el código fuente hasta tal punto que, si se renuncia al lujo, encaja en un ATmega8! Encuanto a la electró-nica, no es muy importante si se utili-

Figura 3. La placa del servidor web.

Lista de materialesResistencias:R1, R2, R4 = 1k8R3, R10 = 10kR5...R7 = 3k6R8, R9, R11, R12 = 470

Condensadores:C1, C2 = 22p, de cerámicaC3...C10, C13 = 100n lámina, 5 mm retículaC11, C12 = 22μ/16V, tantalio

Semiconductor:IC1* = ATmega32 o ATmega644, DIL 40ATmega644 programado: 060257-41

(Tienda Elektor)IC2 = MASX232N1 = 7805, regulador de tensiónD1, D2 = 1N4148D3 = 1N4001LED1 = LED, verdeLED1 = LED, rojo

Varios:Q1* = cuarzo, 14,7456 MHzS1 = Tira de pines DIL de 2x7 contactos

X1* = ranura de 2x31 contactos (Reichelt) o ranura ISA

X2 = enchufe sub D de 9 pines para el montaje de la platina

Prog = tira de pines DIL de 2x5 contactos + tira de pines de 2x3 cantactos

SD* = tira de pines DIL de 2x7 pines1 zócalo para circuito integrado de 40 pines 1 zócalo para circuito integrado de 16 pines Placa de circuito impreso 060257-1

(Tienda Elektor)

* = véase el texto

Los principales de Elektor

Page 47: E Book Los Principales de Elektor Es 1

2912/2007 - elektor, electronics worldwide

tación y los puertos I/O están accesi-bles en la regleta de 14 contactos S1, a la que se pueden conectar mediante cables los periféricos. Para incorporar la tarjeta Ethernet está prevista una clásica ranura ISA.

EthernetComo ya se ha mencionado, una tarjeta de la época de los PCs “XT“ y “AT“ sale ganando. En aquella época, anterior al PCI, las llamadas tarjetas Ethernet de 10 Mbits compatibles con NE2000 para el bus ISA eran casi un estándar. Estas tarjetas funcionan simplemente con 8 bits, ideal para un microcontrola-dor de 8 bits. Funcionan especialmente bien las tarjetas con un controlador de la marca Realtek. Al revolver en eBay y otras bolsas de artículos de ocasión, hay que fijarse en las tarjetas con el chip “RTL8019AS“. Éstas funcionan sin modificaciones. Sólo hay que qui-tar una EPROM que incluye a veces, ya que puede contener software que perjudique el Netboot, etc.Como ahora estas tarjetas ya no son tan fáciles de encontrar, hay una modi-ficación [7] para utilizar tarjetas 3Com con un chip 3C5x9. Evidentemente, en-tonces hay que adaptar también el có-digo fuente.Por otra parte, no es imprescindible buscar una ranura ISA original. Las tar-jetas también funcionan en una ranu-ra de 2x31 polos, que están disponibles a buen precio en tiendas de electróni-ca como Reichelt. De todos modos, los contactos de 2x18 de la placa (Figura 3)que faltan sólo están unidos a masa y

+5 V. Las dos líneas están prácticamen-te siempre conectadas en puente con la tarjeta Ethernet. También la placa ya montada de la Figura 4 sólo muestra la ranura de 2x31 contactos.

Piezas, montaje y comprobaciónComo no entra en acción ni un solo SMD, el montaje de la placa es muy fá-cil. Para IC1 y IC2 son recomendables zócalos. En IC1 sobre todo, ya que ha-brá que quitar el microcontrolador de su zócalo cuando se grabar su memo-ria flash con un programador, como por ejemplo el STK500 de Atmel, o se tiene intención de realizar más modificacio-nes ocasionales.Está prevista como zócalos para la tar-jeta SD un tira de 2x7 pines, que se suelda en la posición indicada en la placa. No es tan fácil conseguir los zó-calos adecuados para tarjetas SD que se puedan soldar, y cuando se encuen-tran tienen un precio desorbitado.Hay 2,5 alternativas:La “media alternativa“ se trata simple-mente de un truco. Como se muestra en la Figura 5, las dos filas de pines se doblan entre ellas de manera que en los extremos están separadas aproxi-madamente a 1,5 mm. En el medio se puede fijar simplemente una tarjeta SD. Entonces adquiere el aspecto que se muestra en la Figura 6 y es bastan-te seguro para experimentos.Una posibilidad perfectamente válida consiste en utilizar una tarjeta SD mini o micro con un adaptador para el tama-ño estándar, y soldar el adaptador di-rectamente a los siete pines interiores

(los siete pines del borde de la placa no tienen ninguna función eléctrica).Más elegante, y aun así económico, es el sacrificio de un lector de tarjetas SD barato como en la Figura 7. Se extrae el “hueco” de la tarjeta SD y, como se

Figura 4. El servidor web con los componentes montadas. Entre los dos queda un hueco libre para hacer ampliaciones.

Figura 5. Para poder conectar una tarjeta de memoria SD entre las los pines del conector, se doblan las dos filas entre sí hasta quedar a una distancia de aproximadamente 1,5 mm.

Figura 6. Una tarjeta SD conectada entre los pines del conector.

Los principales de Elektor

Page 48: E Book Los Principales de Elektor Es 1

30

SOBRE EL TERRENO MICROCONTROLADOR

elektor, electronics worldwide - 12/2007

la resistencia no molesta en el funciona-miento con tarjeta SD. En el firmware 1.4 se determina sin tarjeta la dirección IP 192.168.1.20. Aunque seguro que el ser-vidor no es el más rápido, hay que decir que responde a la ejecución del coman-do ping correctamente en 1 ms.Más adelante [5] puede ver en vivo el prototipo del laboratorio ELEKTOR (Fi-gura 11), pero, por favor, no todos a la vez porque fue concebido para poco me-nos de 1000 accesos por segundo ;-)Para conectar periféricos (sensores de tem-peratura o cámara web) consulta la pági-na web de los autores del proyecto, donde encontrarás información más precisa.

(060257e)

Enlaces:[1] Proyectos de Ulrich Radig:www.ulrichradig.de

[2] Proyectos de Holger Buss: www.mikrocontroller.com

[3] Página web de proyecto del servidor web:www.mikrocontroller.com/de/avr_webserver.php

[4] Página web de proyecto de ELEKTOR:www.elektor.de/webserver

[5] Dirección del servidor web:www.elektor.de/testserver/

[6] Foro sobre el servidor web:www.ulrichradig.de/site/forum/viewforum.php?f=5

[7] Modificación para el chip 3C5x9:www.mikrocontroller.com/de/ISA_3Com.php

[8] Ficha técnica del ATmega644:www.atmel.com/dyn/resources/prod_documents/doc2593.pdf

muestra en la Figura 8, se suelda di-rectamente a las pines de la placa. El hecho de soldar la tira de pines exte-riores a la chapa (Figura 9) le da una estabilidad mecánica adicional.En las tarjetas SD vienen los archivos disponibles en la página web del pro-yecto. Es importante sobre todo el ar-chivo “server.cfg“. En él hay que fijar la dirección IP con un editor de texto, de manera que los primeros tres bits co-incidan con la dirección del router. La página web real se encuentra en el ar-chivo “index.asp“. Como no es un ser-vidor de gran potencia, las viejas tar-jetas SD con algunos cientos de MB de capacidad son más que suficientes.Para hacer una primera comprobación, hay que observar la salida de la inter-faz serie mediante el hiperterminal. Los parámetros son: 9.600 baudios, 8 bits de datos, sin paridad, 1 bit de parada y sin control de flujo. Cuando se alcance una tensión de alimentación de entre 9 y 12 V y todo esté en orden, debería aparecer un resultado como en la captura de pantalla de la Figura 10. Además, se debería po-der ver entre las direcciones IP seleccio-nadas la página web de la tarjeta SD.

Información adicionalEl servidor funciona también sin tarjeta SD. En ese caso, hay que instalar de to-dos modos una resistencia de polariza-ción adicional de 100 k del pin 7 de la interfaz de tarjeta SD hasta +5 V para que el servidor advierta que no existe ninguna tarjeta SD instalada. Además,

Figura 7. Un lector de tarjeta barato proporciona, tras su extracción, una ranura para la tarjeta SD.

Figura 8. Así se sueldan los pines de la ranura de la tarjeta SD a los pines del conector.

Figura 9. Los pines sin función del conector se sueldan para mayor estabilidad a la chapa que cubre la ranura de la tarjeta SD.

Figura 10. Cuando veas en el hiperterminal un resultado parecido, lo habrás hecho todo correctamente.

Sobre los autoresUlrich Radig y Holger Buss son apasionados desarrolladores de software y hardware de código abierto, y en su página web se ocupan, además de más desarrollos del servidor web AVR, de muchos otros proyectos.

Figura 11. Así se anuncia el prototipo del servidor web del laboratorio de ELEKTOR.

Los principales de Elektor

Page 49: E Book Los Principales de Elektor Es 1

54

TECNOLOGÍA USB-UART

elektor, la electrónica que sorprende - 10/2007

Interfaces USB-UARTTodo lo que debe saber para sobrevivirAntoine Authier

Los primeros chips de interfaz entre el bus USB y los bus de serie asíncronos (UART) aparecieron a principios de la década de 2000.Y ya estamos en la tercera, cuarta, o incluso quinta generación de circuitos: más rápidos, más fiables y más estables (concretamente sus drivers), y con funciones mejoradas.

Estos circuitos integrados permiten co-nectar a un bus USB maestro cualquier aparato que requiera una conexión de serie asíncrona full duplex, compatible o no con la norma RS-232.

En general, los drivers presentan dos modos de uso. El primer modo permi-te simular un puerto COM tradicional en la mayoría de sistemas operativos (Windows, Linux). Así, flexibiliza la

transición tecnológica facilitando el uso transparente en el bus USB de ma-teriales antiguos concebidos para los puertos de serie.El segundo afecta a las transferencias de datos a alta velocidad (es decir, transferencia directa de bloque, bulk mode), especialmente gracias al uso de un buffer de mayor tamaño, a condición de que pueda abandonarse la señaliza-ción RS-232 clásica. Algunos circuitos

permiten superar tranquilamente la lí-nea de 115.200 bps. Los tres principa-les actores del mercado son el escocés Future Technology Device International Ltd (por si jamás se habían preguntado qué se escondía detrás del acrónimo FTDI), el americano Silicon Laborato-ries Inc. (Silabs para los amigos), y el taiwanés Prolific Technology Inc.

ClockMultiplier /

Divider

UARTFIFO Controller

Serial InterfaceEngine( SIE )

USBProtocol Engine

Baud RateGenerator

UART Controllerwith

ProgrammableSignal Inversionand High Drive

3.3 VoltLDO

Regulator

USBTransceiver

withIntegrated

SeriesResistorsand 1.5KPull-up

USB DPLL

Internal12MHz

Oscillator

48MHz

48MHz

OCSI(optional)

OSCO(optional)

USBDP

USBDM

3V3OUT

VCC

TXD

RXD

RTS#

CTS#

DTR#

DSR#

DCD#

RI#

CBUS0

CBUS2

CBUS3

RESET#

TEST

GND

RESETGENERATOR

3V3OUT

CBUS1

FIFO TX Buffer128 bytes

FIFO RX Buffer256 bytes

InternalEEPROM

To USB Transceiver Cell

CBUS4

24 MHz12 MHz6 MHz

To USBTransceiver

Cell

VCCIO

Interfaces USB-UART • 49 Los principales de Elektor

Page 50: E Book Los Principales de Elektor Es 1

5510/2007 - elektor, la electrónica que sorprende

FTDILos dos productos más recientes de FTDI son el FT232R y el FT2232D.El FT232R presenta una interfaz USB de serie UART (Universal Asynchro-nous Receiver/Transmitter), y funcio-na también en modo bit bang síncro-no; este modo, específico de los chips FTDI, les permite controlar 8 entradas/salidas (E/S) de alta velocidad. La EE-PROM de configuración, las resisten-cias de conexión al bus USB así como el circuito de reloj se han integrado en el chip para simplificar el uso y reducir la congestión.La señal de reloj interna, configurable (6, 12, 24 o 48 MHz), es disponible en uno de los terminales del circuito. Tam-bién puede usarse para establecer la frecuencia de un microcontrolador o la lógica externa.

Durante la producción, se atribuye un número de identificación único (FTDI-Chip-ID) a cada circuito. Esta innova-ción técnica, que constituye el orgullo de FTDI, permite por ejemplo proteger una aplicación contra la copia.El FT2232D presenta dos interfaces USB UART/FIFO (First In-First Out)configurables independientemente. Concretamente, soporta los siguientes modos: interfaz UART, FIFO, bit bang,interfaz de serie síncrona compatible JTAG, I2C y bus SPI. Estas tres últimas interfaces forman un circuito de tomas para conexiones directas en una am-plia gama de chips. La compatibilidad JTAG facilita la depuración y la progra-mación sin fallos.

FTDI suministra los drivers de estos circuitos sin gastos ni royalties, tan-to para los sistemas operativos de Microsoft como para Linux (núcleo 2.4.x únicamente, que podría parecer antiguo en el momento de escribir estas líneas).Bill Ryder es el iniciador del COM vir-tual para Linux, http://ftdi-usb-sio.sourceforge.net/ y coordina el desarro-llo a largo plazo. Su driver está integra-

do en el núcleo desde la versión 2.4.20. Es responsable de la creación del pe-riférico /dev/ttyUSBx en el empalme de un circuito FTDI en Linux.Otros colaboradores han escrito otras implementaciones y complementos. In-tra2net por ejemplo, proporciona una biblioteca específica para el acceso en modo bit bang, http://www.intra-2net.com/de/produkte/opensource/ftdi/. Sobre la base de la libusb están-

dar, esta biblioteca funciona muy bien, por lo menos por lo que hemos podido comprobar.Los drivers para Windows es-tán disponibles en el sitio y bien documentados.Parece que FTDI va a la cabeza de los circuitos más usados en los pro-yectos de electrónica que se hace uno mismo.Se ha publicado mucho savoir-faire al

respecto, así que es beneficioso para todos.Aunque es cierto que el suministro era complicado hace unos años, ahora la red de distribución está bien desarro-llada y los chips FTDI están fácilmente disponibles y a precios razonables.Pronto les presentaremos su última in-novación, el Vinculum, un microcontro-lador con puerto USB maestro.

Testimonio de un usuario“El control del flujo material no funcionaba correctamente. Por suerte para nosotros, el soporte técnico de EE.UU. corrigió muy rápidamente este problema.

Por el contrario, con el driver para Linux no se suministra ningún código fuente. Así que para la adaptación tuvimos que hacer un poco de bricolaje y de descompilación.

En cuanto a la sincronización del puerto de serie, el USB fuerza la transmisión de las tramas por paquete, lo que provoca un ligero retraso, de algunos milisegundos si no recuerdo mal, tanto en la emisión como en la recepción.

Una cosa es cierta, esto no le impide alcanzar velocidades de transmisión mucho más elevadas que las de un puerto de serie clásico”.

Frédéric, R&D Inventel, París

Interfaces USB-UART • 50 Los principales de Elektor

Page 51: E Book Los Principales de Elektor Es 1

56

TECNOLOGÍA USB-UART

elektor, la electrónica que sorprende - 10/2007

Tabla comparativa

FTDI Silicon Laboratories

Características– especificidades FT232R FT2232D CP2101

Norma USB 2.0 Full Speed 2.0 Full Speed 2.0 Full Speed

Tamaño de la EEPROM de los descriptores USB (en octetos) 1024 externa 512

Tamaño del buffer de emisión (en octetos) 128 128 512

Tamaño del buffer de recepción (en octetos) 256 384 512

Número de bits de datos soportados 7 y 8 7 y 8 8

Número de bit de stop soportados 1, 2 1, 2 1

Paridad soportada Par, impar, ninguna marca, espacio

Par, impar, ninguna marca, espacio

Par, impar, ninguna

Conformidad de conexión (Handshaking) Material o software X-On X-Off

Material o software X-On X-Off

Material y software

Velocidad de transferencia (Baud rate) RS232:300 bps a 1 Mbps

RS485:300 bps a 3 Mbps

RS232:300 bps a 1 Mbps

RS485:300 bps a 3 Mbps

300 bps921,6 kbps

Interrupción de línea (Suspend & Resume) Sí Sí No

Velocidades de transferencia parametrizadas (no estándar) Sí Sí No

Período de espera en recepción parametrizable Sí Sí No

Puertos de entrada/salida genéricas 5 configurables configurable No

Tensión de los puertos de entrada/salida configurable por terminal Vio 1,8, 2,8, 3,3, 5 V 3,3, 5 V No

Puesta en modo de espera dinámica por puerto USB Sí No

Soporte de protocolo RS-232 Sí Sí Sí

Soporte de protocolo RS-422 Sí Sí No

Soporte de protocolo RS-485 Sí Sí No

Otro bus de serie – JTAG, I2C, SPI –

Modo de transferencia de bloque Sí, bit bang Sí, bit bang Sí

Reloj interno 6, 12, 24, 48 MHz No –

Adaptación de impedancia del bus USB integrado Sí No Sí

Tensión de alimentación 3,3, 5,25 V 4,35, 5,25 V 3,0, 3,6 V

Alimentación por el bus USB Sí Sí Sí

Número de serie FTDIChip-ID No No

Caja QFN-32SSOP-28

LQFN-48 QFN-28

Pilotes (drivers) logiciels Port COM Virtuel (W/L)D2XX (W/L)

Port COM Virtuel (W/L)D2XX (W/L)

Port COM Virtuel (W/L)USBXpress (W)

Silicon LaboratoriosEn la gama de las interfaces USB-serie, Silicon Laboratories propone tres circui-tos: los CP2101, CP2102 y CP2103.

El CP2101 constituye la base y la refe-rencia. Presenta todas las funciones de base de la interfaz USB-UART en Sila-bs. Su caja de 5 mm incluye un contro-lador USB 2.0 full speed, un reloj, el cir-cuito de adaptación de impedancia para una conexión sin resistencias en el bus USB, una EEPROM de 512 octetos y un controlador UART compatible RS-232. Así, no es necesario ningún componen-te externo dedicado al bus USB.

esta configuración, la interfaz UART soporta todas las funciones del pro-tocolo RS-232 así como la conformi-dad de conexión (handshaking). Para el CP2103 también se utiliza el pro-tocolo RS-485 y manda cuatro GPIO (General Purpose Input/Output =E/S de uso genérico). Un driver lla-mado USBXpress, disponible única-mente para Windows, accede direc-tamente al chip.

Es interesante precisar que, por des-gracia, el driver para Linux no se su-ministra con su código fuente.No obstante, Craig Shelley ha reescrito este driver, que está disponible con las

Tanto el CP2102 y el CP2103 son me-joras consecutivas del anterior, con un mayor número de funciones. La EE-PROM interna cuyo tamaño ha pasa-do a 1024 bits puede protegerse con escritura. Al CP2103 se le han incor-porado 4 puertos de E/S independien-tes, cuya tensión de salida es regu-lable (por medio de una alimentación externa). Soporta también el protocolo RS-485 y la puesta en espera dinámica a través del bus USB.

Silicon Laboratories propone también dos tipos de drivers. La emulación de puerto COM está disponible tanto para Windows como para Linux. En

Los principales de Elektor

Interfaces USB-UART • 51

Page 52: E Book Los Principales de Elektor Es 1

5710/2007 - elektor, la electrónica que sorprende

Prolific Moschip

CP2102 CP2103 PL2303 PL2313 MSC7820 MSC7840

2.0 Full Speed 2.0 Full Speed 2.0 Full Speed 1.1 2.0 Full Speed 2.0 Full Speed

1024 1024 OTP + externa OTP + externa Externa I2C Externa I2C

640 640 256 / 128 – 512 512

576 576 256 / 328 – 512 512

5, 6, 7 y 8 5, 6, 7 y 8 5, 6, 7 y 8 – 5, 6, 7 y 8 5, 6, 7 y 8

1, 1,5 y 2 1, 1,5 y 2 1, 1,5 y 2 – – –

Par, impar, ninguna marca, espacio

Par, impar, ninguna marca, espacio

Par, impar, ninguna marca, espacio

– – –

Material y software Material y software Material o software X-On X-Off

Material y software Material y software Material y software

300 bps1 Mbps

300 bps1 Mbps

75 bps a 6 Mbps

Hasta 1 Mbps 50 bpsa 6 Mbps

50 bpsa 6 Mbps

Sí Sí Sí – Sí Sí

Sí Sí – – Sí Sí

Sí Sí – – – –

No 4 2 12 1 1

No 1,8 V a Vdd – – – –

No Sí Sí – Sí Sí

Sí Sí Sí Sí Sí Sí

No No No – Sí Sí

No Sí No – Sí Sí

– – – Sí (japonés) – –

Sí Sí Sí – – –

– Sí No No No No

Sí Sí Sí Sí – –

3,0, 3,6 V 3,0, 3,6 V 3,6, 5,5 V 3,3, 5,5 V 4.5, 5.5V 4.5, 5.5V

Sí Sí – – – –

No No Sí – – –

QFN-28 QFN-28 QFN-32SSOP-28

LQFP-48SSOP-28

LQFP-48 LQFP-64

Port COM Virtuel (W/L)USBXpress (W)

Port COM Virtuel (W/L)USBXpress (W)

Port COM Virtuel (W/L)Accès direct (à tester)

– Windows/Linux/Mac Windows/Linux/Mac

fuentes del núcleo actual. Todavía está en estado de desarrollo avanzado.Por el contrario, el sitio de Silabs pro-pone una base de conocimiento rica y detallada. Los circuitos de aplicación se proporcionan con el código fuen-te de su microprograma (firmware), y son de buena calidad.

ProlificProlific nos propone dos circuitos re-cientes: el PL2303X-Edition y el PL2313 que proporcionan respectivamente una o dos interfaces USB de serie.El PL2303X respeta las especificacio-nes del bus USB 2.0

full-speed. El circuito presenta un reloj interno a 12 MHz y dos puertos de en-trada/salida genéricos. El UART utiliza el protocolo RS-232.Una memoria OTP permite configurar los parámetros del enlace de serie y los datos del constructor, VendorID y Pro-ductID. También se puede introducir un número de serie en esta memoria.

Esta información se puede modificar en la EEPROM externa cuando ésta se utiliza.

El PL2313 parece que está basado en un corazón más antiguo, responde a la norma USB 1.1. Presenta dos interfaces

USB-UART que respetan el protocolo RS-232. Contiene un reloj interno, las resistencias de bus, una memoria OTP para la personalización y doce puertos de entrada/salida.Además, es compatible con varias in-terfaces del teléfono móvil japonés iMode, CDMA-1...Se recomienda adquirir los drivers para Windows y preinstalarlos para prepa-rar el terreno. Sino, no funcionará la au-tomatización de la instalación.

Las fichas de características de los componentes Prolific, los códigos fuen-te y las notas de aplicación están dis-ponibles en la rúbrica [support > do-

Interfaces USB-UART • 52 Los principales de Elektor

Page 53: E Book Los Principales de Elektor Es 1

58

TECNOLOGÍA USB-UART

elektor, la electrónica que sorprende - 10/2007

wnload center] de su sitio. Proporcio-nan los drivers para Windows, COM virtual y acceso directo. Los ejemplos del código fuente describen el acceso directo para Linux. El driver de puer-to COM para Linux ha sido desarrolla-do de forma independiente por Grez

Kroah-Hartman, el código está inte-grado en el núcleo.

Los demásEl último fabricante que trataremos aquí es indio y presenta una gama lle-na de productos.

Las dos interfaces USB de serie re-cientes de Moschip Semiconductor Technology Ltd se llaman MCS7820 y MCS7840. Proporcionan respecti-vamente dos y cuatro interfaces que respetan la norma USB 2.0 y los pro-tocolos RS-232, RS-422 y RS-485. Estos

Observaciones y recomendaciones- (probado únicamente para FTDI)Atención, la instalación conjunta del driver COM virtual y del acceso di-recto D2XX no funciona, le pedirá que proceda a la desinstalación del driver actual.

- Si su circuito propone dos interfaces, deberá instalar dos veces el mismo dri-ver. En efecto, cada interfaz tiene su propio grupo de End-Point USB gestio-nado separadamente por el maestro.

(070478-I)

Enlaces Internet:www.ftdichip.com/www.silabs.com/www.prolific.com.tw/www.k-micro.us/www.compuapps.com/www.moschip.com/www.usb.org/

componentes requieren una EEPROM compatible I2C y pueden alimentar-se directamente por el bus USB. Los drivers están disponibles tanto para Windows como para Linux. Todavía no hemos encontrado este tipo de pro-ductos en Europa.

K-micro, un fabricante americano, también ofrece este tipo de producto, pero no consigue convencernos, así que nos limitamos a mencionarlo, y dejamos al lector la libertad de seguir leyendo en su sitio.

Al término de esta presentación, te-nemos la impresión de que cada fa-bricante propone una gama completa de productos, más o menos idénticos. Los precios, el soporte ofrecido y la información disponible de los fabri-cantes, así como la tabla recapitula-tiva que hemos elaborado, deberían facilitar la elección.

Personalice sus productosModificar la EEPROM de los circuitos para cambiar el VendorID y/o el ProductID de su apa-

rato puede resultar peligroso. Los drivers de referencia ya no reconocerán el aparato.

Si desea personalizar sus montajes y poseer su propio VendorID oficial, sepa que cuesta 2.000$ ante la autoridad de regulación: www.usb.org/

No obstante, puede procurarse un lote de diez VendorID/ProductID únicos y oficiales en www.mecanique.co.uk/ por la módica suma de 29,95 libras esterlinas.

Por otro lado, FTDI ofrece a las empresas la posibilidad de tener un grupo de ocho Produc-tID a condición de que se utilicen junto con el VendorID de FTDI (a saber 0x0403).

Interfaces USB-UART • 53 Los principales de Elektor

Page 54: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO SISTEMAS DE BUS

70 elektor, electronics worldwide - 02/2008

Explorador CANInterfaz PC-CANcómodoDel ingeniero (ET) Fredi Krüger

Un bus CAN no es adecuado sólo para los coches y la automatización, también se puede incorporar al control doméstico. Por desgracia, no es del todo fácil montar un sistema bus así. Aquí llega nuestra placa CAN, que conecta un PC al bus. Con un programa cómodo y gratuito se puede supervisar un bus CAN y verificar la función de otros nodos.

Las redes que se basan en el bus CAN no sólo se emplean en coches y la industria (automatización, control), sino también, y cada vez más, en el ámbito privado. En internet hay una buena muestra de ejem-plos interesantes [1]. Las ventajas funda-mentales de estos buses de dos líneas son elevada inmunidad frente a las interferen-cias y una amplia gama de componentes adecuados (en [2a] y [2b] hay una intro-ducción, en [2c] un resumen de las espe-cificaciones técnicas). Los componentes de nodos disponibles abarcan desde los llamados controladores independientes (Stand Alone) hasta microcontroladores con un controlador CAN integrado. La di-ficultad de la realización de sistemas de bus CAN radica en realizar una comunica-ción entre los componentes independien-tes, porque se pueden tratar diversos pa-rámetros. Todo se complica más cuando hay que construir un bus desde cero y pro-gramar posibles emisores CAN, así como los receptores correspondientes. Aquí en-tra nuestra interfaz CAN-PC, que conecta un ordenador con Windows al bus. Con ayuda del programa gratuito correspon-diente, no sólo se puede supervisar con

comodidad un bus ya existente, sino que también se pueden enviar y recibir comu-nicaciones CAN y así verificar la función de otros nodos CAN. Es evidente que así se puede obtener mucha información.

Fácil, polivalente, económicoComo controlador CAN se utiliza el com-ponente MCP2515 de Microchip, que tie-ne un precio muy asequible. El progra-ma de PC correspondiente, que también es de Microchip, incluso es gratuito [3]. Con el programa no sólo se pueden in-troducir los registros del controlador CAN para adaptarlos a la aplicación corres-pondiente, también se pueden configu-rar notificaciones para a enviar y un filtro de notificaciones para aquellas que haya que reenviar.El control de la placa se realiza mediante el interfaz paralelo del PC (puerto de im-presora). Aunque hoy en día apenas se utiliza ya para manejar impresoras, toda-vía muchos PCs disponen de el. Con tarje-tas de memoria muy económicas también se puede actualizar un interfaz así (para posibles problemas con Windows Vista véase nuestros Rumores de laboratorio

de este número). El interfaz paralelo tiene que estar configurado para el tráfico bidi-reccional de datos.Así, el circuito (véase la Figura 1) también está adaptado para programas que pue-dan utilizarse más tarde y se corresponde en gran medida a la descripción que hay en la página web de Microchip [3]. Para proteger el puerto de impresora se conec-tan todas las líneas de señal utilizadas a dos 74HCT245 (IC1, IC2), antes de conec-tarlos con el controlador CAN MCP2515 (IC3). La transmisión se produce en serie por el interfaz SPI y mediante el programa de PC las señales correspondientes están disponibles en el puerto de impresora. Las otras señales que se emplean sirven para la transmisión o consulta de conexiones adicionales del controlador CAN. Como controlador de bus para la conexión al bus CAN en sí se utiliza el componente MCP2551 (IC4). Sin embargo, también se pueden introducir componentes parecidos, como un PCA82C521.También en la placa de circuito impreso, disponible en Elektor (ref. 060201-91), ya están montados IC3 y IC4 en sus varian-tes SMD (de IC4 hay todavía otra forma

Explorador CAN • 54 Los principales de Elektor

Page 55: E Book Los Principales de Elektor Es 1

7102/2008 - elektor, electronics worldwide

disponible). Con el puente JP1 se puede poner una resistencia de terminación de 120 ohms para evitar reflexiones e inte-rrupciones de la transmisión. Para una conexión fácil del bus CAN está previs-to un conector de 9 pines (K2) en la pla-ca. La posición correcta para la conexión se puede ver en el diagrama de circuito. También está prevista la posibilidad de ali-mentar otros componentes mediante esta conexión. Con el puente JP2 se puede se-leccionar entre los 5 V del regulador de tensión situado en la placa o una conexión directa a la fuente de alimentación conec-tada a la placa, y en el último caso un puente rectificador sirve como protección contra la inversión de voltaje o para recti-ficar una tensión alterna.

Montaje y puesta en marchaEl montaje empieza por las resistencias y los condensadores, el resto de componen-tes se montarán según su tamaño. Hay que tener en cuenta la correcta polaridad de los dos condensadores electrolíticos (C7, C10), el LED (D1) y el rectificador (B1), así como la posición del IC. Después de montar todos los componentes en la placa y realizar una última comprobación

visual, se puede conectar la tensión de ali-mentación en K3, que debería estar entre los 8 V y 12 V aproximadamente. Ahora debería iluminarse el diodo LED D1. Si la placa está conectada con el PC median-te el interfaz de impresora y se accede al programa descrito a continuación, debe-ría reconocerla automáticamente como placa de evaluación.

ProgramaEl programa se puede descargar de for-ma gratuita de la página web de [3]. Se basa en el programa CANking de la em-presa Kvaser [4], pero con el controlador adecuado para el módulo MCP2515. El programa se puede utilizar con todos los sistemas operativos de Microsoft desde Windows 95. Se necesita el controlador “dlportio.sys“, que se encuentra en:

1817

13

161514

1211

19

234

1

9

5678

G33EN13EN2

1

2

IC1

74HCT245

20

10IC1

1817

13

161514

1211

19

234

1

9

5678

G33EN13EN2

1

2

IC2

74HCT245 20

10IC2

1

2

3

4

5

14

15

16

17

6

7

8

9

10

11

12

13

18

19

20

21

22

23

24

25

G1

G2

K1

GND

C1

100n

C2

100n

GND

GND

1

2

3

4

5

6

7

8

9

G1

G2

K2

GND

GND

+5V

GND

JP1

JP2

2

31

K31 3

2

IC57805

25V

C7

470u

C8

100n

C9

100n25V

C10

47u

GND

D1

R5

1k

+12V +5V

CANH7

CANL6

VREF5

VSS

2

TXD1

RXD4

RS8

VDD

3

IC4MCP2551SN

C6

100n

+5V

+5V

+12VGND

GND

R4

120R

R3

10k

RX0BF11

TXCAN1

RXCAN2

GND

9

VCC

18

OSC2

7

OSC1

8

RX1BF10

SO15

INT12

RESET17

CS16

SCK13

SI14

TX0RTS4

TX1RTS5

TX2RTS6

IC3

MCP2515-I/SO

C3

100n

+5V

GND

X1

16MHz

C5

22p

C4

22p

GND

R2

10k

R1

10k

+5V

060201 - 11

D0

D1

D2

D3

D4

D5

D6

D0D1D2D3

PE

D5D6

SLCTBUSYACK

D4PE

SLCT

BUSY

ACK

SUB-D25

SUB-D9

KBP2005G

B1

Figura 1.Para proteger el puerto de impresora se conectan todas las señales aa dos 74HCT245 (IC1, IC2), antes de conectarlo con el controlador CAN (IC3). Como controlador del bus para la conexión al bus CAN se utiliza IC4.

Figura 2. Después de la instalación y algunos clics aparece esta ventana de selección.

Explorador CAN • 55 Los principales de Elektor

Page 56: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO SISTEMAS DE BUS

72 elektor, electronics worldwide - 02/2008

“C:\Windows\system32\drivers“ o algo parecido. Quien no lo encuentre puede descargarlo de forma gratuita en [5].Después de descargarlo, primero hay que instalar el programa en el ordenador. Si se accede a él, después de algunos clics aparece una ventana de selección como la de la Figura 2. De todos modos, en algunos PCs el controlador dlportio.sys no se iniciará de forma automática, entonces se recibe un mensaje de error y hay que iniciar el controlador manualmente. Tam-bién es un requisito imprescindible para una buena conexión que esté introducida en el programa la dirección correcta del interfaz de impresora utilizado. Encontra-rá indicaciones más precisas sobre estos dos puntos en el documento “Fehlerque-llen_Test.pdf“, que se puede descargar de la página web de Elektor [6].Si se selecciona “MCP2515 Register View“ se tiene acceso a todos los registros del módulo MCP2515. Cada función tiene su ventana correspondiente (Imagen 3). Si se selecciona “MCP2515 Evaluation Board“ o “MCP2515 Basic“, el programa Figura 3. En “MCP2515 Register View“ se tiene acceso a todos los registros del módulo MCP2515.

Lista de componentesResistencias (SMD 1206):R1,R2,R3 = 10kR4 = 120 R5 = 1k Condensadores:C1,C2,C3,C6,C8,C9 = 100n (SMD 1206)C4,C5 = 22p (SMD 0805)C7 = 470μ/25V (radial)C10 = 47μ/16V (radial)

Semiconductores:IC1,IC2 = 74HCT245IC3 = MCP2515IC4 = MCP2551SN (SMD SO-08), o

PCA82C250/PCA82C251 (IC3 e IC4 ya están montados en la placa

de Elektor)IC5 = 7805 (TO220)B1 = B80C1500 (rectificador)D1 = LED 3 mm/2 mA

Varios:JP1 = tira de 2 pines con puenteJP2 = tira de 3 con puenteX1 = cuarzo 16 MHz (HC49/S)K1 = Conector SUB D de 25 pines, para

montaje en placaK2 = Conector SUB D de 9 pines, para mon-

taje en placaK3 = Conector CC hembra (HEBW25) Placa (disponible con el número 060201-91

con IC3 y IC4, véase www.elektor.es)

Explorador CAN • 56 Los principales de Elektor

Page 57: E Book Los Principales de Elektor Es 1

7302/2008 - elektor, electronics worldwide

actúa como un monitor del bus CAN que reproduce todas las actividades del bus (Figura 4). También se puede descargar en Microchip una extensa documentación [3] sobre el programa.

(060201jn)

Enlaces[1a] www.mikrocontroller.net/articles/CAN_als_Hausbus[1b] www.isysbus.org[1c] www.canathome.de[1d] www.iuse.org[2a] www.me-systeme.de/canbus.html[2b] www.hehlhans.de/bilder/autos/cdi270/can.htm[2c] http://de.wikipedia.org/wiki/Controller_Area_Network[3] http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en531891[4] www.kvaser.com[5] www.driverlinx.com/download/dlpor-tio.htm[6] www.elektor.es

Figura 4. Si se escoge en la ventana de selección (véase la Imagen 2) “MCP2515 Evaluation Board“ o “MCP2515 Basic“, el programa actúa como monitor del bus CAN que reproduce todas las actividades del bus.

Nombre

Domicilio

C.P.

Tel. Fax Fecha

Por favor envíen este pedido a:

Elektor International Media Spain, S.L. C/ Salavador Olivella, 17 - Local 79 A08870 Sitges (Barcelona)Tel.: 93 811 0551

Forma de pago (vea la página contigua para más detalles)

Transferencia bancaria a Elektor International Media Spain, S.L.Número de cuenta LA CAIXA: 2100 1135 64 0200152440(Importante: poner nombre, apellidos y provincia del remitente)

Fecha de caducidad:

Número de tarjeta:

Firma:

Por favor envíenme los siguientes materiales. Para circuitos impresos, carátulas, EPROMs, PALs, GALs,microcontroladores y disquetes indique el número de código y la descripción.

Cant. Código Descripción Precio/unid. Total IVA incl.

Sub-total

Gastos envioTotal

Los precios y las descripciones están sujetas a cambio. La editorial se reserva el derecho de cambiar los precios sin notificación previa. Los precios y las descripciones aquí indicadas anulan las de los anteriores números de la revista.

8,50

CUPÓN DE PEDIDO A ELEKTOR

Explorador CAN • 57 Los principales de Elektor

Este libro (en ingles) práctico cubre una serie de

excitantes y divertidos proyectos con microcontroladores

PIC. Podemos construir más de 50 proyectos para

nuestro propio uso. Las explicaciones claras, los

esquemas eléctricos y las imágenes de cada proyecto de

forma ordenada, hacen que sea una actividad divertida.

La información técnica de fondo de cada proyecto

explica por qué el proyecto ha sido confi gurado de esta

manera, incluyendo su uso y sus hojas de características.

Incluso después de haber construido todos los proyectos,

este libro no servirá como una guía de referencia muy

válida a mantener cerca de nuestro PC.

446 pages • ISBN 978-0-905705-70-5 • 37,50

Elektor

C/ Salavador Olivella 17 - Local 79 A

08870 Sitges (Barcelona)

España

Tel.: +34 938 110 551

Haga su pedido online en www.elektor.es/tienda

PIC MicrocontrollersAlarma silenciosa, poetry box, zumbador nocturno y más

Page 58: E Book Los Principales de Elektor Es 1

16

SOBRE EL TERRENO SDR

07/2007 - elektor, la electrónica que sorprende

Radio definida por prCon interfaz USBBurkhard Kainka

Los receptores radio SD (del inglés Software Defined, es decir, Definido por Programa), utilizan un mínimo de circuitería, confiando las funciones en sus posibilidades de programación. Este proyecto SDR demuestra lo que podemos conseguir, en este caso se trata de un receptor multi-propósito que cubre todas las bandas desde 150 KHz a 30 MHz. Ha sido optimizado para recibir transmisiones DRM y AM, pero también puede trabajar escuchando las transmisiones de radioaficionados en todo el mundo.

El objetivo del diseñador de este proyecto era crear un receptor con una alta lineali-dad y una buena precisión de fase. El de-sarrollo se ha enfocado a las caracterís-ticas más importantes para un receptor DRM de primera clase y el resultado final es un receptor con unas características de rechazo a interferencias sobresalientes. La recepción de las estaciones DRM, utilizan-do el programa DREAM, proporcionó unos valores de relación señal/ruido (S/NR) en torno a los 30 dB. El principio de diseño del receptor garantiza una respuesta de la curva de filtrado extremadamente plana, lo cual no sólo se aprecia muy bien sobre la señal DRM, sino también en la calidad de audio de las transmisiones recibidas de AM, cuyo sonido es casi tan bueno como el de una estación de FM en VHF. Mere-ce la pena destacar que algunos transmi-sores que no cumplen con los anchos de banda normales, al menos tan rígidamente como deberían hacerlo, llegan a caer has-ta la onda media (9 kHz) y la onda corta (10 kHz). Estas estaciones producen una mejora de sonido que los oyentes que uti-lizan receptores normales apenas aprecian (ya que sus filtros de IF limitan el ancho de banda y, en dicho proceso, hacen lo propio con la respuesta en frecuencia), al contrario que en el caso de las estaciones SDR, donde no supone ningún problema seleccionar un ancho de banda mayor. En los receptores definidos por programa to-davía es mejor, ya que las posibilidades de una sintonía fina, proporcionadas por

un programa decodificador que corre so-bre un ordenador, nos permite determinar el ancho de banda deseado como filtros “notch” para la configuración del control de nivel automático (ALC), junto con los modos usuales de recepción para AM por medio de DRM y BLU (Banda Lateral Úni-ca) en OC (Onda Corta).Pueden añadirse refinamientos adiciona-les para aplicaciones SWL (escuchas de onda corta). Si, por ejemplo, deseamos aumentar la sensibilidad en las bandas superiores de radioaficionados, podemos conseguirlo fácilmente utilizando dos en-tradas de antena conmutables y propor-cionando un circuito preselector optimiza-do o un preamplificador en una de ellas. La propia placa de circuito impreso del re-ceptor proporciona un conjunto de entra-das de RF bastante básico que, sin embar-go, es perfectamente adecuado para una recepción de estaciones de radio. Una an-tena de hilo de la longitud adecuada au-mentará la fuerza de las señales recibidas por encima del nivel de ruido atmosférico, para asegurar que no perdemos práctica-mente información.

Requerimientos del circuitoLa mayoría de los programas SDR [1] ne-cesitan la plataforma Windows XP para trabajar satisfactoriamente. Por lo tan-to, la parte más importante del circuito es una tarjeta de sonido capaz de tra-bajar con señales SDR. Hemos desarro-

llado un pequeño circuito para verificar las tarjetas de sonido, que se describe en otro apartado de esta entrega bajo el título “Consejos para desarrolladores”. ¡No tiene ningún sentido fabricar el re-ceptor SDR sin hacer esta prueba!

Todo sobre USBUna conexión USB controla al receptor, que está alimentado de la misma mane-ra con una tensión de + 5 V (no necesi-ta una tensión de red adicional). Para la interfaz USB, situada en el circuito re-ceptor (ver Figura 1), hemos selecciona-do el módulo FT 232R de nuestros ami-gos escoceses de la empresa FTDI. Este moderno conversor USB a Serie trabaja sin necesidad de un cristal de cuarzo, ya que está equipado con un oscilador RC interno que le proporciona la estabilidad adecuada. El módulo (IC4) se utiliza aquí en su modo “bit-bang” (un tipo de trans-misión de datos serie que intercambia rápidamente un único bit de salida, “dis-paro de bit”), junto con las líneas de un puerto paralelo rápido. Pueden usarse ocho líneas de datos que se controlan en cualquiera de los modos que se de-see. Dos de las líneas se utilizan como un bus I2C y controlan la frecuencia del re-ceptor. Tres hilos conectan la entrada del multiplexor a una de las ocho entradas de antena, con y sin filtrado. Hay dos en-tradas adicionales que sirven para con-trolar la amplificación de FI (Frecuencia

Los principales de Elektor

Page 59: E Book Los Principales de Elektor Es 1

1707/2007 - elektor, la electrónica que sorprende

ograma

CBUS023

RI6

GND

7

CBUS122

RTS3

TXD1

DTR2

CTS11

3V3OUT17

VCCIO4

RXD5

DSR9

DCD10

CBUS213

CBUS314

CBUS412

GND

18

GND

21

TEST26

AGND

25

VCC

20

USBDM16

USBDP15

RESET19

OSCI27

OSCO28

IC4

FT232R

1234

5 6

K1

USB-B connector

GND

C8

10n

GND

L2VCC

C16

100n

L3

C7

100n

GND

3V3

R2 330

R3 330

C1

100n

GND16V

C4

4u7

GND

VSSL7

VSS

16

AVSS6

PDM/OE10

VDD

2

VDD

19

VDDL11VD

D14

AVDD4

VCXO/WP17

SCL13

SDA5

XIN

1

XOUT

20

CLOCK18

CLOCK29

CLOCK312

CLOCK415

CLOCK518

CLOCK63

IC3

CY27EE16ZE

3V3

GND

GND

X1

10MHz

C12

10p

C13

10p

3

D2 5

6

R1

S4

C

IC1A

11

D12 9

8

R13

S10

C

IC1B

14

7IC1C

L1

10uHC2

100n 16V

C3

4u7

GNDGND

VCC

GND

VCC

VCC

VCC

VCC

C5

100n

C6

100n

12

13 IC2A

43

5IC2B

89

6IC2C

1110

12 IC2D

14

7

IC2E

I1

I2

I3

Q1

Q2

Q3

A013

A114

A215

A312

A41

A55

A62

A74

INH6

COM3

VEE

7

GND

8

A11

B10

C9

VCC

16

IC6

74HC4051

C21

100n

GND

VCC_HF

GND

L6

2200uH

GND

C23

100nC25

100nC29220p

L5

47uH

R12470

GNDC32

100n

C31

100p

R15

470

GND

C38

100nR25

4.7

R241k

GND

C36

100n

TEST_CLK

TEST_CLK

T1

BF245

C30

100nR16

1M

R17

100k

R18

470

GND

C26

100n

GND

L4

10uH

VCC_HF

Q_SWQ_SW_N

R19100

I_SWI_SW_N

R7100

C19

100n

R610k

C22

2n2

GND

C24

2n2

R9

4k7

C27

100n

C33

100n

R1410k

C35

2n2

GND

C37

2n2

R21

4k7

C39

100n

5

67IC5B

810

9IC5C

1412

13

IC5D

R5100k

R13100k

R8100k

R10

10k

C28

100n

GND

2

31IC5A

R20100k

R22

10k

C40

100n

GND

4

11IC5E

1 2

13

IC7A

4 3

5

IC7B

8 9

6

IC7C

11 10

12

IC7D

14

7IC7E

R1127k

R2327k

C20

100n

C34

100n

GND

K2

GND

VCC

R1

100

16V

C9

4u7

C10

100n

C11

100n

R4100

VCC

16V

C14

470u16V

C15

4u7

C17

100n

C18

10n

VCC_HF

GND

PC1

K3

GND

GND

ANT

070039 - 11

IC1 = 74AC74IC2 = 74HC4066IC5 = TL084CNIC7 = 74HC4066

Figura 1. Esquema eléctrico del circuito receptor que tan sólo comprende la parte del oscilador de sintonía y un mezclador.

Los principales de Elektor

Page 60: E Book Los Principales de Elektor Es 1

18

SOBRE EL TERRENO SDR

07/2007 - elektor, la electrónica que sorprende

Intermedia) en el receptor. De este modo, el receptor trabaja completamente bajo control remoto. ¡Adiós a todos los man-dos y controles de las radios!Debemos atender especialmente al des-acoplo de la tensión de alimentación, porque el circuito integrado USB FT 232R trabaja internamente en el mismo rango de frecuencia que la señal que es-tamos recibiendo a través de la antena, y no es deseable que parte de esta se-ñal de RF pueda pasar de una etapa a otra, a pesar de que el desacoplo dentro del propio circuito integrado es particu-larmente bueno y que la señal residual de RF en las líneas del puerto de control apenas es detectable. En consecuencia podemos controlar la entrada de RF del multiplexor en el circuito integrado HC 4051directamente desde las líneas del puerto de control, sin que haya restos de la señal de reloj del procesador en la zona de la señal deseada.Utilizando su regulador de tensión inter-no de 3,3 V, el FT 232R proporciona la tensión de trabajo para el generador de reloj programable CY27EE16ZE, evitando la necesidad de un regulador de tensión adicional. El resto del circuito (Figura 1) opera exclusivamente con la tensión de + 5 V. Además, dentro del circuito se producen una serie de tensiones filtradas con su rizado atenuado que por un lado garantizan un buen desacoplo de RF, y por el otro aseguran una supresión de la interferencia de la frecuencia de audio. Este punto es particularmente crucial en la etapa de entrada de RF del receptor, desde donde se envía la señal, a través del mezclador, a la circuitería de FI. Por esta razón se ha colocado un condensa-dor electrolítico de gran valor en este lu-gar (VCC_HF), de modo que se asegure una adecuada “paz y tranquilidad”.

VFO programableLa radio definida por programa (SDR) hace una llamada a un oscilador de fre-cuencia que se ejecuta cuatro veces más rápido que la señal recibida, de manera que el filtrado de fase necesario puede dividirse entre cuatro. Si nuestro objeti-vo es recibir señales de hasta 30 MHz, el oscilador necesita llegar hasta una fre-cuencia de 120 MHz. Actualmente los osciladores DDS son muy populares en los proyectos de HF, pero a 120 MHz un DDS es bastante más caro, demanda un mayor consumo y es mucho menos con-trolable. Por este motivo hemos buscado una alternativa al oscilador DDS, optan-do por utilizar un reloj oscilador progra-mable con un PLL interno. Muchos lec-tores de Elektor Electronics recordarán

cual es tolerable porque estas frecuen-cias no están altamente ocupadas).

Procesamiento de la señalEl receptor está equipado con varias entra-das seleccionadas por el multiplexador de entrada 74HC4051 (IC6). La entrada de an-tena “ANT” es llevada, a través de filtros, a las tres primeras entradas. La selección del primer conmutador (ancho de banda) utili-za tan sólo una bobina de choque de entra-da (L6), la cual elimina cualquier señal de entrada en la banda de audio. En la segun-da posición del conmutador (Onda Media) hay un filtro paso/bajo con una frecuencia límite de 1,6 MHz , que utiliza la resistencia R12 para atenuar la resonancia excesiva. Este filtro suprime las interferencias en la recepción de Onda Media producidas por la mezcla de sobre-tonos con las estacio-nes en el rango de la Onda Corta. En la tercera posición el circuito hace uso de un sencillo filtro paso/alto RC que atenúa las señales fuertes de Onda Media.También se puede seleccionar una señal de entrada adicional (PC1) si deseamos conectar circuitos de entrada externos sintonizados o preamplificadores. Por úl-timo, se han dejado libres tres entradas más para posibles desarrollos futuros (A4, A5 y A6). Los filtros de entrada que hay sobre la placa de circuito impreso son bas-tante buenos y adecuados para la mayoría de las aplicaciones. Por supuesto, pode-mos introducir un filtro paso/bajo delante de los filtros, siempre y cuando queramos realmente bloquear la mezcla de sobre-to-nos en cualquier situación posible. Tam-bién podemos optar por montar circuitos resonantes diferentes seleccionados me-diante la electrónica de conmutación de entrada.La entrada particular que está activa en un momento dado se conecta a la salida de un puerto COM (terminal 3). A ambos lados del conmutador se proporcionan con-densadores de desacoplo, además de una línea de tensión de alimentación de 2,5 V para conmutar la conexión de la fuente del transistor BF 245 a través de una resisten-cia de 1 M . Esto elimina cualquier dis-torsión proveniente de señales de entrada fuertes, que pueden aparecer cuando los diodos de protección en las entradas ana-lógicas de los circuitos integrados limitan las señales.La entrada A7 facilita una señal de calibra-ción en la salida “Output 3” (Test-Clk) del oscilador de cristal programable. El oscila-dor produce una señal de onda cuadrada de 3,3 V pico a pico a una frecuencia de 5 MHz. En el divisor de tensión se produce una señal de tensión de unos 5 mV, a una frecuencia de 5 MHz, que se corresponde

el CY27EE16ZE de nuestra entrega de abril de 2005. Este reloj oscilador, desa-rrollado especialmente para aplicaciones digitales, funciona con igual exactitud en circuitos de RF. La resolución de frecuen-cia no es tan buena como la de los oscila-dores DDS, pero la precisión de fase de la señal de salida alcanza resultados com-parables. La reducción del consumo de potencia a una cantidad relativamente modesta es importante en este proyecto, ya que no podemos consumir demasiada corriente desde un puerto USB. El circuito integrado se programa a tra-vés del bus I2C utilizando las líneas SCL y SDA. El VCO interno trabaja en el ran-go de frecuencias de 100 a 400 MHz, y está estabilizado por medio de un cris-tal de 10 MHz y un PLL. Así, su señal de salida pasa a través de los contadores hacia las salidas deseadas. En nuestro caso, hemos seleccionado la salida de reloj Clock5, donde podemos obtener una salida VFO comprendida entre 600 kHz y 120 MHz para su procesamiento posterior en el contador 74AC74.El principio de funcionamiento del mez-clador I-Q se ha descrito en la entrega de Elektor Electronics de febrero del 2007. Aquí hemos creado un mezclador de dos etapas a partir de un total de cuatro con-mutadores analógicos situados en el inte-rior del circuito integrado HC4066. Este circuito está controlado por dos señales del oscilador, desplazadas en fase, que se producen con un contador 74HC74. Si su-ponemos que el reloj oscilador programa-ble produce una señal de 24 MHz, enton-ces el mezclador necesitaría una señal de control de 6 MHz. Así, el receptor podría en este caso trabajar en la región de unos ±24 kHz, a ambos lados de la frecuencia central de 6 MHz.Lo importante aquí es que el desplaza-miento de fase sea exactamente de 90° entre las dos señales del oscilador. Cual-quier desviación afectará a la reducida supresión de las frecuencias imagen. En nuestro caso, cambiar el dispositivo de conmutación analógico por un 74HC4053 o un 74HC4052 no sería una buena elec-ción, ya que el retardo producido por el paso de la señal en los decodificadores internos podría producir diferentes erro-res de fase que aparecerían en cualquier rango de frecuencia. La solución que he-mos elegido utiliza conmutadores más básicos, como el HC4066, que mantiene las cuatro fases en sincronismo. Con el contador 74AC74 no deberíamos encon-trar ningún error de fase en dicho circui-to, de hecho el receptor presenta una su-presión de la frecuencia imagen de unos 40 dB hasta los 15 MHz, aunque este va-lor disminuye más allá de los 20 MHz (lo

Los principales de Elektor

Page 61: E Book Los Principales de Elektor Es 1

1907/2007 - elektor, la electrónica que sorprende

con una fuerza de señal de entrada de S9 de + 40 dB. Esto permite que el medidor de intensidad de campo creado en el pro-grama pueda calibrarse sin ningún ele-mento adicional.El transistor JFET BF 245 a la salida del

Figura 2. Placa de circuito impreso del receptor SDR.

LISTA DE MATERIALESResistenciasR1,R7,R19 = 100R2,R3 = 330R4 = 100R5,R8,R13,R17,R20 = 100kR6,R10,R14,R22 = 10kR9,R21 = 4k 7R11,R23 = 27kR12,R15,R18 = 470R16 = 1MR24 = 1kR25 = 4 7

CondensadoresC1,C2,C5,C6,C7,C10,C11,C16,C17,C1

9,C20,C21,C25-C28,C30,C32,C33,C34,C36,C38,C39,C40 = 100nF

C3,C4,C9,C15 = 4μF7 condensador electrolítico de 16 V radial

C8,C18 = 10nFC12,C13 = 10pFC14 = 470μF condensador electrolítico

de 16 V radialC22,C24,C35,C37 = 2nF2C29 = 220pFC31 = 100pF

SemiconductoresIC1 = 74AC74IC2,IC7 = 74HC4066IC3 = CY27EE16 (Cypress)IC4 = FT232R (FTDI)IC5 = TL084CN con zócalo (ver texto)IC6 = 74HC4051T1 = BF245

InductoresL1-L4 = 10μHL5 = 47μHL6 = 2.2mH

VariosK1 = conector USB-B para montaje en

placa de circuito impreso (PCI)K2 = conector tipo “jack” estéreo, para

montaje en placa de circuito impreso (PCI)K3 = conector bloque terminal de 2 hilos para

montaje en placa de circuito impreso (PCI), con separación entre terminales de 5 mm

PC1 = terminal de soldaduraPCI = Placa de Circuito Impreso totalmente

montada y verificada con código de pedido nº 070039-91. Programas Ficheros con los programas del proyecto para su descarga gratuita con código nº 070039-11.

Documentación complementaria, descar-ga gratuita de la placa de circuito impre-so desnuda con código nº 070039-1,desde www.thepcbshop.com

Los principales de Elektor

Page 62: E Book Los Principales de Elektor Es 1

20

SOBRE EL TERRENO SDR

07/2007 - elektor, la electrónica que sorprende

multiplexador de entrada sirve como un transformador de impedancia. Esto propor-ciona una impedancia final relativamente alta de 100 k para la señal de RF, lo que permite, por ejemplo, que pueda conectar-se incluso un circuito resonante de alta Q a la entrada “In2”. Hemos intentado tener una tensión de 2,5 V aproximadamente a la salida de baja impedancia del seguidor fuente, la cual pasa a través del mezclador y del siguiente amplificador operacional y va directamente hacia la salida. Es impor-tante que no aparezcan restos de señales en la frecuencia de audio en la conexión fuente, razón por la cual también se filtra minuciosamente la tensión de alimenta-ción “crítica” Vcc_HF. El propio transistor FET proporciona el desacoplo adicional de la tensión de alimentación, pero no desea-mos que ninguna señal escape de la puerta de dicho transistor, ya que dicha señal pue-de caer en la región de la FI, por debajo de los 24 kHz. Por este motivo se ha conectado una bobina de choque de RF directamente a la entrada de antena de forma que, por ejemplo, se elimine cualquier zumbido re-sidual de la señal de red de 50 Hz.Saliendo de la conexión fuente del transistor nos encontramos con dos resistencias de 100 que van a los dos mezcladores para las señales I y Q. Dichas resistencias mejo-ran la simetría de los mezcladores, ya que la resistencia de activación de los mismos proporciona una cierta cantidad de fugas. Los propios mezcladores son circuitos in-tegrados conmutadores analógicos del tipo HC4066, configurados como conmutadores

de la carga de 4,7 k en la entrada no in-versora, a diferencia de la resistencia de 10 k en la entrada inversora. Esto es correc-to, ya que la señal que pasa a través de di-cha entrada es atenuada con una antifase exacta por la realimentación inversa, lo que divide la resistencia de entrada hasta los 5 k . De este modo, ambas entradas ofrecen la misma resistencia de entrada, que era lo que se pretendía.Los condensadores de 2,2 nF, junto con la resistencia interna del mezclador y la re-sistencia serie de 100 , forman un sen-cillo filtro paso/bajo con una frecuencia de limitación que llega hasta los 100 kHz, de forma que se elimine cualquier vestigio de RF en las etapas de audiofrecuencia. La li-mitación de frecuencia está bastante por encima del rango de frecuencia de trans-ferencia, lo que significa que las toleran-cias del condensador no producen ningún error de fase apreciable. Incluso podemos utilizar un condensador cerámico de disco. Las tolerancias de entre un 10% y un 20% no son ningún problema con cualquiera de los condensadores que están en el camino de la señal y que actúan como elementos de paso/alto con una frecuencia de limitación de unos 300 Hz.La etapa final tiene una ganancia (dividida en 10 partes) de 20 dB, la cual, sin embargo, puede reducirse a la ganancia unidad por los conmutadores analógicos. Se proporcio-nan un total de tres pasos de atenuación: 0, - 10 y - 20 dB. Para evitar que este control de ganancia sea demasiado duro, la ganancia también puede reducirse en el propio pro-grama. Como la entrada del receptor pre-senta una alta resistencia, con lo que podría verse saturada, el atenuador se coloca en la etapa final, de manera que se evite una sa-turación de la salida. Esto se corresponde con un control de ganancia en un amplifi-cador de FI.

MontajeLa placa de circuito impreso que se mues-tra en la Figura 2 utiliza componentes lo más estándar posible, con la excepción de los circuitos integrados LSI (Large Sca-le Integration, es decir, gran escala de integración) FT 232RL y CY27EE16, los cuales, por desgracia, solamente están disponibles en encapsulado con formato SSOP, con un espaciado entre terminales de 0,65 mm. La Figura 3 muestra la pla-ca de circuito impreso (PCI) prototipo de nuestro laboratorio, con todos los compo-nentes montados.La mejor manera de comenzar es sol-dando los dos componentes de montaje superficial (SMD) en su lugar corres-pondiente. Se recomienda empezar con los cuatro terminales de las esquinas

de intercambio. La tensión de los mismos se selecciona también en torno a los 2,5 V, lo que permite controlarlos sin ningún tipo de sobrecarga hasta los 5 V pico a pico.El amplificador de FI (Frecuencia Inter-media) está formado por dos ramas exac-tamente iguales que juntas producen una atenuación de hasta 40 dB en todo momen-to. Cuando estamos utilizando una tensión de alimentación de 5 V, la ganancia de an-cho de banda (GBW) del amplificador ope-racional seleccionado es bastante impor-tante, de manera que se pueda conseguir la amplificación (dividida en diez partes), sin errores de fase para señales que están en torno a los 20 kHz. En las muestras de las pruebas realizadas por el autor de este artí-culo se comprobó que un amplificador ope-racional TL 084 era adecuado para este tra-bajo. Si proporcionamos un zócalo para IC5 podríamos intentar probar con otros ampli-ficadores operacionales más rápidos.La etapa de entrada trabaja como un am-plificador diferencial. Los valores de las re-sistencias que buscamos no son los más aptos para una mejor supresión en el modo común, sino los que hacen la resistencia de entrada lo más igual posible entre las entradas inversoras y no inversoras de los amplificadores operacionales. Las pruebas demuestran que una buena precisión de fase (y en consecuencia una alta supresión de la frecuencia imagen) depende de que exista la misma impedancia en las cuatro fases del mezclador. La impedancia de en-trada sube hasta los 5 k para todas las entradas. Debemos remarcar la resistencia

Figura 3. Esta placa ejemplo de laboratorio no es lo bastante equivalente para la inversión de producción suministrada a través de la tienda de Elektor.

Los principales de Elektor

Page 63: E Book Los Principales de Elektor Es 1

2107/2007 - elektor, la electrónica que sorprende

antes de soldar el resto de ellos. El esta-ño que sobre puede retirarse fácilmente con una trencilla para desoldar, revisan-do a continuación con una buena lupa que no haya ningún cortocircuito que nos dé una desagradable sorpresa.Los componentes con terminales pasan-tes no deben presentar ninguna dificultad. El circuito no dispone de ningún compo-nente de RF especial o de puntos de prue-ba. En un principio no debemos montar los condensadores C12 y C13, ya que el circuito integrado CY27EE16 dispone de unos condensadores internos que pue-den configurarse y que nos permitirán al-canzar una frecuencia de exactamente 10 MHz sin ninguna dificultad. Los conden-sadores C12 y C13 solamente serán nece-sarios si el cristal que estamos utilizando requiere una capacidad de carga mayor.Una vez montados todos los compo-nentes es necesario examinar todo el circuito con un multímetro, comproban-do que no haya ningún cortocircuito al-rededor de las conexiones USB, para evitar dañar nuestro ordenador.

Conexión y alineaciónAntes de conectar la primera vez el recep-tor al puerto USB del ordenador, necesita-mos instalar el programa controlador para el circuito integrado FT 232R. Podemos encontrar dicho controlador en la página web del fabricante (www.ftdichip.com/FTDrivers.htm) o, como alternativa, en la sección de programas de descarga de este artículo. La instalación del controlador me-diante el programa CDM_Setup.exe elimi-na automáticamente cualquier resto de viejos controladores FTDI de nuestro orde-nador. Una vez que hayamos hecho esto, Windows encontrará de forma automática el controlador correcto en cuanto conecte-mos el receptor. El mismo proceso propor-ciona al ordenador, de manera automática, un puerto COM virtual adicional, para lo que no necesitamos conocer qué número de puerto COM ha sido asignado al dispo-sitivo, ya que el equipo configura su propia conexión directa con el FT 232R. El fichero FTD2XX.dll controla las ocho líneas de da-tos del circuito integrado como si se tratase de un puerto paralelo, eliminando al mis-mo tiempo cualquier problema de tempo-rización. Para ahorrar tiempo, los múltiples cambios de nivel involucrados en el control del bus I2C son convenientemente alma-cenados en un “buffer” y, posteriormente, llevados a las líneas de datos de forma or-denada. El programa ElektorSDR.exe nos permite controlar todas las funciones del receptor (vea la Figura 4). Dicho fichero se encuentra en el archivo de descarga como un fichero ejecutable, junto con el código

fuente para Delphi. También está disponible para su des-carga un documento com-plementario, en formato pdf, que describe la inicialización y la puesta en funcionamien-to del equipo.

Programa decodificadorPrácticamente todas las ca-racterísticas significativas del receptor vienen deter-minadas por la configura-ción realizada en el progra-ma decodificador de nues-tro ordenador. Como indica nuestra investigación [1],

disponemos de una colección de progra-mas diferentes entre los que elegir. Por ejemplo, podemos realizar nuestras pri-meras pruebas con el programa SDRadio [2]. Después de esto descubriremos posi-bilidades adicionales con los programas DREAM [3] y G8JCFSDR [4].Cualquiera que sea el programa que ha-yamos elegido, es de vital importancia configurar la tarjeta de sonido correc-tamente (esto se describe en el docu-mento complementario). La información sobre los programas se halla en las pá-ginas web correspondientes y en los ar-tículos de Elektor Electronics que se lis-tan más abajo. En la página web del au-tor de este artículo (wwwb-kainka.de) podemos encontrar consejos adiciona-les, los cuales también aparecerán más adelante en la página del proyecto en www.elektor–electronics.co.uk y, si fue-se necesario, en el foro correspondiente de la misma página web.

(070039-1)

Figura 4. Programa de control de Sintonía SDR de Elektor Electronics.

Figura 5. Cuatro estaciones de AM en sintonía dentro del rango del espectro, tal y como se muestra en el programa SDRadio.

Enlaces en Internet:[1] www.nti-online.de/diraboxsdr.htm

[2] www.sdradio.org/

[3] http://sourceforge.net/projects/drm

[4] www.g8jcf.dyndns.org/

Bibliografía:Burkhard Kainka: DREAM Team – Progra-ma para Recepción DRM, publicado en Elektor Electronics en abril de 2004.

Wolfgang Hartmann and Burkhard Kainka: ‘Escucha de Radio con Matlab – Programa Diorama para el receptor DRM’, publicado en Elektor Electronics en mayo de 2006.

Burkhard Kainka: I-Q: una aproximación inteligente a la calidad radio, publicado en Elektor Electronics en febrero de 2007.

Los principales de Elektor

Page 64: E Book Los Principales de Elektor Es 1

8 03/2007 - elektor, la electrónica que sorprende

SOBRE EL TERRENO FRESADORA

ProfilerKit de construcción de una máquina de fresar de interés general Harry Baggen

¿Alguna vez ha soñado con tener su propia

máquina de fresar?, ¿es demasiado cara? Si

es así, tenemos la solución perfecta. Hemos

trabajado en colaboración con el fabricante

belga Colinbus para ofrecer a los lectores un kit

que permita la construcción de una máquina de

fresar por sólo una parte del coste de un modelo

ya fabricado. Esta máquina es adecuada para una

amplia variedad de trabajos, que van desde la construcción de piezas

para modelos al fresado de placas de circuito.

Tanto los aficionados a la electróni-ca como los profesionales realizan ta-reas que exceden a las consideradas estrictamente electrónicas y a menu-do tenemos que tratar con muchas tareas mecánicas. Esto incluye llevar a cabo algunos trabajos como reali-zación de placas de circuito impreso, rutado de cables, o diseño de una carcasa adecuada con el correspon-diente panel frontal. Algunos de estos trabajos, si quere-mos hacerlos nosotros mismos, re-quieren la utilización de herramien-tas adecuadas para obtener buenos resultados. Seguramente muchos aficionados,

al igual que diseñadores de prototi-pos y pequeños laboratorios de de-sarrollo, harían un buen uso de una máquina de fresar pequeña para este tipo de trabajos. Invertir en esta má-quina puede ser rentable para un uso comercial, pero la situación es algo diferente para un uso doméstico. Una máquina de fresar buena y exacta puede costar fácilmente varios miles de euros, incluso aquellos modelos básicos sin todas las funcionalidades (tales como eliminación de limaduras por vaciado y una alta velocidad del eje del motor).Dedicamos este proyecto especial-mente a todos los aficionados de

electrónica y profesionales que re-gularmente continúan su trabajo y/o hobby en casa. La idea para la ela-boración de este proyecto surgió es-pontáneamente durante una conver-sación con Frank Jacops de la com-pañía belga Colinbus, especialista en máquinas de fresar. Cuando hablamos con alguien que no sólo vende máquinas de fresar, sino que también las diseña desde el principio, podemos abordar rápida-mente el hecho de que la mayoría de los electrónicos tienen ideas esplén-didas sobre todas las cosas que po-drían hacer con esta máquina, aun-que se encuentren casi siempre con

Los principales de Elektor

Page 65: E Book Los Principales de Elektor Es 1

903/2007 - elektor, la electrónica que sorprende

el obstáculo del precio. Frank Jacops entendió

esto inmediatamente (él ha sido un ávido lector de Elektor Electronics durante muchos años) y sugirió la oferta de un kit de construcción a un precio especial por un tiempo limita-do, exclusivamente para los lectores de Elektor Electronics. Naturalmente, debemos admitir que el kit no es exactamente económi-co, a 1.679 ó 1.958 más gastos de envío, pero representa un ahorro de casi 1.780 libras, comparado con un modelo ya ensamblado. Esto es una recompensa atractiva para un día de trabajo de ensamblado. Por supuesto, existen en el mercado pequeñas máquinas de fresar a bajo coste, pero son bastante pequeñas y tienen características limitadas.

Si observa las fotos de este artícu-lo, verá que estamos hablando de una categoría diferente. Construc-

ción robusta, alta precisión, y una amplia área

de traba-jo de 30 x 40 cm (¡ahora sí podemoshincarle

el diente!).E s t a m á -qu ina es adecuadapara todo t i p o d e trabajos,

tales como dis-pensadores, encapsulación,

cámara de inspección, fresado de paneles frontales, e incluso para mo-delar en 3D (utilizando un software separado). Podemos también fresar placas de circuito, aunque en las aclaraciones del fabricante se men-cione que este modelo no se ha dise-ñado inicialmente para este propósi-to, ya que ello requeriría una mayor exactitud. Sin embargo, nos servirá muy bien, basándonos en nuestra ex-periencia de PCBs, y el software que se incluye. El ensamblaje de la máquina es bas-tante sencillo, y las claras instruccio-nes escritas prácticamente excluyen cualquier problema. Las placas del circuito con los drivers electrónicos están completamente ensambladas y probadas, así que todo lo que te-nemos que hacer es instalarlas y conectarlas.

Diseño

El nombre con el que hemos bauti-zado a la máquina es ‘Elektor Pro-filer’ y es la máquina de fresar más pequeña producida por Colinbus. Su construcción es en gran parte la mis-ma que el modelo comercial CBR-40 (ver www.colinbus.com). La máquina está hecha de partes de acero y alu-minio, combinación que proporciona un peso y estabilidad suficiente para soportar el movimiento de la máqui-na, mientras que la velocidad de re-corrido es muy alta gracias al uso de aluminio extrusionado. El sistema MultiStab emplea tres ro-dillos en cada extremo, entre barras de acero de precisión presionados entre perfiles de aluminio extrusiona-do, proporcionando un buen guiado mecánico con un mínimo juego. El diseño se emplea para los tres ejes. Un rodillo de cada una de las guías se ensambla manualmente para ajustar todo el juego necesario. Cada uno de los tres ejes se maneja con un vástago con una tuerca de re-corrido especial. La máquina de fresar se controla a través de una placa de procesador interior con un Renesas H8/3003 y una placa excitadora con tres circui-tos integrados ST L6208, los cuales se encargan de excitar los tres mo-tores de paso. Esta aproximación hace que el tiempo sea indepen-diente del PC conectado. El ordena-dor simplemente envía comandos y coordina a la placa del procesador, la cual procesa y ejecuta los comandos independientemente.La potencia de procesamiento del

Especificaciones técnicas de ‘Profiler’Dimensiones 453 (w) x 583 (d) x 468 (h) mm

Área de trabajo máxima 300 (X) x 400 (Y) x 100 (Z) mm

Interface Serie

Alimentación 240 V, 50 – 60 Hz

Transporte lineal X/Y/Z guías MultiStab

Driver para X/Y/Z motores de paso

Velocidad de posicionamiento 60 mm/s

Resolución mecánica 0,0075 mm

Resolución del Software 0,025 mm

Software Colinbus Interface de Usuario

Programa de conversión para ficheros

Gerber y Excellon

Los principales de Elektor

Page 66: E Book Los Principales de Elektor Es 1

10 03/2007 - elektor, la electrónica que sorprende

SOBRE EL TERRENO FRESADORA

microcontrolador interno no es sufi-ciente para excitar los tres motores al mismo tiempo (este truco se reser-va para los modelos más grandes y más caros de Colinbus), así que sólo podemos excitar dos a la vez. La má-quina puede ejecutar suaves movi-mientos en un plano bi-dimensional. Para movimientos en 3D, conmuta rápidamente entre dos ejes, lo que hace que parezca que se mueve rápi-

damente, debido a que los pasos re-sultantes desde la interpolación son muy pequeños.La placa de control en la máquina de fresado tiene una interface serie, pero se puede usar un adaptador es-tándar USB a RS232 sin ningún pro-blema para manejar la máquina a través del puerto USB del PC.El eje del motor que se suministra con la máquina de fresar es un mo-

delo básico de Ferm, que nos permi-te utilizar la máquina inmediatamen-te. Naturalmente, podemos emplear otros tipos de motores, pero debe-mos de remarcar que un motor paso a paso profesional de buena calidad puede fácilmente costar más que el kit de montaje entero.

Kit de montaje¿Qué puedes conseguir por 1.659 ó 2.400 ? Las fotos de la Figura 1 y Fi-gura 2 muestran casi todas las par-tes que se incluyen en el kit. Incluyen todas las partes mecánicas, tornillos y clavijas, rodillos guías, brocas, mo-tores paso a paso, cables etc, además del excitador electrónico de las dos placas de circuito pre-ensambladas. El motor paso a paso Ferm (y soporte asociado), mencionado anteriormen-te, se incluye también en el kit. Un panel MDF (también incluido en el kit) sirve como plato base.El software que acompaña a la má-quina de fresar consiste en dos pro-gramas: una interfase para configu-rar y operar la máquina y un progra-ma de conversión para circuitos PCBs (ver abajo). El kit incluye instruccio-nes de ensamblado que proporcionan una descripción paso a paso de cómo montar la máquina. No hay demasiadas cosas que pue-dan salir mal durante el ensamblado. Las diferentes piezas se fijan de for-ma muy exacta gracias a la combina-

Figura 1. Las partes mecánicas del kit montaje.

Figura 2. Las placas de circuito ensambladas y el eje y soporte del motor.

Podemos pedir el kit de

construcción para la máquina

de fresar Profiler rellenando

el documento de pedido en la

página web de Elektor Electronics

(www.elektor.es). El precio son

1.599 euros, incluido el IVA,

más gastos de envío. Los gastos

de viaje dependen del país y

se encuentran en el documento

de pedido en la página web. El

kit es suministrado y facturado

directa y exclusivamente por el

fabricante, no por Elektor. Para

ampliar más información visite la

web del fabricante: www.colinbus.

com/English/cprrange_en.htm

Los principales de Elektor

Page 67: E Book Los Principales de Elektor Es 1

1103/2007 - elektor, la electrónica que sorprende

ción de orificios precisos en los pane-les de acero y los rodillos de acero en el aluminio extrusionado, por lo que no se necesitan más alineamientos. Debemos de conseguir el cable ne-cesario para las dos placas de circui-to para el control y excitadores elec-trónicos, y soldar en su lugar los co-nectores y el transformador.Todos los pasos para el ensamblaje se describen claramente en las ins-trucciones. Sin embargo, nos gusta-ría aclarar algunos detalles. Una vez que ensamblamos parcial-mente la máquina, las guías deben de ajustarse. La precisión de la máquina de fresa-do depende completamente de este ajuste. Las guías para el puente (en los lados) tienen tres rodillos, de los cuales uno se puede ajustar usando un plato de ajuste. Debemos ajustar-los de forma que haya muy poco jue-go, pero no se debería dejar demasia-do apretado, ya que de otro modo los rodillos se bloquearían. También hay una construcción similar en la par-te superior del puente y en la colum-na del motor, pero la parte posterior debe desensamblarse parcialmente para acceder a los rodillos. Los drivers usan ejes con soportes trapezoidales que funcionan con tuercas de plástico especiales (ver Figura 4). Esas tuercas se fijan con pines transversales que proporcionan el acoplamiento al puente o la colum-

na. Los ejes X e Y también se deben alinear con mucho cuidado para al-canzar la precisión y linealidad espe-cificada. Observe que las tuercas de plástico especiales en esos ejes de-ben lubricarse usando sólo grasa in-cluida en el kit. No use grasa normal. El resto del proceso de ensamblado se describe adecuadamente en las instrucciones incluidas con el kit.

SoftwareLa interface de usuario, escrita espe-cialmente para la máquina de fresado de Colimbus, proporciona la interface de operador para la máquina (Figura 6). Este programa está diseñado para que incluso usuarios sin experiencia puedan trabajar fácilmente con ella. La pantalla se compone de varias ventanas.

Figura 3. Dibujo de la sección de corte del cabezal montado en el puente. Figura 4. Detalle de la tuerca de plástico con los pines invertidos, el cual proporciona un acoplamiento sin holguras.

Figura 5. La columna de taladrado y la guía en el puente.

Los principales de Elektor

Page 68: E Book Los Principales de Elektor Es 1

12 03/2007 - elektor, la electrónica que sorprende

SOBRE EL TERRENO FRESADORA

La superficie de trabajo efectiva de la máquina se muestra en la ventana del lado derecho. Después de cargar un fichero, podemos utilizar el ratón para colocar el objeto a mecanizar en el si-tio que deseemos de la superficie. La máquina empezará a trabajar en la posición exacta. Podemos también es-pecificar los valores de todas las con-

figuraciones y preferencias para la máquina. Además, podemos operar manualmente todos los ejes de la má-quina utilizando este programa. Todo lo que podamos pensar puede confi-gurarse, como leer puntos de memo-ria, puntos de cero relativo, etc, con precisión micrométrica. La interface de usuario incluye un

programa de contorneo de PCBs (Figura 7) que puede usarse para editar y mezclar los ficheros Ger-ber y Excellon generados por los programas más comunes de PCB y después convertir las coordena-das de esos ficheros en contornos usados por la máquina de fresado. Podemos especificar de forma ma-nual los puntos de referencia usa-dos en la placa del circuito y usar-los después para asegurar que los datos en los ficheros Gerber y Ex-cellon son exactamente registrados con todo (el fichero Gerber contiene los datos de las pistas PCB, mien-tras que el fichero Excellon contie-ne los datos de orificios). El fichero generado por el programa se puede importar en el programa de interfa-ce de usuario de forma que pode-mos ver la placa PCB, la cual puede arrastrarse a una posición específi-ca en la superficie de trabajo.Si queremos procesar ficheros en 3D (tales como ficheros DXF), necesita-remos el programa RAMS3D, el cual no se incluye en el kit de montaje de-bido al precio especial. Finalmente, tenemos algo para los más perfeccio-nistas: el set completo de comandos para controlar la máquina de fresado está disponible gratuitamente, para que podamos escribir nuestro propio código.

1001 jobsEsta robusta y versátil máquina de fresar abre un mundo de oportuni-dades para aficionados y profesio-nales que no tengan miedo de re-mangarse las mangas. Con esto, hacer aberturas rectangulares en una caja no será nada complicado y si necesitamos realizar una ranu-ra para un mando no diremos que nos lo den hecho. Es más, esta má-quina de fresar es una herramienta manejable para realizar otras cosas que no tengan nada que ver con el mundo de la electrónica, por ejem-plo, podemos utilizarla para realizar las diferentes piezas de un mode-lo de avión o juguete para nuestro hijo (¡y donar el rompecabezas a un local de caridad!). Resumiendo, se pueden hacer un montón de cosas con esta máquina. Una vez la hayamos usado, no que-rremos hacer nada sin ella.

(060232-1)

Figura 6. La interface de usuario. La superficie de trabajo de la máquina se muestra en la parte superior derecha.

Figura 7. Los ficheros Gerber y Excellon se pueden leer con el programa de diseño de PCBs yconvertir en datos para la máquina de fresar.

Los principales de Elektor

Page 69: E Book Los Principales de Elektor Es 1

50 elektor, la electrónica que sorprende - 11/2007

SOBRE EL TERRENO MICROCONTROLADORES

Tarjeta Flash Sistema con un 8051 para rápidos desarrollpor Alexander Kniel

Los controladores flash se pueden programar fácilmente, por ello son adecuados para el rápido desarrollo de aplicaciones al igual que para la enseñanza. Hasta ahora, los datos de programas se enviaban la mayoría de las veces a través de la interfaz serie, no obstante, en especial los ordenadores portátiles, a menudo sólo tienen interfaces USB. La solución es nuestra tarjeta Flash de uso versátil. El corazón del sistema es el AT89C5131A, un controlador 8051 ampliado, con núcleo 80C52 y USB de alta velocidad. Además, el dispositivo viene de fábrica con una interfaz de actualización con la que se puede cargar el nuevo firmware. Por otra parte, Atmel suministra también el software adecuado por medio del programa gratuito FLIP.

La “tarjeta Flash” conocida por muchos lectores de Elektor ha acercado el mun-do de los microcontroladores a muchos principiantes. Y esto no debe asombrar-nos puesto que los controladores que in-cluyen memoria flash son fáciles de pro-gramar, como es el caso del AT89C8252 empleado en aquel entonces. La trans-ferencia de los datos del PC de desarro-llo al controlador, con la tarjeta Flash de Elektor, se realiza a través de la interfaz serie, y esta tarjeta, al igual que muchas otras afines, ampliamente utilizada en la enseñanza. Lamentablemente, la buena y antigua “RS232” es cada vez más difícil de encontrar. Además los PC portátiles poseen casi únicamente interfaces USB y ningún puerto de impresora ni interfaz serie. Si un profesor desea entregar tar-jetas de experimentación a sus alumnos, para que puedan programarlas en casa con sus ordenadores portátiles, será ne-cesario buscar otra solución.El autor, profesor de electrónica de una escuela de formación profesional y téc-nica de Heilbronn, debido a los motivos mencionados, desarrolló una tarjeta Flash que apuesta por un controlador moderno con interfaz USB. Su selección recayó en un AT89C5131AM de Atmel, que posee un núcleo 80C52 y, por lo tanto, al igual que el AT89C8252, pertenece a la familia de los 8051. El componente no sólo contie-ne una USB de alta velocidad, sino que,

más bien, fue desarrollado para su empleo con equipos que se comunican por USB, como impresoras, cámaras, etc. Además el controlador está incluso equipado de fábrica con un interfaz de actualización, a través de la que se puede cargar el nue-vo firmware. Exactamente esto le propor-cionó al autor, aficionado al hardware y a todo tipo de lenguajes de programación, la oportunidad de construir una tarjeta Flash USB extremadamente sencilla. Atmel su-ministra también el software adecuado por medio del programa gratuito FLIP. Por tanto, sólo se debe preparar el código, en forma de archivo hex, y ya se puede em-pezar a trabajar.

Sucesores de la tarjeta flashLa tarjeta desarrollada por Alexan-der Kniel, en su primera versión, fue montada y puesta en funcionamiento por alumnos en varios PC portátiles. En el laboratorio de Elektor, la pla-ca se modificó un poco; entre otros aspectos, Chris Vossen, técnico de desarrollo de Elektor, integró inclu-so una interfaz LCD. De esta mane-ra, la tarjeta sigue las huellas de la placa flash de Elektor del año 2001 y es apta para quienes deseen dar los primeros pasos en programación de microcontroladores, pero también para aplicaciones más exigentes en

controles de equipos, robótica y otras muchas más.El corazón de todo el sistema es el ya mencionado AT89C5131AM, un 8051 ampliado. Su núcleo es un 80C52X2 con 6 pulsos de reloj por ciclo de co-mando. Además de la Flash de 32 KB, el componente posee una RAM ampliado de 1024 Bytes, EEPROM adicional y muchos otros periféricos útiles. También es útil que el contro-lador, en su versión M, pueda inclu-so funcionar con 5 V y que se pueda obtener una versión en encapsulado PLCC52 de fácil manejo. No obstan-te, lo más importante son los módulos de alta velocidad USB-1.1 y 2.0 (para expertos: con punto terminal 0 para Control Transfers al igual que otros seis puntos terminales con memoria FIFO de hasta 512 bytes). Quien de-see ocuparse del desarrollo de soft-ware USB tiene aquí todo lo que po-dría desear, no obstante, también se necesita algo de conocimiento técni-co. Las demás personas deberán con-templar el controlador como un 8051 normal, que se puede programar a través de un puerto USB.El diagrama de circuito (Figura 1)muestra una alimentación doble, se-

Figura 1. Diagrama de circuito de la tarjeta.

Placa Flash USB • 69 Los principales de Elektor

Page 70: E Book Los Principales de Elektor Es 1

1 3

2

IC27805D10

1N4001

P2.23

P1.54

P1.65

P1.76

P2.39

P2.511

P2.614

P2.715

P2.410

P3.020

P3.129

P3.230

P3.331

P3.432

P3.533

P3.635

P3.739

X112

X213

VSS

41

P1.047

P1.148

P1.249

P1.350

P1.451

P0.052

P0.145

P0.244

P0.342

P0.440

P0.538

P0.637

P0.736

VDD

16

AVDD

17

P4.07

P4.18

EA26

ALE27

PSEN28

VREF24

D+23

D-22

PLLF21

AVSS

19

RESET43

UCAP18

UCAP

25

NC34

NC46

P2.01

P2.12

IC1AT89C5131

C11

22p

C10

22p

R41k5

R227R

R327R

R11

4k7

C1

100n1234

5 6

K2

R5

100R

C4

10n

C3

2n2

2

31

K9

16V

C12

1000u16V

C13

100u

C14

100n

D12

C2

100n

R12

1k5

D9

BAT46

1 23 45 6

K4R6

4k7

+5VR7

4k7

JP2R10

1k

P1.0P1.1 P1.2P1.3 P1.4P1.5 P1.6P1.7

+5V

P1.1P1.2

P1.4P1.5P1.6P1.7

P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7

S5S3 S4 S6

C6

100n

P3.0P3.1 P3.2P3.3 P3.4

P3.6P3.5P3.7

C7

100n

1

2 3 4 5 6 7 8 9

R11k5

D1

P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7

P0.6P0.4P0.2P0.0

P0.7P0.5P0.3P0.1

+5V

P0.0

D2

P0.1

D3

P0.2

D4

P0.3

D5

P0.4

D6

P0.5

D7

P0.6

D8

P0.7

JP1

+5V

P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7

8 7 6 5

41 2 3

S2

P3.2P3.3

P3.4P3.5

P3.7P3.6

1

23456789

R910k

P1.3

16V

C9

1u

P3.0P3.1

+5V

D11

6V2

JP4

C15

100n

C16

100n

P2.0P2.1P2.2P2.3

+5V

C5

100n

P1

10k

P2.7

JP3

16V

C8

10u

+5V

P1.0

S1

1 23 45 67 89 10

K3

1 23 45 67 89 10

K8

1 23 45 67 89 10

K6123456789101113

1214

K7

+5V

P2.4

+5V

X1

24MHz

+5V

070125 - 11

5111/2007 - elektor, la electrónica que sorprende

USBlos de software

Placa Flash USB • 70 Los principales de Elektor

Page 71: E Book Los Principales de Elektor Es 1

52 elektor, la electrónica que sorprende - 11/2007

SOBRE EL TERRENO MICROCONTROLADORES

leccionable a través del USB o (en el caso de que JP4 esté insertado) a través de la conexión de alimenta-ción K9 y del controlador de tensión IC2. Los terminales D+ y D- del con-trolador son las líneas de datos USB. Para activar el cargador de arranque USB, se debe aplicar un nivel bajo a /PSEN a través de JP2 (el puente que se encuentra hacia el borde de la tar-

mayor comodidad para la conmuta-ción entre el modo de ejecución y el de descarga, puede conectar conmu-tadores en JP2 y JP3 que se alojen directamente en la tarjeta o que se integren a una placa frontal.

Cuatro puertos completos de 8 bitsEl controlador posee cuatro puertos completos de 8 bits, disponibles res-pectivamente en los terminales o asig-nados a periferia especial. Se puede ac-ceder al puerto P0 a través de K3 y éste conduce además hacia ocho LEDs, que se pueden conmutar con resistencias en serie con una tensión Vdd (+5V). El puerto P1 es de utilización libre y ac-cesible a través de K6. El puerto P2 se encuentra en el terminal K7del LCD. Un LCD opera aquí en modo de 4 bits. También se encuentra disponible el ne-cesario potenciómetro de contraste P1. Finalmente, el puerto P3 está previs-to especialmente para introducción de datos y se puede emplear también ex-ternamente a través de K8. Para verifi-car programas propios, la tarjeta está equipada de resistencias elevadoras en el puerto P3 y de cuatro pulsadores (P3.0…P3.3) al igual que de interrupto-res DIP (P3.4…P3.7). Como es común-habitual, los conmutadores deben te-ner la propiedad de carecer de rebo-te, lo cual, la mayoría de las veces, se puede realizar por medio de software. Los terminales P3.2 y P3.3 poseen, no obstante, una eliminación adicional de rebotes por hardware en forma de con-densadores (C6 y C7), dado que estos conducen a las entradas de interrup-ción del controlador. No se debe olvi-dar el puerto P4 con sus dos termina-les P4.0 y P4.1, que forman el bus I2C y que son accesibles a través de K4. La tarjeta Flash USB (Figura 2) se en-cuentra a disposición en la tienda de Elektor bajo el número 070125-1. Se-lectivamente, también se puede soli-citar de manera directa un juego com-pleto de componentes (070125-71). El montaje sobre la tarjeta no represen-ta ninguna dificultad. ¡En el área del casquillo del USB se debe observar in-condicionalmente que no existan co-nexiones a masa entre D+, D- y 5V del PC! Dado que la tensión de operación de 5 V, D- y D+ del USB no están pro-tegidos especialmente, vale la pena realizar un control con el multímetro – ¡en todo caso, previamente se debe retirar el controlador del zócalo! De-bajo del zócalo del CI hay lugar para un condensador cerámico adicional de 100 nF. Previamente, éste ya debe en-

jeta). Si se presiona la tecla S1 de re-set se inicia el cargador de arranque con la recepción de datos en la inter-faz USB. Para activar el USB, el jum-per JP3 debe estar cerrado (puen-te que se dirige hacia IC2). De esta manera, la resistencia elevadora R4 se encuentra en D+ e indica al PC la presencia de un dispositivo USB de alta velocidad. Quien desee tener

IC2

C11

C142

C10

S6

K9

1

K2

1

ONR3R4

2 3 4

S2

9 10

K8

C12

+

D10

3

C3+

R12 D9

JP4

D12

R10 JP

2

C13 R2

D11

6

C9C4

C2

X1

5

R5

+

JP3 IC1

C1

JP1C5

P1

C15

S5

S4

R9

R11

S3

S1

21

C7

C6

+

R1

C8

D2

2 101 9

D3 D5D4 D6 D8D7

2

K3

121

109

K6 D1

2

(C)

Ele

ktor

0701

25-1

R7R6

1

K7

14

K4

13

Figura 2. El equipamiento montaje de la tarjeta no debe representar ninguna dificultad.

Lista de piezasResistencias:R1 = 1,5k x 8 red de resistenciasR2,R3 = 27 R4,R12 = 1k5R5 = 100 R6,R7,R11 = 4k7R9 = 10k x 8 red de resistenciasR10 = 1 kP1 = potenciómetro de 10 k

Condensadores:C10,C11=22 pC3 = 2n2C4 = 10 nC1,C2,C5..C7,C14..C16 = 100 nC8 = 10 μ / 16 VC9 = 1 μ / 16 VC12 = 1000 μ / 16 VC13 = 100 μ / 25 V

Semiconductores:D1..D8,D12 = LED rojo, de baja corrienteD9 = BAT46

D10 = 1N4001D11 = diodo Zener 6V2IC1 = AT89C5131AMIC2 = 7805X1 = cuarzo de 12 MHz

Además:JP1,JP4 = regleta de clavijas de 2 polosJP2,JP3 = regleta de clavijas de 3 polosK2 = casquillo USB-AK3,K6,K8 = 2 regletas cóncavas de

conectores de 5 pinesK4 = 2 regletas de clavijas de 3 pinesK7 = 2 regletas cóncavas de conectores

de 7 pinesK9 = casquillo para fuente de alimentación

para montaje de impresoraS1,S3...S6 = teclado en miniaturaZócalo PLCCTarjeta (disponible en la Elektor Shop

bajo el número 070125-1).En Elektor Shop también se encuentra

disponible un juego de componentes (070125-71). Consulte el anuncio de la tienda al final de la revista o el sitio www.elektor.de

Placa Flash USB • 71 Los principales de Elektor

Page 72: E Book Los Principales de Elektor Es 1

5311/2007 - elektor, la electrónica que sorprende

contrarse montado. De esta manera se tiene un desacoplamiento óptimo de la tensión de alimentación.

Puesta en marchaPara la primera prueba se debería em-plear una fuente de alimentación (8-12 V DC). La alimentación se conecta in-sertando el puente JP4. Ahora se debe iluminar el LED DI. En el caso de que ya se encuentre conectado un LCD, éste deberá mostrar píxeles oscuros en la lí-nea superior. Eventualmente se debe ajustar el potenciómetro de contraste hasta que ambas líneas se diferencien claramente. Únicamente después del inicio por medio de un programa la lí-nea superior también se vuelve clara. Quien posea un osciloscopio también podrá verificar la señal de 12 MHz en el cuarzo. De esta manera queda en claro que el controlador funciona.

Para la primera verdadera prueba de software se debe cargar un programa. Para esto sirve el FLIP (FLexible In-Sys-tem Programmer), que se puede descar-gar gratuitamente de la página Web de Atmel (www.atmel.com). Con la pala-bra de búsqueda “Flip” actualmente se encuentra la versión FLIP 2.4.6 para Windows (4 MB, revisión 2.4.6, actuali-zada en mayo de 2006). El documento flip-2_4_6.zip se debe extraer en un di-rectorio propio para que se pueda ejecu-tar el archivo Setup.exe que allí se en-cuentra. Siga las instrucciones y acepte las condiciones de licencia y la ruta de instalación propuesta. A continuación, obtendrá una pequeña lista de instruc-ciones con los pasos de que debe reali-zar a continuación (Figura 3). El progra-ma en sí mismo se encuentra en C:\Pro-gramme\Atmel\FLIP 2.4.6\.Enchufe ahora el conector USB. Coloque el puente JP2 en la posición USB (bor-de de la tarjeta). Para mayor seguridad, presione además el pulsador de reset S1 e inserte el puente JP3. De esta manera comienza la descarga del firmware por USB y se espera establecer contacto con el PC. El programa muestra las informa-ciones “Vendor-ID 03EB” y “Produkt-ID 2FFD”, con lo que Windows puede de-terminar cuál es el controlador adecua-do. Windows reconoce la presencia de un dispositivo nuevo y pregunta por el controlador correcto. Seleccione el con-trolador de la carpeta C:\Programme\At-mel\FLIP 2.4.6\usb (véase la Figura 4). Una vez que esté instalado, podrá en-contrar el dispositivo nuevo en el gestor de Windows. Se lo reconoce por el nom-bre “Jungo AT89C5130/AT89C5131”.

Figura 3. FLIP, el software programador gratuito, enumera los pasos a seguir durante la puesta en funcionamiento de la tarjeta.

Figura 4. Windows reconoce el controlador como un dispositivo nuevo.

Figura 5. Tras un clic en el botón RUN, FLIP carga el programa en la memoria flash del controlador.

Placa Flash USB • 72 Los principales de Elektor

Page 73: E Book Los Principales de Elektor Es 1

54 elektor, la electrónica que sorprende - 11/2007

SOBRE EL TERRENO MICROCONTROLADORES

En el caso de que esto no haya funcio-nado, se inicia la búsqueda del proble-ma. Las posibles causas del fallo pue-den encontrarse en puentes conectados incorrectamente. Si usted, por ejemplo, activa la conexión del puerto USB con JP3 (resistencia elevadora en D+), pero no ha iniciado el firmware interno (JP2 se encuentra todavía dirigido hacia RUN, o no se realizó un reset después de la permutación), Windows indica la presencia de un dispositivo nuevo pero defectuoso. Por el contrario, usted pudo haber iniciado correctamente el fir-mware de actualización, pero colocó de manera errónea el puente JP3. En este

chivo hex adecuado en el menú Archi-vo/Cargar archivo HEX, o empleando la tecla F4. Seleccione el programa 5131_TEST_ELEKTOR.HEX, que encontrará en la página Web de Elektor, conjuntamen-te con el texto fuente BASCOM-AVR. Un clic sobre el botón RUN (ver Figura 5) carga finalmente este programa a la memoria flash. Para ponerlo en marcha, a continuación, debe cambiar JP2 y pre-sionar la tecla de reset. Atención: En los nuevos controladores el campo “BLJB” se encuentra activado automáticamente. Durante la primera descarga de progra-ma debe eliminar la marca de selección pues de lo contrario el programa no se ejecuta al finalizar la descarga.Si tras la prueba, desea descargar un nuevo archivo hex, debe retirar el conec-tor del puerto USB y volver a realizar la conexión, naturalmente, con la correcta posición de los puentes y después del re-set. A continuación debe volver a abrir la conexión en FLIP. De manera alternativa, se puede mantener insertado el conector USB y retirar únicamente JP3, con lo que el dispositivo se encuentra de igual ma-nera aislado del puerto USB pero conti-núa recibiendo alimentación de tensión. Para una nueva actualización de progra-ma se debe volver a cambiar en primer lugar JP2. A continuación se vuelve a presionar la tecla de reset y, finalmente, se conecta JP3 dos segundos más tarde. De esta manera, se inicia el dispositivo USB. En FLIP se debe volver a abrir la interfaz y entonces puede comenzar la transmisión de datos.

caso, Windows no reconoce que se ha conectado un dispositivo y, correspon-dientemente, no se establece ningún contacto. No obstante, después de una breve familiarización, los ajustes ya no representarán ningún problema y usted establecerá el contacto con el PC exac-tamente cuando lo requiera.

Actualización de programaInicie ahora el FLIP. Por medio del menú Dispositivo/Seleccionar, o bien con la te-cla F2, o el símbolo de CI, se debe se-lecciona el chip AT89C5131 correcto. Por medio de Ajustes/Comunicación/USB, o bien con el símbolo de cable, o la tecla F3, seleccione la interfaz USB y ábrala. Finalmente, debe cargar todavía un ar-

Figura 6. El menú principal del compilador BASCOM.

Test de hardware en Bascom-51

‚Test sencillo para entradas,‚salidas y LCD‚**********************

Dim X As Byte

P1 = 0

ClsLcd „ 8051-Test „Wait 1LowerlineLcd „ Elektor „Wait 3

For X = 1 To 13Shiftlcd RightWaitms 200Next

ClsLcd „ Test Port 0 „LowerlineLcd „ Bit 2 exp 0 „

P0 = &B11111110Wait 1LowerlineLcd „ Bit 2 exp 1 „P0 = &B11111101Wait 1LowerlineLcd „ Bit 2 exp 2 „P0 = &B11111011Wait 1LowerlineLcd „ Bit 2 exp 3 „P0 = &B11110111Wait 1LowerlineLcd „ Bit 2 exp 4 „P0 = &B11101111Wait 1LowerlineLcd „ Bit 2 exp 5 „P0 = &B11011111Wait 1LowerlineLcd „ Bit 2 exp 6 „P0 = &B10111111Wait 1Lowerline

Lcd „ Bit 2 exp 7 „P0 = &B01111111Wait 1LowerlineLcd „ All Bits „P0 = &B00000000Wait 1

ClsLcd „ Test Port 3 „LowerlineLcd „=> Port 0 (LED) „Wait 3

Status:P0 = P3X = P0ClsLcd „ Inputs „LowerlineLcd „Port 3 = „ ; X ; „ „Waitms 60Goto Status

End

Placa Flash USB • 73 Los principales de Elektor

Page 74: E Book Los Principales de Elektor Es 1

5511/2007 - elektor, la electrónica que sorprende

Programación con bascomCuando se trata de dar los primeros pasos en la programación del sistema, la herramienta correcta es el Basic-Compiler BASCOM-51 (naturalmente, de igual manera, se puede programar el controlador en lenguaje C o en Ass-embler). Es posible descargar una ver-sión de demostración de este software en la página del fabricante MCS-Elec-tronics (www.mcselec.com). La ver-sión gratuita genera code de hasta 4 KB, lo cual es suficiente para muchas aplicaciones.La Figura 6 muestra el menú princi-pal del compilador. Para el control co-rrecto de la tarjeta, se debe estable-cer en el menú de opciones la asigna-ción de los pines del LCD en el puerto P2 (Figura 7).

Bascom permite el ajuste de diferen-tes archivos de registro para los deriva-dos individuales del 8051. A saber, no existe ningún ajuste especial para el AT89C5131, pero el controlador es am-pliamente compatible con el 8052. Por lo tan-

to, se debería trabajar con el archivo de registro 8052.DAT.La lista de instrucciones muestra el progra-ma de prueba en texto

fuente. Es de fácil lectura y se explica en gran medida por sí mismo. Tras una introducción al LCD, sigue un bucle de iluminación se-

cuencial para compro-bar el funcionamiento de todos los LED del puerto P0. A continua-ción, en un bucle sin

fin, se leen las entradas del puerto y se copian

sus estados en la salida P0 y se los muestra también en el LCD. También se puede activar

el teclado de ratón S2 y los pulsadores de S3 a S6 para

comprobar la asignación de los pines de puer-

to. De esta manera se ilumina en cada

ocasión el LED co-rrespondiente a

la salida. Así, el programa sirve tam-

bién como un verificador casi

completo de todo el hardware.

Un par de ideasDeseamos finalizar exponiendo un par de ideas para desarrollos ulterio-

res: El controlador posee una memo-ria EEPROM interna, similar a la que

se encuentra en el 89S8252 y en el 89S8253. No obs-tante, aquí la res-ponsabilidad re-cae sobre otros registros de con-trol (SFR). Por esta razón, para

el control del hardware adicional, no es posible eludir un estu-dio detallado de la ficha técnica.Al igual que el 8052, también el AT89C5131 posee incluso una inter-faz serie, que se puede dirigir en Bas-com con comandos del tipo “print” e “input”. Dado que, no obstante, la tar-jeta flash USB no contiene una interfaz serie, se debe conectar adicionalmen-te un controlador de línea (por ejem-plo, MAX232). Entonces ya no existen obstáculos contra las aplicaciones tí-picas de interfaz, esto es, el contro-lador se puede emplear, por ejemplo, como instrumento de medición de PC; contador o controlador de motor.Y, por supuesto, el AT89C5131 puede hacer mucho más, esto es, implemen-tar un dispositivo USB completo. En la página Web de Atmel se encuentran algunas notas de aplicación, con sus correspondientes textos fuente, en las que se describe cómo es esto posible. El archivo c5131-usb-kbd-stand-alone-1_0_2.zip demuestra la construcción de un teclado USB. Con el controlador USB y el extenso archivo de software se tiene en principio todo lo que se ne-cesita para el desarrollo de aplicacio-nes USB propias.

(070999)

Figura 7. En “Opciones” se debe establecer la asignación de los pines del LCD en el puerto P2.

Placa Flash USB • 74 Los principales de Elektor

Page 75: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO MICROCONTROLADORES

24 elektor, electronics worldwide - 03/2008

Los secretos del I2CUn analizador de bus I2C para satisfacer vuestra curiosidadPor Etienne Boyer

En este artículo os presentamos un valioso instrumento, prácticamente indispensable, cuando se trata de analizar lo que sucede en el bus I2C. De hecho, este equipo permite examinar las señales más interesantes que transitan por este bus de interconexión, muy extendido y al mismo tiempo, muy sencillo en sí mismo.

El Analizador de bus I2C descrito en el presente artículo se conecta sobre el bus I2C de una aplicación cualquiera, con el fin de extraer, para poder examinar, las señales que transitan en su interior: las señales INICIO, PARADA, DIRECCIO-NES, DATOS y ADQUISICION más en particular.El equipo nos podrá servir para la pues-ta en funcionamiento de una aplicación propietaria que nos esté dando algún problema o para descifrar el funciona-miento de aplicaciones ya existentes (In-geniería Inversa).El equipo se comunica con un ordena-dor a través de un enlace USB, configu-rado como puerto serie virtual (COMx), que se alimenta directamente por el propio puerto USB y que evita el tener que recurrir al uso de un adaptador de tensión de red externo para alimentar el equipo.

El esquema eléctricoLa Figura 1 nos presenta el diagrama de bloques del circuito. Como ya he co-mentado, el Analizador de bus I2C se coloca entre el dispositivo que queremos examinar, por medio de la conexión de las líneas del bus I2C de dicho equipo, y el ordenador, que realizará la función de “investigador”. Este analizador se pue-de conectar a un máximo de tres mó-dulos I2C. El corazón y la inteligencia del montaje están reunidos en un mi-crocontrolador PIC, un PIC18F4520, en el que el enlace USB se realiza por me-

dio de un circuito integrado clásico, un FT232BM [1] de la casa FTDI. Se trata de circuito que nuestros lectores ya han encontrado en numerosos montajes des-critos en Elektor, con poco que hayan tenido algo de relación con el entorno USB.

La electrónicaAntes de introducirnos más de lleno so-bre el esquema eléctrico, nos ha pareci-do interesante realizar algunos comenta-rios sobre ciertos puntos específicos del circuito en la forma de…

…Pequeñas puntualizacionesEl cuadro de texto “Los secretos del I2Cy de su bus” recuerda los elementos que constituyen las especificaciones más im-portantes del bus I2C.Pero volvamos sobre nuestro circuito. En el bus I²C, el procedimiento de INICIO (START) consiste en detectar un flanco negativo de la señal SDA cuando la se-ñal SCL se encuentra a nivel alto (“1”), un trabajo que realiza correctamente el monoestable IC2.A del circuito 4538, montado según el esquema eléctrico re-presentado en la Figura 2.La duración del monoestable nos da, te-niendo en cuenta el retardo de R2xC2, un impulso de 8,2 μs, el cual materializa fielmente el procedimiento de inicio del bus I²C. Esta duración es también com-patible con el tiempo de reacción de un microcontrolador, pero incompatible con la persistencia de la retina del ojo huma-

Figura 1. Diagrama de bloques del Analizador de bus I2C en su configuración más sencilla.

Composant 1I2C

Composant 2I2C

Composant 3I2C

BUS I2C

LiaisonUSB

070600 - 12

START

SCAN

PIC18F4520FT232BM

DISPLAY

STOP

Analyseurde Bus I2C

Componente 1I2C

Componente 2I2C

Componente 3I2C

Analizadorde Bus I2C

ConexiónUSB

Los secretos del l2C • 75 Los principales de Elektor

Page 76: E Book Los Principales de Elektor Es 1

2503/2008 - elektor, electronics worldwide

no: para poder visualizar con un diodo LED la presencia de una fase de Inicio es indispensable el uso de un segundo monoestable. Así, el circuito integrado IC2.B tiene como función la de alargar en unos 150 ms el tiempo de activación del diodo LED verde D2.Nos encontramos con la misma situa-ción para el procedimiento de PARADA (STOP), esta vez con la ayuda de los mo-noestables del circuito IC1 y del diodo LED rojo D1. El diagrama de tiempos de la Figura 3 representa las dos seña-les de INICIO y PARADA (START y STOP) creadas de esta manera.Puntualización: los dos pulsos no tienen la misma duración ya que el pulso de INICIO acaba de manera prematura debido a las subidas de la señal SCL. El pulso de INICIO tiene una duración en la práctica de 3 μs, mientras que el de PARADA es más largo que el que se obtiene de manera teórica (8,2 μs) ya que el circuito no trabaja en la ban-da de tiempo recomendada (100 μs – 1 segundo).

El examen del esquema eléctrico de la Figura 4 muestra que la electrónica uti-lizada en este montaje es bastante poca: un PIC, un circuito interfaz USB de la casa FTDI, y un par de circuitos integra-dos que componen el doble monoesta-ble, los 4538. Examinemos un poco más de cerca sus funciones.El corazón del montaje toma la forma de un microcontrolador de la casa Mi-

crochip, un PIC18F4520 [2], una ver-sión mejorada del ya famoso 18F452. Estos dos microcontroladores son com-patibles, terminal a terminal, entre ellos pero también con el célebre 16F877. Su función consiste en analizar las señales de entrada RC3 y RC4 del PIC, atacadas directamente por las señales SCL (Serial CLock, es decir, Reloj Serie) y SDA (Serial Data, es decir, Datos Serie). Es el botón pulsador S3 (SCAN) el que autoriza el inicio del análisis.Un estudio más detallado del esquema eléctrico no lleva inevitablemente a ha-cernos una pregunta: ¿el microcontro-lador tiene tiempo de poder analizar lo que pasa en el bus I²C?La respuesta es la siguiente: la dura-ción de la instrucción es de 0,2 μs, lo que representa alrededor de 12 veces la duración de 1 bit (la velocidad máxi-ma normalizada es de 400 Kbits/s) sin embargo, el margen de maniobra es su-ficientemente fiable para efectuar el tra-tamiento completo. Además, el recono-cimiento de los procedimientos de START y de STOP pasa por la detección de los flancos de las señales, lo que complica el programa de aplicación. El microcon-trolador no tiene tiempo de analizar de-tenidamente el bus I²C. Así pues, se im-pone una solución física para respaldar y apoyar la solución lógica, gracias a los monoestables sensibles a la llegada de un flanco de señal (como hemos men-cionado anteriormente en el apartado de “Pequeñas puntualizaciones”).

Ahora que ya hemos realizado la “repa-ración” del proceso de INICIO (START), basta con que analicemos cada impulso de reloj (señal SCL) y comenzar a mues-trear los datos entrantes en la señal SDA en ese instante. Una vez que hemos analizado las señales, el microcontrola-dor almacenará cada evento en memo-ria como lo hace un sistema de adqui-sición de datos (data logger). Los cuatro eventos a tratar son el INICIO (START), el OCTETO de datos, la ACEPTACIÓN y la PARADA (STOP). La memoria se rellena al ritmo que el tráfico en el bus y, una vez llena, se transfiere al ordenador por medio de un enlace serie (el bus USB es, por principio, un enlace serie y no uno paralelo).Si el tráfico sobre el bus es demasiado lento, el pulsador S2 (DISPLAY) permite vaciar la memoria sobre el ordenador con el fin de visualizar el resultado sin tener que esperar el llenado completo de la pila.La comunicación hacia el ordenador se realiza por medio de un circuito bastan-

Figura 2. Un monoestable disparado por flanco negativo.

IC2.A

RCX CX

1

2 1

4

3

R

6

75

C2

1n

R2

8k2

VCC

START

SDA SCL

Característicastécnicas• Análisis del bus I²C a 100 y 400 Kbits/s

• Registro de 620 eventos I²C contiguos

• Detección física de las señales START y STOP. Visualización sobre 2 diodos LED.

• Comunicación USB por puerto Com virtual.

• Auto-alimentación de 5 V por puerto USB.

• Programación del PIC en lenguaje C (compilador CCS).

• Programa Interfaz Windows hombre-maquina en C++ Builder V5 (Borland)

Los secretos del l2C • 76 Los principales de Elektor

Page 77: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO MICROCONTROLADORES

26 elektor, electronics worldwide - 03/2008

te clásico, un FT232 de la casa FTDI, el cual utiliza el bus USB en el modo CDC (Communication Device Class, es decir, Clase de Comunicación de Dispositivo). El resto de componentes que rodean el circuito son poco numerosos y se trata esencialmente de un cristal de cuarzo de 6 MHz y de sus dos condensadores acó-litos C7 y C8, y del conector USB de tipo B de 4 terminales.Un par de diodos LED, de color rojo y verde, están asociados a los su-cesos de STOP (D1) y START (D2) respectivamente.Dos resistencias de 27 protegen las líneas Data+ y Data–. El circuito FT232BM conmuta los +5 V sobre la re-sistencia R16, lo que significa dos cosas desde el punto de vista del puerto USB (PC): por un lado, la presencia de un periférico y por otro, el reconocimiento

Figura 3. Creacion del Start y del Stop.

Figura 4. La electrónica del esquema eléctrico se resumen en unos pocos componentes, la pareja PIC/conector USB, rodeados de una serie de conectores de todo tipo …

X1

20MHz

X2

6MHz

C5

22p

C6

22p

C7

22p

C8

22p

K31

2

3

4

5

6

K41

2

3

4

5

6

K51

2

3

4

5

6

K11

2

3

4

5

6

VCCVCC

K2

+5V

GND

USB

D–

D+

1

2

3

4

C12

33n

C11

33n

RC0/T1OSO/T1CKI

RC1/T1OSI/CCP2

RA3/AN3/VREF+

RA2/AN2/VREF-

RC3/SCK/SCL

RC4/SDI/SDA

RA5/AN4/SS

RE0/RD/AN5

RE1/WR/AN6

RE2/CS/AN7

PIC18F4520

RA4/T0CKI

RC7/RX/DT

RC6/TX/CK

MCLR/VPP

RC2/CCP1

RD0/PSP0

RD1/PSP1

RD2/PSP2

RD3/PSP3

RD7/PSP7

RD4/PSP4

RD5/PSP5

RD6/PSP6

RB0/INT

RB3/PGM

RA0/AN0

RB7/PGD

RB6/PGC

RA1/AN1

RC5/SDO

IC3

OSC1 OSC2

RB1

RB2

RB5

RB4

11

15

40

39

38

37

35

36

34

33

3112

10

32

16

17

18

19

20

21

22

13 14

26

25

24

23

30

27

28

29

1

3

2

4

6

5

7

8

9 FT232BM

PWRCTL

EEDATA

3V3OUT

RSTOUT

RESET

USBDP

USBDM

RXLED

TSLED

SLEEP

PWREN

TXDEN

VCCIO

TEST

EECS

IC4EESK

XOUT

AGND

AVCC

XIN

DCD

DSR

RXD RTS

TXD CTS

DTR

26

32

1727 28

29

14

11

12

10

31

30

19

20

24 23

25 22

21

RI18

15

16

13

3

1

9

5

2

4

6

7

8R14

27

R15

27

R16

1k5

R11

1k

R12

1k

S3

SCAN

S2

DISPLAY

VCC

VCC

VCC

R9

10k

R10

10k

VCC

S1

RESET

R7

470

R8

4k7

VCC

TP6

SCOPE-TRIGGER

SDA

SCL

TP4

TP5Tx

Rx

JP1

C9

10n

L1

VCC

TP3C10

100n

R13

470

VCC

070600 - 11

IC2.A

RCX CX

1

2 1

4

3

R

6

75 IC2.B

RCX CX

1

14 15

12

13

R

10

911

IC1.A

RCX CX

1

2 1

4

3

R

6

75 IC1.B

RCX CX

1

14 15

12

13

R

10

911

C2

1n

C4

100n

C1

1n

C3

100n

R2

8k2

R4

1M5

R1

8k2

R3

1M5

T2

2N7000

R6

330

D2

vert

START

VCC

T1

2N7000

R5

330

D1

rouge

STOP

VCC

IC1

16

8

IC2

16

8

VCC

IC1, IC2 = 4538

TP7START

TP8STOP

START

STOP

ISP ICD

2I C

2I C

2I C

SDA SCL

SDA

SCL

TP1

TP2

VCC

VCC

Los secretos del l2C • 77 Los principales de Elektor

Page 78: E Book Los Principales de Elektor Es 1

2703/2008 - elektor, electronics worldwide

de modo “Full Speed” (Velocidad Com-pleta), ya que la resistencia R16 está co-nectada sobre la línea Data+.Un componente interesante es la in-ductancia L1, con un núcleo de ferrita destinado a suprimir las interferencias de alta frecuencia. De hecho, su impe-dancia pasa de 0,15 en continua a 70 a 100 MHz, disipando en forma de calor las interferencias electromag-néticas (EMI). Dicha bobina sirve tam-bién, como complemento, para reali-zar la función de fusible, si tenemos la mala idea de cortocircuitar la tensión de +5 V de nuestro montaje, protegiendo así la alimentación del lado del ordena-dor Para evitar posibles daños, debemos hacer notar la presencia del puente JP1, que permite desacoplar la alimentación del PC.

El circuito impresoNo es necesario decir que un montaje de este tipo merece un circuito impreso. En la Figura 5 presentamos la serigra-fía de la implantación de componentes. La primera etapa, que es también la más delicada, consiste en la soldadura del único circuito integrado SMD (IC4) utilizado en este proyecto. Como siem-pre sucede en el caso de los componen-tes SMD (Componente de Montaje Su-perficial), su soldadura exige una total atención y una mano segura. Los “pads” donde va colocado el encapsulado LQFP-32 del circuito integrado IC4, han sido alargados para facilitar la solda-dura con soldador manual de este com-ponente. Comenzamos mostrando el componente a su huella en la placa, res-petando su orientación (la referencia re-donda da la posición de la patilla 1, y se encuentra directamente a su izquierda). En la serigrafía, la posición de la pati-lla 1 viene identificada por un pequeño ”1”. Iniciaremos el proceso de soldadu-ra tomando dos terminales opuestos de manera que, si los otros terminales se encuentran correctamente alineados con respecto a sus “islas” de soldadura, po-dremos hacer rápidamente la soldadura con la ayuda de un soldador de punta fina y con estaño muy fino. Verificare-mos, con una lente de aumento, la ca-lidad técnica de las soldaduras y la au-sencia de cortocircuitos a este nivel. Una vez verificado esto, podremos pasar a la colocación del resto de los componentes SMD con encapsulado 1206; operación que irá seguida por la implantación de los pequeños componentes que atravie-san la placa, como resistencias, cristal de cuarzo, condensadores, diodos LED y transistores (atención a la polaridad de todos ellos). A continuación se po-

drá acometer la colocación de los zóca-los (de buena calidad) para los circuitos integrados IC1, IC2 e IC3, terminando con la implantación de los diferentes co-nectores del tipo RJ-11 (K1, K3, K4 y K5) y los del tipo USB B (K2).Ahora sólo nos queda colocar los dife-rentes pulsadores (S2 y S3) y el interrup-tor de reinicio (S1).Importante: si la alimentación se hace por medio del puerto USB del analiza-dor, lo que suele ser el caso habitual,

tendremos que colocar el puente corres-pondiente en la posición “on” del co-nector JP1.Después de una última revisión de todo el montaje para asegurarnos de la au-sencia de errores o de cortocircuitos, es el momento de interconectar la placa de nuestro proyecto al ordenador por me-dio de un cable USB. Así, podremos ve-rificar la presencia de la tensión de ali-mentación en los puntos previstos de los zócalos, operación que debemos hacer

Figura 5. Serigrafía de la implantación de componentes del Analizador de bus I2C.

Lista de materialesResistencias:R1,R2 = 8kR3,R4 = 1M 5R5,R6 = 330 R7,R13 = 470 R8 = 4k 7R9,R10 = 10 kR11,R12 = 1 kR14,R15 = 27R16 = 1k 5

Condensadores:C1,C2 = 1 nFC3,C4,C10 = 100 nFC5 à C8 = 22 pFC9 = 10 nFC11,C12 = 33 nF

Semiconductores:D1 = LED 3 mm rojoD2 = LED 3 mm verdeT1,T2 = 2N7000IC1,IC2 = 4538

IC3 = PIC18F4520 (programado EPS070600-41)

IC4 = FT232BM (FTDI)

Varios:K1 = conector RJ-11 de terminales

(vertical)K3 a K5 = conector RJ-11 de 6 terminales

(horizontal)K2 = conector USB macho tipo BL1 = núcleo de ferritaX1 = cristal de cuarzo de 20 MHz

(HC 49/4H)X2 = cristal de cuarzo de 6 MHz

(HC 49/4H)S1 = tecla contacto miniaturaS2,S3 = tecla contacto D6 (roja y negra)JP1 = conector “header” de tres terminales

macho SIL + puentePlaca de Circuito Impreso 070600-1 dispo-

nible en las direcciones habitualesFicheros del diseño de la placa 070600-1

+ programa (programa + fichero .hex) 070600-11 disponibles para su progra-mación en www.elektor.es

Los secretos del l2C • 78 Los principales de Elektor

Page 79: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO MICROCONTROLADORES

28 elektor, electronics worldwide - 03/2008

con la ayuda de un multímetro. Si todo está correcto, podremos desconectar el analizador e implantar los últimos cir-cuitos integrados (IC1 a IC3), cuidando de no equivocar su posición. La placa dispone de un cierto número de puntos de prueba: TP1 a TP8 en la serigrafía, de los cuales, las líneas SCL, SDA, Rx y Tx, se corresponden respectivamente con los puntos de prueba TP1, TP2, TP4 y TP5). Estos puntos de prueba podrán ser dotados, o no, con un terminal como el que dispone el prototipo. Para las pruebas, el prototipo puede ali-mentarse con 5 V a partir del conector

La parte de programaciónEl código fuente del programa del mi-crocontrolador está escrito en lengua-je C y ha sido compilado con la ayuda del compilador cruzado PCH Compiler V4.010 de la casa CCS (Custom Com-puter Services). Este compilador, que to-lera ciertas variaciones sobre el lengua-je C “académico”, se encuentra así muy bien adaptado a la programación para la electrónica.El desarrollo se ha realizado sobre MPLAB V.7.62. El programa, que se eje-cuta bajo Windows, está escrito en C++ Builder V5 (Borland). El programa para Windows también se puede compilar bajo CodeGear 11, el último IDE de Borland disponible en versión de eva-luación de 30 días. Ya conocen todo lo necesario nuestros lectores.En el centro del prototipo hay un conec-tor K1, ISP, pensado con el fin de permitir la puesta en funcionamiento (ICD = In-Circuit Debugging, es decir, Depuración en el Circuito) y la programación sobre el prototipo (ISP = In System Program-ming, es decir, Programación en el Siste-ma) del microcontrolador.

Una ojeada al programaSi la electrónica es sencilla, el progra-ma colocado en el interior del microcon-trolador debe ser igual de potente. Se propone a nuestros lectores la telecar-ga del dispositivo desde nuestra página web (www.elektor.es) bajo la denomina-ción de EPS070600-11. Abordemos al-gunos aspectos prácticos.

El interfaz hombre-máquina:InstalaciónEsta aplicación, escrita en lenguaje C++ Builder V5.0, corre bajo Windows y se instala muy fácilmente con la copia del ejecutable moniteur_I2C.exe. La apli-cación necesita la instalación previa de los controladores (drivers) en el PC. Para hacer esta tarea es interesante consultar la página web de FTDI [3] y los artículos de Elektor precedentes que tratan este tema.

Configuración RS-232Al lanzar la aplicación, un primer cuadro de diálogo permite elegir el puerto COM Virtual por el que se va a realizar el en-lace USB y se van a recibir los datos que el PIC envía bajo la forma de un enla-ce serie asíncrono clásico (velocidad de transferencia de 128.000 baudios).La barra de estado indica la apertura correcta del puerto serie.

Presentación de los resultadosEl análisis de los datos se lanza por la

del bus I²C o por hilos soldados directa-mente sobre el circuito.La verificación de la parte eléctrica viene facilitada por el hecho de que los mo-noestables son independientes del pro-grama instalado: en el momento en que el prototipo se conecta sobre un bus I²C existente, los cuatro monoestables deben reaccionar a la llegada de los corres-pondientes pulsos de START y de STOP, realizando el encendido de los diodos LED verde y rojo, respectivamente.Seguidamente, el PIC puede ser ya programado.

Figura 6. Captura de pantalla del programa Monitor I2C.

Figura 7. Captura de pantalla del disparo en un osciloscopio

Los secretos del l2C • 79 Los principales de Elektor

Page 80: E Book Los Principales de Elektor Es 1

2903/2008 - elektor, electronics worldwide

pulsación sobre el pulsador S3 (SCAN). Los eventos recibidos por el bus I²C son registrados por la placa y aparecen si-guiendo un código de colores corres-pondientes a los eventos en el bus I²C. la captura de pantalla de la Figura 6representa la pantalla principal cuando la adquisición ha finalizado, esto permi-te reconocer los bits de START en verde y los de STOP en rojo, las direcciones en azul marinó y los datos en azul rey. En cualquier caso, el valor del bit de acep-tación va a modificar esa bella aparien-cia. La presencia del bit de aceptación conserva los bellos tonos azules, pero la

ausencia de dicho bit de aceptación va a convertirlos en gris.En la barra de estado también aparece el formato de los códigos trasmitidos so-bre el enlace serie entre el dispositivo de análisis y el PC (en código ASCII).Ejemplo:-> S00 para el START-> V20 para un octeto adquirido cuyo valor es 20(HEX)-> v20 para un octeto no adquirido cuyo valor es 20(HEX)-> P00 para el STOP.

Func ión s incronizac ión delOsciloscopioEs una función muy útil que permite con-figurar en el analizador 1 octeto de sin-cronización que, cuando está presente en la trama, dispara un impulso de sin-cronización sobre el terminal SCOPE_TRIGGER a fin de sincronizar un oscilos-copio en modo “disparo externo”. Esto permite visualizar la forma de onda de las señales SDA y SCL justo en ese ins-tante. Por ejemplo, la captura de pan-talla de la Figura 7 representa la se-ñal SCOPE_TRIGGER para el octeto de sincronización 21(HEX). La parte alta de

Es a Philips, en la época en que este fabricante de equipos de audio formaba parte del pelotón de cabeza, a quien debemos la presen-cia del bus I2C (Inter Integrated Circuit). Los principales dominios de aplicación de este bus han sido la domótica y la electrónica doméstica al principio de los años 80. Fue en esta época en la que hizo su apa-rición el microprocesador en los televisores y era necesario encontrar una técnica, realizable y sencilla, para interconectar los diferentes sub-conjuntos electrónicos de un aparato de este tipo.

El bus I2C es un bus serie síncrono que tan sólo utiliza tres líneas: Da-tos, (SDA), Reloj (SCL) y Masa (que sirve de referencia).

El funcionamiento del bus se basa sobre las nociones del maestro (el periférico que gestiona la comunicación, genera el reloj y emiten los datos) y el esclavo (periférico que recibe los datos y envía un acuse de recibo por una señal de reconocimiento). No debemos equivocarnos ya que, a pesar de parecer bastante rústico, éste bus puede acomo-darse a muchos microcontroladores sin que se produzca conflicto, con la condición de respetar ciertas reglas.

Las cuatro situaciones más importantes de este protocolo se muestran a continuación:

1) Transferencia de un bit sobre el bus I2C (Figura A).

El reloj no tiene la “consistencia” de un reloj verdadero, sabiendo que puede tener duraciones de tiempo variables.

2) Condiciones de START y STOP (Figura B).

En el inicio de la comunicación, la línea SDA pasa a “0” mientras que la línea SCL permanece a “1”. Es el “StartBit” (Bit de Inicio). Al final de la comunicación, cuando la línea SDA pasa a nivel “1” y la línea SCL

permanece a nivel “1” también, nos encontramos en presencia del “StopBit” (Bit de Parada).

3) transferencia de datos sobre el bus I2C (Figura C).

Cuando esta condición está definida, el dispositivo maestro coloca el bit de mayor peso sobre la línea SDA. Y valida el dato forzando bre-vemente la línea SCL a nivel alto. Y continúa este modo de funciona-miento para los diferentes bits hasta alcanzar el bit de menor peso. Cuando la transmisión ha finalizado, el dispositivo esclavo fuerza la línea SDA a nivel bajo. Esta es la…

4) Señal de aceptación (acknowledge) en el bus I2C (Figura D).

Es el dispositivo esclavo el que emite esta señal para indicar la recep-ción de todos los datos. Si todo está OK, fuerza la línea de datos a “0”.

A pesar de su sencillez, el bus I2C permite el tratamiento de opera-ciones relativamente complejas. Los diferentes diagramas de tiempo tomados en este artículo ilustran claramente este funcionamiento.

Debemos señalar que un dispositivo maestro puede también recibir datos desde un esclavo (maestro receptor).

Si nuestros lectores quieren saber más sobre el tema, pueden dirigirse a la dirección de Internet:

http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf (inglés).

Allí se pueden obtener las Especificaciones de Enero de 2000 sobre el bus I2C, con las que podran conocer todos los detalles.

(Fuente de las imágenes: Philips Semiconductors)

data linestable;

data valid

changeof dataallowed

SDA

SCL

SDA

SCLP

STOP condition

SDA

SCLS

START condition

SrorP

SDA

Sr

P

SCL

STOP orrepeated START

condition

SorSr

START orrepeated START

condition

1 2 3 - 8 9

ACK

9

ACK

7 81 2

MSB acknowledgementsignal from slave

byte complete,interrupt within slave

clock line held low whileinterrupts are serviced

acknowledgementsignal from receiver

S

STARTcondition

9821

clock pulse foracknowledgement

not acknowledge

acknowledge

DATA OUTPUTBY TRANSMITTER

DATA OUTPUTBY RECEIVER

SCL FROMMASTER

Los secretos del I2C y de su bus

A B

C D

Los secretos del l2C • 80 Los principales de Elektor

Page 81: E Book Los Principales de Elektor Es 1

SOBRE EL TERRENO MICROCONTROLADORES

30 elektor, electronics worldwide - 03/2008

los datos registrados muestra claramen-te que, a cada llegada de este octeto, la señal báscula durante la duración del octeto siguiente. La parte mediana se co-rresponde con una lupa (zoom) con un factor de zoom de 10 y hace aparecer la transición de la señal SCOPE_TRIGGER en el momento de la llegada del nove-no impulso de la señal de reloj SCL. Este instante, que se corresponden normal-mente con la respuesta del receptor, nos permite leer un nivel lógico “1” sobre la señal SDA, que viene a testimoniar la ausencia de la aceptación (ACK): el circuito I²C de dirección 10(HEX) al que iban destinados los datos 21 22 23, es así considerado ausente del bus o defectuoso.

Función DesplazamientoOtra función bastante útil permite decla-rar el inicio del registro de un cierto nú-mero de eventos. Así pues, estos eventos son sustituidos por un punto en el mo-mento de su presentación en pantalla.

Resumen del I²CUna página de ayuda integrada com-prende un limitado resumen de algunas definiciones de los eventos presentes en un bus I2C. además, esta ayuda muestra el registro de señales reales.Para transmitir los datos sobre el bus I²C es necesario vigilar dos condiciones en particular: la condición de START y la condición de STOP. La condición de START se corresponde con un flanco des-cendente de la señal SDA, mientras que la señal SCL se encuentra a nivel alto.La condición de STOP se corresponde con un flanco ascendente de la señal SDA mientras que la señal SCL se en-cuentra a nivel alto.A continuación, ocho impulsos genera-dos por el reloj permiten muestrear los 8 bits del octeto recibido, comenzando por él bit de mayor peso.

Enlaces en Internet[1] Hojas de caracter ís t icas del FT232BMwww.ftdichip.com/Documents/DataS-heets/ds232b18.pdf[2] Hojas de caracter ís t icas del PIC18F4520ww1.microchip.com/downloads/en/DeviceDoc/39631a.pdf[3] Página web de FTDIwww.ftdichip.com/[4] Compilador CCSwww.ccsinfo.com/

El noveno impulso de reloj permite una respuesta, es decir una aceptación por parte del componente que recibe el oc-teto precedente. Si el componente está presente, éste pone la señal SDA a ni-vel bajo como signo de aceptación. Éste es el principio de protocolo o “apretón de manos”. Si no, la línea queda a ni-vel alto y el emisor del octeto puede reaccionar.

¿Qué queda aún?¡Poca cosa! Tan sólo queda conectar el bus I2C de una aplicación al analizador de bus I2C, por un lado, y conectar éste último al PC por el otro. Seguidamente, lanzamos el programa monitor_I2C.exe y esperamos a que aparezca la pantalla con los primeros datos recibi-dos, tras haber activado previamente el pulsador SCAN, seguido algunos instan-tes después por el pulsado del conmuta-dor S2, DISPLAY.

ConclusiónCon una gran sencillez de uso, este mon-taje permite, a partir de componentes clásicos (Circuitos lógicos CMOS, Micro-controlador PIC, interfaz USB), efectuar el análisis de señales presentes sobre un bus I²C. Una evolución del montaje sería el uso de un PIC que contenga una pila USB (PIC18F4550). Esta solución per-mite simplificar el material suprimien-do el circuito interfaz USB y el cristal de cuarzo de 6 MHz, mejorar también las prestaciones en velocidad, ya que el PIC 18F4550 genera, gracias a un PLL, un reloj de 48 MHz. El inconveniente resi-de en el aumento de la complejidad del programa. Las librerías generadas por los editores de los compiladores cruza-dos en lenguaje C existen y proporcio-nan numerosos ficheros fuente (Compi-lador MPLABC18, CCS), pero la puesta a punto global de todo el programa no es algo que se consiga fácilmente.

Esta utilidad práctica nos permitirá ver lo que se pasa sobre el bus I2C de la cen-tral de adquisición de datos descrita en otro artículo de este número, sabiendo que dicha central posee un bus I²C que interconecta el reloj en tiempo real al resto del sistema. ¡Buena caza!

(070600-I)

El autor

El autor de este artículo ha realizado es-tudios de ingeniero en el INSA de Lyon y, después, se ha dedicado a la enseñanza, pasando las oposiciones de la Educación Nacional francesa.

Enseña electrónica a los estudiantes de la sección BTS (Brevet de Technicien Supé-rieur) desde hace bastantes años, a través de los cuales ha vivido y transmitido la evolución fantástica de la tecnología: los componentes discretos (transistor de una unión 2N2646), las memorias, los micro-procesadores y la llegada de los ordena-dores personales (PC).

La formación ha evolucionado también apoyándose ahora sobre la comprensión de los sistemas electrónicos complejos: instalación, configuración y reparación.

Incluso ahora, cuando se encuentra de-lante de un proyecto interesante, le llega la sensación de sentir esta máxima: ¡qué buena profesión la de profesor!

Etienne Boyer

Foto del prototipo. Se nota la evolución de la denominación de los componentes con respecto a la versión final.

Los secretos del l2C • 81 Los principales de Elektor

Page 82: E Book Los Principales de Elektor Es 1

Los principales de Elektor Artikeltitel • 82

5