5 de junio de 2009

Programador libre

Recientemente, me han pasado un programador bastante interesante. Os pongo la referencia. Tanto software como hardware son libres, lo que es una ventaja.

Cuando los pruebe, os comento detalles.

CC Flasher

16 de julio de 2008

Primer prototipo

Bueno, después de mucho tiempo sin escribir nada, y ahora que se han terminado los exámenes, los deadline's y demás cosas agobiantes, me decido a poner algunas fotos del prototipo que terminé hace tiempo. Sólo es el PCB del esquema que propuse en el post anterior. Lo hice en una placa muy fina, para ahorrarme trabajo en el mecanizado. Sed misericordes porque es mi primera placa en SMD ;-) En total, la plaquita mide 40x27 mm, lo que hace ver que no es sencillo soldarla a mano con un JBC de 35 W ¡y de punta gorda! (no tenia otro más fino cerca) Ya veréis cuando nos llegue en el curro la LPKF... :-p

Una vez realizada, me he dado cuenta de algunos errores que espero no volver a cometer, como, por ejemplo, no dejar más largos los PADs que van debajo del micro. Me costó un triunfo soldar el CC2430. De todos modos, todavía no lo he probado, por lo que no se siquiera si funcionará. Cuando vuelva a tener un rato disponible, haré lo propio.

Sin más dilación, ahí os dejo las fotos (perdonad la calidad, tampoco soy fotógrafo ;-))



Esta es la placa recién revelada. Creo que me pasé con el atacado...



Aquí ya están montados los componentes, no muy bien por cierto...



Y esta es la parte trasera de la placa. El reloj no quise ponerlo delante para que no se viera tanto, y como el zócalo iba detrás, pues sin problema.

Y esto es todo. Ahora sólo me queda probarla. Según la especificación, es sencillo usar el puerto de depuración. Eso será carne de mi próximo post.

29 de febrero de 2008

PCB mínimo usable para el CC2430

He cambiado de opinión. Al final de la anterior entrada dije que lo siguiente sería discutir la interfaz de programación/depuración del chip. Pero he pensado que lo voy a retrasar un poco. ¿La razón? Pues me parecía perder el tiempo abordar ese tema sin antes disponer de 'algo tangible' con lo que trastear.

Resulta que el integrado que vamos a usar tiene un encapsulado bastante común, que ahorra mucho espacio, pero que no nos lo pone nada fácil a la hora de usarlo en la placa de pruebas. Por ello, lo que a continuación se expone será un intento de hacer el PCB mínimo posible, listo para poder avanzar en el programador. No usaremos de momento nada de ZigBee, por lo que no llevará antena. Sólo lo justo y necesario para programarlo y saber que lo hemos hecho bien: el cristal, los condensadores, un led y algunas salidas más. Todo ello, en un zócalo más o menos 'usable' en la protoboard :-p

En el datasheet tenemos información sobre el footprint del chip (para QLP 48). Los pads son de 0.28 mm, con una separación de 0.5 mm. Esto quizá haga difícil el atacado de la placa, pero no creo que demasiado. En el centro, tenemos el pad de GND, que es único. No tenemos espacio entre los demás pads para poder sacar algunas líneas al exterior, sin que estas sean demasiado finas. Asi pues, tenemos dos opciones: hacer un PCB de dos capas, colocando algunas vías en GND; o hacer un topo en el centro y puentearlo por debajo... la que vea más sencilla (si no sabes de que hablo, dirígete a la página 224 del datasheet del CC2430, SWRS036E)

El software que siempre suelo usar es libre, por lo que para hacer todo el diseño del PCB voy a usar kicad o alguno parecido. Para empezar, como no tenía en la librería el componente, basándome en la sección Pin and I/O Port Configuration del datasheet, y usando esta magnífica herramienta para generar librerías de kicad (gracias a Javieralso por el enlace), hice el componente CC2430, disponible para descargar aqui:

CC2430.lib

Uso este componente en el esquema, conectándolo a los componentes mínimos necesarios que se especifican en el datasheet, en la sección Application Circuit. Como he dicho, omito toda la sección de RF, con lo que me queda: el cristal de 32 MHz (que no va a ser SMD), con sus dos condensadores (esos sí son de superficie); las RBias, para el reloj; los dos condensadores que estabilizan la salida del regulador de voltaje interno y la resistencia conectada al pin p2_2 (Debug Clock). Como añadido personal, he puesto dos LED's (con sus resistencias correspondientes), uno directamente a la fuente de alimentación y otro conectado al pin P1_7. También, he puesto una resistencia pull-up al reset. Para salir a la protoboard, he colocado un zócalo de 6 pines, conectados a: P1_5, RESET_N (antes de la pull-up), DD (Debug Data), DC (Debug Clock), VDD y GND.

Más o menos, queda algo como esto:



Como el esquema tiene varios puentes y he descartado hacer el PCB de doble cara, he colocado algunas resistencias de 0 (cero) ohms para saltar las pistas que cruzan. El resultado es el siguiente, en su primera versión:

Minimal CC2430 PCB v1.0.zip

Antes de nada, aviso de que es la primera versión y que, por tanto, no está probada en absoluto. De hecho, todavía ni la he hecho físicamente, así que, si eres impaciente, te aconsejo que te esperes a que comente como me ha ido, porque muy probablemente le tenga que hacer cambios.