[iCEStick][Hardware] ¿Como resetear el FPGA?

165 views
Skip to first unread message

Carlos

unread,
Mar 8, 2017, 9:50:58 PM3/8/17
to FPGAwars: explorando el lado libre

Que tal,


Hasta el momento no me había tenido la necesidad de resetear la FPGA de la iCEStick, para hacer pruebas con el cold boot tengo que resetear la FPGA, por el momento lo había hecho quitado la alimentación por USB y puesto de nuevo, sin embargo creo que se puede solucionar como sigue:


En la imagen de abajo se ve el pin CRESET_B (#66) este pin esta conectado a un pin del integrado FTDI por medio de la señal iCE_CREST (no tengo control sobre esta señal), al mismo tiempo esta conectado a un divisor resistivo R22 y R23, por medio de la resistencia R22 esta conectada a 3.3v, así se mantiene en 1 lógico al pin, la resistencia R23 no esta presente en la PCB.

¿Sería correcto conectar un botón en el lugar de R23 y resetear la FPGA presionando el botón?


Revisando el esquemático de la iCEZUM el botón también controla las señales de ENABLE de los reguladores de voltaje, no estoy seguro si tengo que hacer algo parecido en la iCEStick.

Saludos
-Carlos

Eladio Delgado

unread,
Mar 9, 2017, 2:57:43 AM3/9/17
to fpga-wars-explora...@googlegroups.com

Hola Carlos,

Tu suposición es correcta, poniendo un pulsador en lugar de R23 reseteas la FPGA pero también cortocircuitas a masa el pin ADBUS7 (24) del FTDI. Eso podría dañar ese pin e inutilizaría la placa.

En la Icestick, para solucionar este problema debes sustituir R45 por un valor entre 220R y 1K. El divisor formado entre R22 y R45 permite que la FPGA vea el nivel del pin del FTDI y a la vez limita la corriente que entrega el FTDI al poner a masa el pin de CRESET_B con el pulsador.

Los esquemáticos de Kicad que estáis mirando son de la IceZUM v1.0. En esta versión había la posibilidad de hacer este tipo de reset que estamos comentando o bien un "power-on reset" ciclando la alimentación, según qué resistencias se montaran. En la versión 1.1 el reset siempre es poniendo a cero el pin CRESET_B. No hay que resetear nada más en la placa.

Saludos, Eladio


--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el-lado-libre+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a fpga-wars-explorando-el-lado-lib...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/fpga-wars-explorando-el-lado-libre.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/42e1548a-df4e-4b95-bc34-02b10976d04b%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Carlos

unread,
Mar 10, 2017, 12:03:10 AM3/10/17
to FPGAwars: explorando el lado libre
Gracias Eladio, sabia que vendrias al rescate :D

Estuve buscando entre las resistencias que tengo y encontre:

* 200 ohms 1% tolerancia, 0603, 1/10 watts
* 200 ohms 1% tolerancia, 0805, 1/8 watts
* 1k, 5% tolerancia, 0603, 1/10 watts
* 1k, 5% tolerancia, 0805, 1/8 watts

Me parece que la adecuada es la de 1k empaquetado 0805, ¿te parece bien ese valor?

El fin de semana haré los cambios en la iceStick.

Saludos

Eladio Delgado

unread,
Mar 10, 2017, 6:14:01 AM3/10/17
to fpga-wars-explora...@googlegroups.com
Hola Carlos,

Con 1K va perfecto! La tensión máxima de salida a nivel bajo del FTDI es 0.18V, el divisor 1K-10K aumenta eso en unos 0.3V, con lo que a la entrada del reset tienes 0.48V máximo.

Cuando diseñé el circuito de reset no veía muy claros los datos que hay sobre esto en el datasheet de Lattice y decidí medirlo. Con las tensiones que hay en la Alhambra, el Reset se activa en 1.50V (flanco de bajada) y se desactiva en 1.78V (flanco de subida).

Esos 1.50V están muy alejados de los 0.48V que tendrías con 1K, va a funcionar sin problemas.

Gracias a ti y a todos los que estáis experimentando con estas cosas!! Son aportaciones muy importantes!!

Saludos, Eladio




--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el-lado-libre+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a fpga-wars-explorando-el-lado-li...@googlegroups.com.

Carlos

unread,
Mar 10, 2017, 5:41:25 PM3/10/17
to FPGAwars: explorando el lado libre

Que tal Eladio,

Me había quedado con la duda de tu primer respuesta así que busque el esquemático de la versión 1.1 y en el botón (SW4) del que se obtiene la señal FPGA_RESET vi que hay un diodo conectado en inversa, del botón al pin del FPGA, como soy novato en diseño de hw no estoy seguro de su función, ¿es para aislar los 5v del botón de los 3v3 de la resistencia de pull-up (R3)?

Saludos

- Carlos



Eladio Delgado

unread,
Mar 13, 2017, 11:59:02 AM3/13/17
to fpga-wars-explora...@googlegroups.com
Hola Carlos,

Sí, es correcto. El nodo SYS_RESET va al pin de reset de la placa (en J5) y ahí debe haber niveles 0 a 5V. Si no estuviera el diodo, la tensión en SYS_RESET no subiría por encima de unos 3.6V (3.3V + la tensión en el diodo de freewheeling del pin CRESET_B, polarizado por R30).

Saludos,
Eladio


--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el-lado-libre+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a fpga-wars-explorando-el-lado-li...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/fpga-wars-explorando-el-lado-libre.
Reply all
Reply to author
Forward
0 new messages