• Viernes 19 de Abril de 2024, 02:53

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Platypus

Páginas: [1] 2 3
1
Lenguaje de Descripción de Hardware VHDL / Re: Problemas Con Vectores En Modelsim
« en: Miércoles 16 de Marzo de 2005, 20:15 »
Hola © Jonathan ©  :hola:

finalmente he hecho una breve guía de los pasos a seguir para realizar una simulación funcional de un sencillo diseño. No se si finalmente desinstalarás el MAX PLUS II. Si te decides por el ModelSim puedes probar con el ejemplo de Tutoriales y Notas.

Espero tus comentarios o dudas.

Un saludo.  :)

2
Lenguaje de Descripción de Hardware VHDL / Re: Tutoriales y Notas
« en: Miércoles 16 de Marzo de 2005, 20:08 »
Hola a todos,  :hola:

aquí teneis un ejemplo de lo que hay que hacer para compilar y simular funcionalmente una sencilla puerta lógica and de dos entradas y su respectivo test bench con ModelSim a través de la línea de comandos:

1. Copiamos los archivos gate_and.vhd y gate_and_tb.vhd (adjuntos) en una carpeta cuyo path no tenga espacios ni símbolos extraños (cuanto más sencillo mejor).
2. Inicamos ModelSim y en File -> Change Directory... cambiamos a la carpeta del anterior paso.
3. En Design -> Create a New Library... pinchamos OK (creamos la que viene por defecto "work").
4. En la línea de comandos tecleamos:
   ModelSim> vcom -93 {gate_and.vhd} (ENTER)
   ModelSim> vcom -93 {gate_and_tb.vhd} (ENTER)
   Y ya tenemos nuestro diseño y su testbench compilados.
5. Para simular teclemamos:
   ModelSim> vsim work.gate_and_tb (ENTER)

añadimos las señales al cronograma:
   ModelSim> add wave ent_a (ENTER)
   ModelSim> add wave ent_b (ENTER)
   ModelSim> add wave sal (ENTER)

e iniciamos la simulación:
   ModelSim> run 200 ns (ENTER)

abrimos la ventana "wave" para ver los resultados.

6. Para finalizar la simulación tecleamos:
   VSIM x> quit -sim (ENTER)

Todo lo anterior se puede realizar de forma visual a través de menús y pantallas pero tal vez es más complicado explicarlo. Otro método utilizado es mediante scripts (*.do) que contienen las instrucciones que hemos tecleado en la línea de comandos (muy útil cuando se compila y simula sistematicamente).

Aunque este ejemplo se ha compilado y simulado con un entorno concreto el resto de entornos normalmente siguen la misma filosofía.

Un saludo.  :)

3
Microcontroladores / Re: Adaptar Variables A La Función Del Filtro
« en: Miércoles 16 de Marzo de 2005, 19:18 »
Hola Bixix :hola:

respecto a tu penúltimo post de esta discusión, aquí tienes la información sobre funciones de filtros que he utilizado:

dsPIC™ Language Tools Libraries

en concreto el capítulo 2.6 FILTERING FUNCTIONS contiene información sobre funciones de filtros. Si te lees este capítulo creo que después sabrás como realizar las llamadas a los filtros que te creas.

El bit IF es el que determina el modo de operación de la DSP así que si quieres variar el modo de operación sí, es IF el que tienes que cambiar.

Un saludo.  :)

4
PD: en un encoder típico:

ebolo Escrito el 16/03/2005, 04:18 PM
Citar
- + A B Aconguiónsuperior Bconguiónsuperior O Oconguiónsuperior

- y + sería la alimentación de la optoelectrónica y/o lógica interna del encoder.

las señales A, B y O y sus respectivas "conguiónsuperior" son las salidas lógicas y sus repectivos complementarios canal A (A) canal B (B) e índice (O) (lo de complementarios significa que cuando, por ejemplo, "A" está a nivel alto "Aconguiónsuperior" está a nivel bajo).

5
Hola ebolo  :hola:

si supieras el modelo en concreto serviría mucho de ayuda. He estado echando una ojeada por la página del fabricante http://www.encoderonline.com/UK/ y no he encontrado la referencia que das (237W - 1024) aunque por la codificación que da el fabricante creo que casi seguro se trata de un encoder óptico incremental con una salida en cuadratura de 1024 pulsos por vuelta (ppr). Lo que no me explico son los puentes que dices que tiene a la salida, a no ser que sea un montaje para encoders que dan salida en corriente, que también los tiene este fabricante, pero solo sería cuestión de estudiar el montaje. En cuanto sepas el modelo concreto postéalo y lo estudio.

El montaje que tendrás que realizar depende de la resolución que quieres tener al leer la posición. Este tipo de encoder tienen una salida (la O) que da un pulso por cada vuelta, y las señales A y B al estar en cuadratura permiten conocer en que sentido gira el motor (no se si tu sistema permite el giro en ambos sentidos) además de saber que porción de vuelta ha girado el eje (en este caso en incrementos de 1/1024 vuelta).

No se exáctamente que hace tú aplicación pero si deseas trabajar con este tipo de encoder y dadas sus características seguramente tendrás que montar un circuito con contadores y comparadores (más circuitería, poca flexibilidad) o un sistema con microcontrolador (menos circuitería y mucha flexibilidad) o a través del puerto paralelo de un PC aunque depende de que hardware y como realiza el control sobre el relé que controla el motor. Por lo que veo es un sistema de marcha-paro así que tampoco será muy complicado puesto que no regula velocidad ¿no?

Un saludo.  :)

6
Hola  :hola:

tal vez pueda echarte un cable, pero necesito más datos sobre el encoder, si puedes pasar el Part Number lo intento averiguar por mi cuenta de lo contrario sería interesante conocer:

- tipo de encoder (dinamo u óptico)
- si es óptico saber si es incremental o absoluto, aunque supongo que será incremental
- saber que dato quieres calcular (velocidad, posición o aceleración)
- patillaje de salida
- todo lo demás que se te ocurra

Contestando a lo que preguntas:

- Leerlo depende del tipo que sea (si es óptico) con un sencillo montaje está resuelto pero si es una dinamo se necesita un acondicionamiento de señal y un conversor A/D para poderlo leer.

- La señal que da son pulsos si se trata de un encoder óptico incremental, un código (normalmente en Gray) si es óptico absoluto o una tensión continua si se trata de una dinamo.

- En principio no tiene porque ser complicado, como he dicho depende de los datos que tengas sobre él, cuanta más información tengas mejor.

Un saludo.  :)

7
Hola  :hola:

para realizar una simulación primero tienes que describir el diseño en VHDL por un lado y por otro describir el test bench con el que se probará el diseño (también en VHDL). Debes compilar primero el diseño y después el test bench puesto que este último tendrá una instanciación del diseño que has descrito en el primer archivo.

Una vez compilado ambos archivos y sin problemas simulas el testbench y seleccionas las señales que desees visualizar en el cronograma.

En el Post de Tutoriales y Notas en cuanto la tenga lista postearé un breve guía de lo que hay que hacer para realizar una simulación de un diseño muy sencillito utilizando Modelsim.

Un saludo.  :)

8
La taberna del BIT / Re: Soporte Tecnico Para Mujeres Casadas
« en: Sábado 12 de Marzo de 2005, 00:36 »
Joe ArKaNtOs menudos ánimos te estará dando este post.  :lol:

Por cierto, enhorabuena por la instalación.

9
Microcontroladores / Re: Adaptar Variables A La Función Del Filtro
« en: Sábado 12 de Marzo de 2005, 00:24 »
Pensándolo mejor  <_< , lo de CORCON debe de ser por el bit IF; pues no tiene nada que ver con el tipo de dato que se declara sino con el modo de operación de la DSP (en concreto en la multiplicación). Si es '1' se opera con enteros y si es '0'  con fraccionales.

Espero que te lo aclare. Saludos. :D

10
Microcontroladores / Re: Adaptar Variables A La Función Del Filtro
« en: Sábado 12 de Marzo de 2005, 00:14 »
Hola  :hola:

no conozco esa función porque no es de las librerías que suministra el fabricante en C, o si lo es yo no la tengo. En las funciones que conozco sobre llamadas a filtros, los datos de los arrays de entrada y salida no son float (32 bits IEEE 754) sino fractional (16 bits) y los datos arrayEntrada y arraySalida en realidad son punteros (en C30 son de 16 bits) a fractional que si son de 16 bit al igual que TXBUFx y RXBUFx. La longitud en bits de los punteros y la longitud en bits de los datos a los que apuntan no tienen porque ser iguales.

No se si te has colado pero no entiendo  :blink: a que viene lo siguente...

Bixix Escrito el 11/03/2005, 12:33 PM
Citar
/* CORCON: CPU Mode control Register */
extern volatile unsigned int CORCON __attribute__((__near__));
typedef struct tagCORCONBITS {
unsigned IF :1; /* Integer/Fractional mode */
unsigned RND ]

De todos modos si me pasas el prototipo de la función FIR_FIR150_5500be tal vez puedo ser más concreto y decirte algo más sobre los tipos de datos de dicha función.

Un saludo.  :)

11
Hola Paisano  :hola:

le eche un vistazo a tu código y supongo que el error que te da el simulador es sobre límite maximo de iteraciones o algo así. Sustituye, en la lista sensible del process de ALU.vhd, la señal result por sel y prueba, ya me comentarás los resultados.

Un saludo.  :)

12
Microcontroladores / Re: Adaptar Variables A La Función Del Filtro
« en: Jueves 10 de Marzo de 2005, 16:12 »
Hola,  :hola:

fractional es distinto a float aunque la longitud en bits puede ser la misma. El float es de 32 bits y se representa según el formato IEEE 754 (1 bit para signo, 8 bits de exponente y el resto para la mantisa).  El fractional de C30 es de 16 bits de los cuales uno de ellos es para signo al igual que los de la tabla que adjuntas, y permite representar los valores que ves en dicha tabla. Tal vez te preguntes qué sentido tiene representar valores comprendidos entre +1 y casi -1, pues en el caso de los dsPIC es, por ejemplo, para optimizar las funciones trigonométricas puesto que su resultado está comprendido entre esos valores y de esta forma se obtiene una buena resolución sin penalizar el tiempo de ejecución.

Ten en cuenta que los tipos de datos no son los mismos para ANSI C que para el C del dsPIC que estás utilizando (por ejemplo un int en ANSI C es de 32 bits mientras que en el C30 el int es de 16 bits).

Si quieres saber más sobre tipos de datos de C30 te recomiendo que consultes
MPLAB® C30 User’s Guide en la cual te vienen definidos los tipos de datos y otras muchas cosas más sobre C para dsPIC.

Un saludo.  :)

13
La taberna del BIT / Re: Soporte Tecnico Para Mujeres Casadas
« en: Miércoles 9 de Marzo de 2005, 19:21 »
Ayer se lo mostré a un amigo que está instalando Divorcio 2.0 y todavía se está riendo.  :D  :lol:  :D  :lol:

Gueníiiisimo.

14
Lenguaje de Descripción de Hardware VHDL / Re: Tutoriales y Notas
« en: Miércoles 9 de Marzo de 2005, 19:11 »
Hola,  :)

aquí teneis unos links para descargar esditores de VDHL:

http://www.zeusedit.com/vhdl.html
http://www.gnu.org/software/emacs/

El EMacs está disponible tanto para distintos SO's, el Zeus para Windows. Son útliles cuando disponemos de versiones demo de Simuladores o Entornos de desarrollo que no permiten utilizar el editor propio.

Un saludo.  :D

15
Dudas informáticas / Re: Simular Una Conexión De Red
« en: Miércoles 9 de Marzo de 2005, 18:58 »
Hola  :hola:,

fuhrer Escrito el 9/03/2005, 12:03 AM
Citar
Creo que dices que ese programa que intentas ejecutas te verifica algo de tu tarjeta de red y sin conexion no funciona??
Exactamente. Lo que verifica es el hostID también denominado Dirección física. Si vais al simbolo de sistema en un sistema operativo con DOS (o DOS Shell) y tecleais ipconfig -all os saldrá un parámetro de la tarjeta con el siguiente formato (no es necesario tener conexión a la red):

Dirección física ................... XX-XX-XX-XX-XX-XX (distinta de 00-00-...)

que no tiene nada que ver con el IP. Al ejecutar el programa si el PC está conectado a la red lee el valor obtenido con el comando ipconfig, de lo contrario lee el valor 00-00-00-00-00-00. He probado introducir el valor 00-00-00-00-00-00 como hostID y ejecutar el programa sin conexión, pero tampoco funciona, así que pensé que si era posible simular una conexión de red en principio no tendría porque darme problemas ya que al estar activa la tarjeta supongo  :unsure: que leerá el hostID correcto.

El SO que tengo instalado es el Windows XP y el programa que ejecuto es de simulación de VHDL.

Gracias de nuevo a ambos.

Saludos.  :)

16
Microcontroladores / Re: Leer Y Mandar Datos: Soft
« en: Miércoles 9 de Marzo de 2005, 18:26 »
Hola,  :hola:

tanto TXBUF como RXBUF son del tipo extern volatile unsigned int, en realidad son búferes de transmisión y recepción mapeados en memoria, y el modificador volatile supongo que se aplica porque el propio hardware es capaz de modificar el valor de la variable de forma independiente a la ejecución del programa. Para averiguar exactamente lo que sucede con TXBUF y por qué sólo eres capaz de leer el valor cero te recomiendo que leas la Sección 22 del dsPIC30F Family Reference Manual (ref DS70046) que explica detalladamente el funcionamiento del DCI. Creo haber leido algo sobre que los registros TXBUF se ponen a cero en algun momento, al iniciar la interrupción o al finalizar la transmisión, no se.

Para saber como trata C las variables así como aprender sobre punteros y demás, como dice © Jonathan ©, es recomendable tirar de un buen manual de C.

Saludos a todos. :)

17
Microcontroladores / Re: Solución Al Warning Icdwar0020
« en: Miércoles 9 de Marzo de 2005, 17:27 »
Hola Bixix,  :hola:

lo siento ayer me equivoqué  :huh: al postearte la respuesta al warning, la alerta 0020 hace referencia a:

MPLAB ICD 2 Help
Citar
ICDWarn0020: Invalid target device id (expected=ExpectedID, read=ReadID) (OK)
MPLAB ICD 2 has read the device ID of the target device and found it different than expected for the device type selected within MPLAB IDE. If ReadID is 0 then it is likely that the target device is not powered, not connected, or simply missing. In any case, this is just a warning that MPLAB ICD 2 has not found the expected target device. Click OK to proceed.


Comprueba las conexiones de la alimentación ya que se admiten distintas configuraciones, también es posible, como dijo J1M que tengas seleccionado un PIC distinto en el entorno MPLAB al que deseas programar y sino tiene que ser uno de los otros motivos que se indican el warn.

Un saludo.  :)

18
Microcontroladores / Re: Solución Al Warning Icdwar0020
« en: Martes 8 de Marzo de 2005, 21:38 »
Hola Bixix,  :)

siento decirte que lo que has encontrado es una coincidencia a no ser que hayas modificado los terminales de tu cable de conexión entre el ICD2 y la placa. Yo llevo un tiempo trabajando con la dsPICDEM 1.1 Development Board (dsPIC30F6014), la dsPICDEM MC1 Motor Control Development Board (dsPIC30F6010) y el ICD2 y sería raro que ninguna vez lo hubiera conectado alrevés si se pudiera dar el caso y además al ver tu mensaje he sacado el cable para comprobarlo (en los extremos mi cable lleva dos RJ11 machos con conexiones cruzadas) en concreto el orden es en un extremo: azul, amarillo, verde, rojo, negro y blanco y en el otro extremo, si los situas uno al lado del otro apuntando en el la misma dirección y con la pestaña de enclavamiento hacia la misma cara, el orden es el mismo pero invertido, de ahí que están cruzadas las conexiones. Y, sinceramente, creo que sería una auténtica chapuza  :blink:  por parte de los ingenieros el que si tuviera polaridad la conexión no viniera indicado en ningún sitio.

Bueno para que no te calientes más la cabeza aquí tienes la repuesta:

MPLAB ICD 2 Help
Citar
ICDWarn0022: There is a newer version of the ICD OS available, would you like to download it? (OK, Cancel)
MPLAB ICD 2 has detected a newer version of the MPLAB ICD 2 operating system available to be downloaded. Selecting OK will download this newer operating system to the MPLAB ICD 2. Selecting Cancel will leave the existing operating system on the MPLAB ICD 2.

Un saludo.  :)

19
Dudas informáticas / Simular Una Conexión De Red
« en: Martes 8 de Marzo de 2005, 21:04 »
Hola a todos,  :hola:

tengo instalado un programa que explota la tarjeta de red (le da lo mismo tanto la wireless como la LAN) el problema surge cuando lo ejecuto y no tengo conectado el PC a la red, entonces comprueba el hostid y determina que no coincide con el de la tarjeta  :angry: (al estar desconectado lee el hostid como 00-00-00-00-00-00) y me deja de funcionar.

No se si es posible pero mi pregunta es saber si ¿se puede simular una conexión para que cuando no tenga acceso a la red pueda hacer correr el programa? Agradecería cualquier información acerca del tema o alguna otra sugerencia.

Gracias de antemano y un saludo.  :)

20
Lenguaje de Descripción de Hardware VHDL / Re: Compilador De Vhdl
« en: Martes 1 de Marzo de 2005, 21:24 »
Hola © Jonathan ©,  :hola:

la verdad es que ultimamente he estado un poco liadillo, aunque normalmente es mi situación.

No te preocupes por la complejidad del VHDL, cuando lo pillas es como todos y el entorno que utilices es indiferente porque el flujo de desarrollo es sistemático, repetitivo, siempre se siguen una serie de pasos muy concretos. Tal vez debieras empezar con algo muy sencillito como es la descripción de una simple puerta lógica como es una AND y hacer una simulación funcional para ver el resultado y comprobar que realmente todo funciona (tal vez ya lo hayas hecho). No creo que sea conveniente empezar por diseños comlejos porque puedes acabar desesperado.  :angry:

Estaremos en contacto. Un saludo.  :)

21
Microcontroladores / Re: Integración Dspicfdlite
« en: Martes 1 de Marzo de 2005, 20:53 »
Hola de nuevo,  :)

tienes dos opciones una:

Bixix Escrito el 1/03/2005, 11:39 AM
 
Citar
cuando hayas diseñado tu super filtro, te genera el código en C!!!!!

y la otra y seguramente más recomendable es generar el código para el dsPIC30. Si abres el menú de Codegen tienes estas dos opciones (la segunada en Microchip -> dsPIC30).

El fichero de salida en ASM lo metes en "source files" y después en tu archivo C declaras la estructura del filtro como "extern". Debes inicializar el filtro y despues al llamar a la función de filtro debes indicarle array de entrada y salida, estructura y número de muestras (tienes más info en la guía de usuario de las librarías DSP en " Filtering Functions") recuerda que debes incluir la dsp.h, ahora que lo veo, también te habla sobre filtros IIR y FIR. Si quieres entenderlos espero que andes bien de matemáticas porque yo ando un poco pez.

Saludos.  :lol:

22
Microcontroladores / Re: Software
« en: Martes 1 de Marzo de 2005, 20:26 »
Hola Bixix,  :)

respecto a tu segunda duda sobre los filtros, si todavía no la has resuelto, no es que sea mejor un FIR o un IIR cada uno tiene sus ventajas y desventajas. En tu caso es mejor el FIR por dos razones principalmente: una, los FIR son más fáciles de programar e implementar aunque para un mismo filtro se crea más código para un FIR que para un IIR pero ese código para los FIR es mucho sumar y multiplicar (que para eso está hecho el dsPIC) esto es debido a que el orden es mayor para el FIR que para el IIR a iguldad de especificaciones, y dos, los FIR son estables por naturaleza mientras que en los IIR debe estudiarse el comportamiento puesto que ésta no está asegurada.

No se si resuelve tú duda pero en todo caso puedes encontrar más información en cualquier buscador de internet en temas de tratamiento de señales digitales.

Un saludo.  :)

23
Lenguaje de Descripción de Hardware VHDL / Re: Compilador De Vhdl
« en: Lunes 28 de Febrero de 2005, 00:41 »
Hola Jonathan,  :)

el primer entorno que utilicé fue el V-System que permite fácilmente realizar la simulación funcional de diseños VHDL aunque he estado buscando un rato algún sitio para descargarlo y no lo he encontrado, no puedo hacer comentarios acerca del VHDL Studio o el MAX PLUS II, no los he trabajado, pero creo que es interesante utilizar los entornos relacionados con el fabricante con el que creas que vas a trabajar más adelante. Seguramente será de Altera o Xilinx porque son los más fuertes del mercado y permiten hacer simulaciones tanto funcionales como temporales para sus respectivas tecnologías.

Estaré atento a tus comentarios.

Un saludo.  :D

24
Hola a todos,  :)

© Jonathan © buen tutorial, no pretendo desanimaros pero quería comentaros dos aspectos del diseño de sistemas mediante captura de esquemáticos. El primero de ellos es que es necesario elegir de antemano la tecnología y fabricante en los que se va a implementar el diseño (mientras que si está descrito mediante lenguaje no) y es posible que tengamos problemas  :angry:  si hacemos el diseño para un fabricante y despues por cualquier causa debemos cambiar a otro, además no es tan fácil reutilizar el trabajo ya hecho, con VHDL u otro lenguaje sucede justo lo contrario, el código es totalmente reutilizable y no importa para qué fabricante o tecnología se realice el diseño.

En segundo lugar tenemos otro problema, por ejemplo, para un diseño sencillito supongamos que utilizamos unas 8000 puertas de una FPGA, en una página esquemática normalmente se representan unas 40 ó 50 puertas, con lo cual para representar el diseño completo tenemos que hacer ¡¡más de 40 páginas de esquemáticos!! El problema salta a la vista. En VHDL se aprovecha código ya escrito al igual que las librerías en la mayoría de los lenguajes.

Aunque la verdad es que llama la atención eso de programar a través de esquemáticos ¿no?

Saludos a todos.  :D

25
Microcontroladores / Re: Software
« en: Sábado 26 de Febrero de 2005, 19:25 »
Hola a todos,  :)

según tengo entendido, lo ideal es que no haya ningún pin al aire puesto que pueden actuar com pequeñas antenas, lo suyo es que estén a masa o conectadas a la alimentación, por ejemplo configurar los pines que no se utilicen como entradas y conectarlos a masa. Eso garantiza que no se nos colará ningún "ruido" por ese pin.

Un saludo.  ;)

Páginas: [1] 2 3