\( \renewcommand{\renewcommand}{} \)

Autor Tema: KiPart, asistente generador de simbolos KiCAD  (Leído 10721 veces)

Desconectado Carlos Diaz

  • Jr. Member
  • **
  • Mensajes: 189
KiPart, asistente generador de simbolos KiCAD
« en: 08 de Febrero de 2016, 16:39:41 »
La creación de simbolos en KiCAD puede llegar a ser tedioso, pero gracias KiPart, una herramienta hecha en Python desarrollada por un integrante de la comunidad de KiCAD (xesscorp) podemos facilitar mucho el proceso de creación de simbolos.

Mi PC donde tengo KiCAD tiene instalado Windows, por lo que no tiene instalado Python por defecto, asi que tenemos que instalarlo, una version 3.x, además debemos de tener instalado pip, aqui un video de como instalarlo de manera fácil en Windows , estos pasos deben ser adaptados si usan una distro de Linux.

Una vez teniendo Python y pip instalados podemos proceder a instalar KiPart, abrimos una terminal y tecleamos:

Código: [Seleccionar]
$pip install kipart


Presionamos enter y obtenemos lo siguiente:



Podemos comprobar que versión se instalo con el comando:
Código: [Seleccionar]
$kipart -v


Y podemos obtener la ayuda con el comando:

Código: [Seleccionar]
$kipart -h


Hasta aqui todo bien, ahora necesitamos crear un archivo .csv que tenga la información de nuestro simbolo, para esto cree un documento .ods (LibreOffice Calc), lo nombre todopic, el nombre puede ser el que deseemos:



La información con la que debemos llenar el formulario es la siguiente:
* En A1 ponemos el nombre de nuestro componente, en este caso:
* En A2 ponemos Pin, en esta columna va la numeración de los pines del componente.
* En A3 ponemos Name, en esta columna van los nombre de los pines.
* En A4 ponemos Type, en esta columna pondremos el tipo de pin.
* En A5 ponemos Side, en esta columa pondremos el lado del simbolo donde queremos que se coloque el pin.

(El orden de las columnas no importa, las unicas columnas que son necesarias son Pin y Name, las opcionales son Type, Side, Unit y Style)



Y comenzamos a llenar nuestras columnas, primero la de Pin, los pines no tienen que ir en orden ascendente, ya que podemos indicarle a KiPart que ordene los pines por orden ascendente. Asi que lo llene de la siguiente forma:



En la columna Name pondremos el nombre de nuestros pines, en este caso podemos copiar directamente el nombre de los pines desde el datasheet de nuestro componente y pegarlos sin formato en el documento, algunos pines son activos en un estado lógico en bajo, para indicar dichos pines podemos incluir el simbolo "~" delante del nombre del pin, como recomedación la funcipon del pin que sea activa en bajo la ponemos al último en el nombre, ya que al crear el simbolo la raya que nos indica la lógica negada se pone apartir del lugar donde encuentra el simbolo ~ y si la ponemos al principio se nos van a marcar todas las funciones, cosa que en este caso no queremos.
Por ejemplo el pin , la función MCRL en activa en bajo, por lo tanto si la ponemos al principio con el simbolo ~ al crear la libreria se verá asi el pin:



Para evitarlo podemos poner ~MCRL al último y se vera asi:



En la columna Type ponemos el tipo del pin, para conocer que parametros podemos poner ahi nos vamos a la documentación de KiPart:

The type column specifies the electrical type of the pin. The allowable values are:
input, inp, in, clk
output, outp, out
bidirectional, bidir, bi, inout, io
tristate, tri
passive, pass
unspecified, un, analog
power_in, pwr_in, power, pwr, ground, gnd
power_out, pwr_out, pwr_o
open_collector, open_coll, oc
open_emitter, open_emit, oe
no_connect, no_conn, nc


En este caso solo coloque pines de alimentación (pwr) y bidereccionales (bi). Por último la columna Side, otra vez podemos checar los parametros validos en la ayuda de KiPart:

The side column specifies the side of the symbol the pin will be placed on. The allowable values are:
left
right
top
bottom


Asi quedó mi archivo al terminar:



Una vez terminado el archivo, (a mi me tomo cerca de 3 mins. para generar esta lista) guardamos el archivo en formato .csv. Posteriormente nos vamos al directorio donde tenemos dicho archivo y abrimos una terminal y tecleamos lo siguiente:

Código: [Seleccionar]
$kipart todopic.csv -s num -f -o 18F4550_test.lib -w


Donde:
  • todopic.csv es nuestro archivo origen
  • El flag -s num le indica a KiPart que queremos que ordene los pines por número y en orden ascendente. Podemos también ordenarlos por nombre (name) o por fila (row), estos parámetros los podemos encontrar en la ayuda de KiPart.
  • El flag -f le indica a KiPart que queremos que incluya el tipo de pin, orientación o representacion en nuestro simbolo.
  • El flag -o 18F4550_test.lib le indica a KiPart que queremos que el archivo de salida se llame 18F4550.lib
  • El flag -w es para sobreescribir la libreria en caso de que ya tengamos una con el mismo nombre en el mismo directorio.

KiPart procede a armar nuestro simbolo, en mi maquina tardo cerca de 5 segundos asi que en la de ustedes puede tomar mas o menos tiempo. Una vez terminado podemos abrir el archivo xxx.lib en el Eschematic library editor de KiCAD para poder checarlo, añadimos el path del directorio donde tenemos el documento y añadimos la libreria, los pasos para hacer esto estan cubiertos en el excelente tutorial que escribio JUANJO, seleccionamos la libreria que se genero con KiPart, en mi caso se llama 18F4450_test y elegimos el componente que se genero, obtuve el siguiente simbolo:



Como podemos ver el simbolo se creo bien, ,tiene el nombre que le asignamos en el archivo .csv, los pines estan ordenados por su número, sin embargo lo podemos editar si asi lo queremos, KiPart ya hizo el trabajo pesado, al final el simbolo me quedo de la siguiente manera:



Procedemos a guardar los cambios y hemos terminado.
KiPart tiene mas flags que podemos usar, sin embargo no he tenido la necesidad de usarlas en todo caso recordar que una mini ayuda se encuentra en documentación KiPart

PS.
También podemos separar nuestro componente en unidades, es decir poner en una unidad todos los pines de alimentación y en otra todos los bidereccionales por ejemplo. Para hacer esto añadimos otra columna a nuestro archivo, esta columna se llamará Unit y debajo para cada pin especificamos a que unidad pertenecerá.



Guardamos el documento en formato .csv y nos vamos al directorio donde esta, abrimos la terminal y tecleamos el mismo comando que usamos antes para generar el simbolo, el flag -w nos servirá para sobreescribir la libreria vieja.
Código: [Seleccionar]
$kipart todopic.csv -s num -f -o 18F4550_test.lib -w


y nos genera el siguiente simbolo, la unidad A:



Y la unidad B:



Por último no es necesario hacer el empaquetado de forma cuadrada y con los pines en cada uno de los lados, podemos poner los pines donde nosotros queramos. Como ejemplo el simbolo de un PCT2075, esta es la descripcion de sus pines:



Ahora volcamos toda la información a nuestro archivo de texto:



Podemos ver que el nombre del simbolo será PCT2075, pines del 1 – 8 con sus respectivos nombres, basados en la tabla del datasheet del
componente asignamos el tipo de pines, donde bi son pines bidireccionales, clk es un pin de clock, oc es open_collector, pwr es pin de alimentación e in a entradas.
Tambien vamos a especificar el estilo gráfico d enuestros pines, esto se especifica en la columna Style y las opciones que tenemos son las siguientes:

The style column specifies the graphic representation of the pin. The allowable pin styles are:
line, <blank>
inverted, inv
clock, clk, rising_clk
inverted_clock, inv_clk
input_low, inp_low, in_lw, in_b
clock_low, clk_low, clk_lw_clk_b
output_low, outp_low, out_lw, out_b
falling_edge_clock, falling_clk
non_logic, nl, analog


Guardamos nuestro archivo como .csv y abrimos una consola en el directorio donde tenemos el archivo. Para generar simbolo con KiPart hacemos como con el PIC18F4550, cambiando el nombre del archivo .csv y el archivo de salida.

Código: [Seleccionar]
$kipart PCT2075.csv -s num -f -o PCT2075.lib -w


y se genera nuestro simbolo, podemos abrirlo con el Eschematic library editor y obtuvimos lo siguiente:



Saludos  ;D
« Última modificación: 10 de Febrero de 2016, 19:23:00 por JUANJO »

Desconectado JUANJO

  • Moderador Global
  • Sr. Member
  • *****
  • Mensajes: 703
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #1 en: 08 de Febrero de 2016, 16:46:27 »
Muchas gracias por compartir Carlos, muy bien explicado ;) y de mucha utilidad para símbolos de muchas huellas, sobre todo por los errores que se pueden cometer al hacer un símbolo de 300 pines, con KiPart es mucho mas difícil equivocarse.

un saludo y gracias por el aporte.
Juan José Perales Serrano

Visita mi canal para aprender mas sobre electrónica, programación y tecnología.

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado JUANJO

  • Moderador Global
  • Sr. Member
  • *****
  • Mensajes: 703
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #2 en: 09 de Febrero de 2016, 15:07:32 »
Voy a usar tu tutorial para hacer el símbolo de un i.mx6UL de 289 bolas, una tarea muy tediosa de hacerla a mano.

Cuando lo termine comento mis impresiones  ;)

un saludo.
Juan José Perales Serrano

Visita mi canal para aprender mas sobre electrónica, programación y tecnología.

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado ElektroQuark

  • Administrador
  • Sr. Member
  • *****
  • Mensajes: 794
    • ElektroQuark
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #3 en: 09 de Febrero de 2016, 15:29:54 »
¿Qué vas a hacer con tantas bolas? ¿Proyecto en mente?

Desconectado JUANJO

  • Moderador Global
  • Sr. Member
  • *****
  • Mensajes: 703
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #4 en: 09 de Febrero de 2016, 16:39:14 »
¿Qué vas a hacer con tantas bolas? ¿Proyecto en mente?

Pues si, la verdad es que llevo tiempo queriendo hacerlo pero no me decidía por que los i.mx2xx estaban ya muy antiguos, con su ARM9 y su DDR2. Pero los mas grandes ya se iban de presupuesto por tener que usar de 6 a 8 caras, y tampoco necesitaba un procesador tan grande para los proyectos

ahora que han sacado los UltraLite con el CORTEX A7, voy a hacerme un SOM a 4 caras y con DDR3. Por supuesto ire colgando los avances por aquí  ;D

estaba entre los i.mx6UL y los vybrid pero los primeros están mejor documentados a mi parecer.

un saludo.
« Última modificación: 09 de Febrero de 2016, 16:41:53 por JUANJO »
Juan José Perales Serrano

Visita mi canal para aprender mas sobre electrónica, programación y tecnología.

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado ElektroQuark

  • Administrador
  • Sr. Member
  • *****
  • Mensajes: 794
    • ElektroQuark
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #5 en: 09 de Febrero de 2016, 18:14:58 »
Interesante. Abre hilo YA ;)

Desconectado JUANJO

  • Moderador Global
  • Sr. Member
  • *****
  • Mensajes: 703
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #6 en: 10 de Febrero de 2016, 19:19:10 »
Bueno he terminado de hacer el símbolo siguiendo este tutorial y tengo aquí los resultados, como podéis ver es grande de narices (imaginaros los procesadores de 600 pines y mas  ;D).

Ahora tengo que ordenar los pinesy ponerlo mas visible pero esto ya no lo puede hacer KiPart (Ojala  :'() he visto que kipart es bastante mas sencillo de instalar en ubuntu, (me dio problemas en windows por los PATH de phyton y la versión), en ubuntu basicamente pones "sudo easy_install kipart" y arreglado, por lo demás es todo idéntico. La verdad es que cuando tienes tantos pines, tener una lista hecha en libreoffice calc es mucho mejor para revisar los fallos, de esta manera pude ver facilmente que me faltaba un pin y pude buscarlo.

un saludo

« Última modificación: 10 de Febrero de 2016, 19:21:46 por JUANJO »
Juan José Perales Serrano

Visita mi canal para aprender mas sobre electrónica, programación y tecnología.

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado Carlos Diaz

  • Jr. Member
  • **
  • Mensajes: 189
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #7 en: 10 de Febrero de 2016, 23:54:40 »
Por ahi tiene unas opciones para ordenar los pines, pero solo he visto que los ordena por numero o nombre, o igual puedes modificar el script para ordenarlos como te sea mas conveniente  ;D


Desconectado ElektroQuark

  • Administrador
  • Sr. Member
  • *****
  • Mensajes: 794
    • ElektroQuark
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #8 en: 11 de Febrero de 2016, 07:13:45 »
Va a ver que cambiarse a monitores de 55 pulgadas para poder ver los esquemas completos.

Desconectado JUANJO

  • Moderador Global
  • Sr. Member
  • *****
  • Mensajes: 703
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #9 en: 11 de Febrero de 2016, 21:31:50 »
Por ahi tiene unas opciones para ordenar los pines, pero solo he visto que los ordena por numero o nombre, o igual puedes modificar el script para ordenarlos como te sea mas conveniente  ;D

no creo que pueda hacer un script para hacer esto jeje, los he dispuesto así por que es como viene en el diseño de referencia de Freescale y me parece que de esta manera esta muy bien ordenado:



un saludo.
Juan José Perales Serrano

Visita mi canal para aprender mas sobre electrónica, programación y tecnología.

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado Carlos Diaz

  • Jr. Member
  • **
  • Mensajes: 189
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #10 en: 12 de Febrero de 2016, 05:11:12 »
Hola, viendo el nuevo simbolo supongo que con ordenar te referias a poner espacios entre simbolos, no lo cubri en el tuto  :-[ pero esta disponible esa opción.
Hago copy/paste de como hacerlo
Citar
OK, I added the ability to insert "gap" pins. Just insert a row with a pin number that is a '*' (or starts with one) and that will create a non-existent pin that inserts a gap in the sequence of pins on the symbol.

This only works if you're using KiPart with the -s row option. (Using the -s name or -s num options will sort the pins by their names or pin numbers and that makes it impossible to tell where the gap pins should be placed.)

If you're building a multi-unit symbol or using multiple sides of the symbol, remember to also specify the unit and side for the gap pin.

Viene de este link (penultima respuesta)

Desconectado JUANJO

  • Moderador Global
  • Sr. Member
  • *****
  • Mensajes: 703
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #11 en: 12 de Febrero de 2016, 11:13:53 »
Anda pues eso no lo sabia, culpa mía por no leerme todas las instrucciones jeje, bueno todos los días se aprende algo nuevo  ;D

Y de todas maneras tenia que poner los dibujos con los bancos de alimentación y esas cosas.

Para la próxima ya lo se jeje.

Un saludo.
Juan José Perales Serrano

Visita mi canal para aprender mas sobre electrónica, programación y tecnología.

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado JUANJO

  • Moderador Global
  • Sr. Member
  • *****
  • Mensajes: 703
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #12 en: 19 de Febrero de 2016, 01:11:11 »
Bueno estoy intentando crear un nuevo símbolo con Kipart y me suelta un error que no soy capaz de encontrar.

Código: [Seleccionar]
kipart MCxxPF3001xxEP.csv -s row -f -o PM.lib -w
Traceback (most recent call last):
  File "/usr/local/bin/kipart", line 9, in <module>
    load_entry_point('kipart==0.1.14', 'console_scripts', 'kipart')()
  File "/usr/local/lib/python2.7/dist-packages/kipart-0.1.14-py2.7.egg/kipart/__main__.py", line 128, in main
    append_to_lib = call_kipart(part_data_file)
  File "/usr/local/lib/python2.7/dist-packages/kipart-0.1.14-py2.7.egg/kipart/__main__.py", line 113, in call_kipart
    debug_level=args.debug)
  File "/usr/local/lib/python2.7/dist-packages/kipart-0.1.14-py2.7.egg/kipart/kipart.py", line 521, in kipart
    fuzzy_match=fuzzy_match)
  File "/usr/local/lib/python2.7/dist-packages/kipart-0.1.14-py2.7.egg/kipart/kipart.py", line 440, in draw_symbol
    draw_pins(lib_file, unit_num, sorted_side_pins, transform[side],
KeyError: ''

KeyError: ''  ¿?

ya he probado todo  :-\ he borrado los * y he quitado los huecos, he mirado haber si hay espacios en blanco, he rellenado todos los huecos con * (que eso no vale) y nada no veo donde puede estar el problema, quizá alguno pueda encontrar que es lo que pasa, os lo agradecería.

aqui esta el documento en .csv:  https://www.dropbox.com/s/lpy4i47cv5h6abp/MCxxPF3001xxEP.csv?dl=0

un saludo
Juan José Perales Serrano

Visita mi canal para aprender mas sobre electrónica, programación y tecnología.

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado Carlos Diaz

  • Jr. Member
  • **
  • Mensajes: 189
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #13 en: 19 de Febrero de 2016, 02:37:39 »
De la respuesta donde explica como usar los * para los espacios entre pines puso:

Citar
If you're building a multi-unit symbol or using multiple sides of the symbol, remember to also specify the unit and side for the gap pin.

Les puse lado y unidad (todos left y control) y ya me construyo el simbolo  :D, solo que a la hora de tratar de ver el simbolo en Part Library Editor me marca el siguiente error:

Citar
Library 'PM' component load error error < error 'pin had 10 parameters of the required 11 or 12' in DRAW command X> occurred at line 105

Ese error ya lo habia podido resolver pero no recuerdo como  :-[
« Última modificación: 19 de Febrero de 2016, 03:12:33 por Carlos Diaz »

Desconectado JUANJO

  • Moderador Global
  • Sr. Member
  • *****
  • Mensajes: 703
Re:KiPart, asistente generador de simbolos KiCAD
« Respuesta #14 en: 19 de Febrero de 2016, 11:19:38 »
Si, aunque de el error la librería la construye pero luego no se puede abrir el símbolo, o sea que la crea pero con errores. Sigo sin encontrar el fallo, antes que este me dio uno, que "error: righ" eso tiene lógica porque había escrito mal una celda y me faltaba la t era right, pero ahora este "error: " ni idea :-\ :-\

Si no lo encuentro al final tendré que hacerlo a mano.

Un saludo
Juan José Perales Serrano

Visita mi canal para aprender mas sobre electrónica, programación y tecnología.

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw