# PSoC® 1. Cursos de los módulos



## rednaxela (Feb 13, 2009)

Bueno, esta vez acudo al foro porque no he encontrado mucha información sobre el MUC PSoC, si alguien tiene un tutorial ( En español ) que explique como manejar los módulos análgos , digitales, pero como hay varios tipos de bloques análogos pues que los expliquen ya he ingresado al la web de chile la cual es buena pero toca muy por encima el proceso de diseño el IDE bueno gracias al que me pueda ayudar


----------



## rednaxela (Mar 9, 2009)

Bueno al parecer nadie respondio este mensaje,pero si lo han mirado, como ahora estoy empezando con esto y ya por ahi realice algunos programitas en Psoc, que opinan si escribimos  desde cero, como realizar un proyecto, realizar comunicaciones básicas con el Psoc  ? y asi ir avanzando poco a poco, claro si mas personas pueden ayudar mejor.
Miren en esta pagina esta el manual y el instalador que yo utilizo:
http://app.cypress.com/portal/serve...=552&drid=92918&shortlink=&r_folder=&r_title=


----------



## chip986 (Mar 21, 2009)

hola como estan tengo este pdf como tutorial que serviran de mucha ayuda para iniciarse en el campo de los microcontroladores PSoC que por cierto es muy buenos.,


----------



## jokelnice (Abr 6, 2009)

interesado en el tema e manejado los psoc pero muy por encima , realmente se que hacen muchas cosas y me gustaria saber mucho mas saludos , y alguien que sepa del tema podria compartir conocimiento saludos


----------



## rednaxela (Abr 8, 2009)

Bueno, a todos les dire que en epoca de julio-agosto estare subiendo un tutorial (español claro), sobre psoc, para los interesados, pero  lo digo de una vez que es preferible que ya hallan programando algun  micro y  que tengan fundamentos básicos sobre digitales y programación en 'C'. Assembler no lo hago porque no se assembler para Psoc, aqui dejo adjunto el quemador de Psoc para la referencia CY8C29466 es por puerto paralelo y su programador.

Bueno nos vemos en algunos meses   , pero pueden ir haciendo el quemador en baquelita con eso suben el plano en el foro listo?, es que ando muy ocupado con la U.


----------



## rednaxela (Abr 8, 2009)

Cualquier cosa escriben, eso si ando mirando frecuentemente el foro.


----------



## tiopepe123 (Abr 8, 2009)

Pues yo tengo un par para empezar, cy26 466..27, los tipicos, pero lo vi tan complicado que lo he dejado un poco aparcado.

Ademas parece que no estan muy extendidos, solo hay 3 paginas, la inglesa, la francesa y la de chilena y eso me hace dudar un poco si invertir en tiempo en estos micros o utilizar sistemas analogicos ya existentes,


----------



## jokelnice (Abr 8, 2009)

tiopepe123 dijo:
			
		

> Pues yo tengo un par para empezar, cy26 466..27, los tipicos, pero lo vi tan complicado que lo he dejado un poco aparcado.
> 
> Ademas parece que no estan muy extendidos, solo hay 3 paginas, la inglesa, la francesa y la de chilena y eso me hace dudar un poco si invertir en tiempo en estos micros o utilizar sistemas analogicos ya existentes,


 un *tiopepe123* creeme que eh visto todo lo que se puede hacer con esto en la u , realmente estoy sorprendido y lo de la información si es cierto casi no hay pero pienso que si hay que dedidarle tiempo a esto son increibles 

saludos ..........


----------



## edgar_87 (Jun 7, 2009)

Hola,

Estoy haciendo mi proyecto final de carrera y el micro que utilizo es el c8y29466PXI y tengo un problema con el multiplexor.

El problema esta en que cuando cambio el canal para medir por otro puerto no me lo cambia cuando tengo mas de uno (me mantiene siempre el mismo canal), en cambio si lo cambio y solo utilizo ese en todo el programa me lo cambia. Alguien sabria poruqe puede pasarme eso.
Aqui dejo parte del codigo por si tubiera algun error, pero el caso es que compilar me compila.


```
void main()
{
    // Insert your main routine code here.
M8C_EnableGInt; // Enable Global Interrupts
LCD_1_Start();                    // Initialize LCD hardware  
PGA_1_Start(3);
ADCINCVR_1_Start(3);
ADCINCVR_1_SetResolution(9);         // Set resolution to 9 Bits  
ADCINCVR_1_GetSamples(0);             // Start ADC to read continuously 
AMUX4_1_Start();
Timer16_1_EnableInt();
Timer16_1_Start();
AMUX4_1_InputSelect(AMUX4_1_PORT0_1);
while(1)
{
if(auxiliar==1)
{
//TEMPERATURA
while(ADCINCVR_1_fIsDataAvailable() == 0); // Wait for data to                                                    // be ready. 
{
temperatura=ADCINCVR_1_iGetData();
AMUX4_1_InputSelect(AMUX4_1_PORT0_3);
ADCINCVR_1_ClearFlag();           // Clear data ready flag  
temperatura=temperatura-3;
itoa(temp,temperatura,10);
}
}
//HUMEDAD
if(auxiliar==2)
{
while(ADCINCVR_1_fIsDataAvailable() == 0); // Wait for data to                                                  
{ 
valor=ADCINCVR_1_iGetData();
ADCINCVR_1_ClearFlag(); 
AMUX4_1_InputSelect(AMUX4_1_PORT0_1);          
humedad=valor-95;
humedad=humedad/3.2;
valor=humedad/0.01037;
itoa(hum,humedad,10);
auxiliar=0;
}
```

Saludos...


----------



## rednaxela (Jul 1, 2009)

Muchachos tengo malas muy malas noticias, pues formate mi disco duro 'C' , no se porque razón hubo un conflicto y se termino formateando la partición 'D' y la 'C' no y perdí toda la información! todo sobre electrónica cosas personales y también el mini curso que estaba preparando de Psoc para nosotros... 
(ya he intentado recuperar la información por mil vueltas pero no se pudo), en fin ... la verdad me tomo escribir bastante tiempo el mini curso y ya no lo voy hacer otra vez  .Pero lo que si puedo hacer es explicar los modulos del Psoc principales estoy quiere decir que ustedes primero tienen que adecuarse al IDE del Psoc Desinger y si ya lo saben pues mejor y empecemos de una con los módulos, que les parece?


----------



## Chico3001 (Jul 1, 2009)

Si quieres para que no se te haga tan pesado ve poniendo los modulos de poco en poco en este tema... 

Otra cosa que les ha funcionado a Meta y Moyano es hacer un tutorial en PDF o PowerPoint, subirlo e irlo actualizando de poco en poco... 

Y del disco duro no te preocupes..  a todos nos pasa... (a mi me toco hace como un mes... afortunadamente tengo respaldo de la mayoria de mis documentos, pero ademas pude recuperar mucha información...)


----------



## rednaxela (Jul 1, 2009)

ok, entonces hoy me pongo hacer unas cosillas y mañana las subo.


----------



## jokelnice (Jul 1, 2009)

colegas como andan les recomiendo la siguiente pagina es muy buena y hay ejemplos y todo , la hizo un amigo de la u cuando estaba haciendo el proyecto  y estamos pensando en subir mas información 

http://instrumentaciongz.wikispaces.com/PSOC

saludos


----------



## rednaxela (Jul 6, 2009)

Bueno empecemos con algo, disculpen por la demora ops: , este capítulo es una introducción(mas abajo esta el cap1 completo), en el próximo ya haremos algo de verdad. Cualquier cosa escriben al foro. Tratare de explicar los mas despacio ya que cuando estaba aprendiendo algunas personas que saben no me quisieron ayudar :evil: o me explicaban a lo "feo" y ese no es el fín no quiero hacer eso  .


----------



## Raver (Ago 5, 2009)

Muchachos Aqui encuentran un nuevo aliado para el tema de los PSOC, de veras que se puede hacer bastante en este tipo de micros, ademas que los PIC se van a quedar como algo de antaño. Suerte para todos y proximamente estare subiendo algunos tips de PSOC, asi como tambien espero que intercambiemos toda la información posible acerca de estos micros. estoy muy interesado en aprender acerca de sistemas embebidos entonces cualquier ayuda sera super bien recibida. Gracias! hasta pronto


----------



## antonio46 (Ago 12, 2009)

Hola rednaxela,

He estado mirando tu introduccion.pdf, pero no se donde queda ese cyp.exe que tu abriste.

Gracias, por aqui a la orden


----------



## rednaxela (Ago 13, 2009)

antonio46 dijo:
			
		

> no se donde queda ese cyp.exe que tu abriste.


humm el software? pues esta quí , no toca instalar nada solo ejecutarlo.  y si quieres aprender mas mira la página que recomendo jokelnice, esta buena (por eso no segui el mini tutorial   )


----------



## antonio46 (Ago 13, 2009)

Gracias Alexander,

Ya lo consegui, solo que hay que leer............y interpretar!


----------



## antonio46 (Ago 13, 2009)

Hola Alexander,

No importa si otro ha hecho el Tutorial que uno quiere hacer, uno lo debe hacelo mejor y mas sencillo.

Esperamos mas información


----------



## rednaxela (Ago 23, 2009)

bueno  gracias por la motivación lo feo es que hay gente que hace negocios con ellos, pero no importa hay estoy por hacer el cap2.


----------



## chmaster (Ago 25, 2009)

Gracias muchachos por compartir todo su conocimiento y experiencias....
me ha sido de gran ayuda y aportare con lo que pueda


----------



## rednaxela (Ago 25, 2009)

Porfin! el primer capítulo terminado, en este tenemos un ejemplo el cual lo he probado en protoboard y ha funcionado bien, este ejemplo no es la mejor forma de solucionar el problema pero solo es de manera didactica para entender los conceptos...bueno espero seguir con el cap 2(módulo timer).


----------



## rednaxela (Sep 10, 2009)

Por ahora no hay cap2, pero los que quieran ver alguna utilidad del psoc aquí  hay un sensor de proximidad por ultrasonido de 1m (max), sencillisimo de montar ya ustedes lo compararan si lo hicieran con amp-op y toda la cosa, solo es paciencia mientras llega mas gente que le "hale" al psoc  y colaboren a la buena causa. ;-)


----------



## jdms (Sep 11, 2009)

rednaxela, he estado mirando información sobre los psoc, me pregunto si ud sabe como tengo acceso a los vectores de interrupcion, quiero hacer codigo para manejar las diferentes interrupciones,(timer,int por pines , rs232 y demas), es decir; cuales son los pasos a seguir si se quiere habilitar una int cualquiera


----------



## rednaxela (Sep 12, 2009)

jdms dijo:


> cuales son los pasos a seguir si se quiere habilitar una int cualquiera


Como se pueden hacer interrupciones de un timer, counter, pwm etc, pin in/out en general todas se hacen de la misma forma, en el doc adjunto se explica como hacer la interrupcion para un pin pero en el proyecto adjunto esta la interrupcion de un pin mas otra que es la interrupcion de un contador,el proyecto no hace nada no esta configurado el tiempo del contador estan vacias algunas propiedades del módulo porque solo fue un ejemplo de hacer interrupciones.​


----------



## jdms (Sep 17, 2009)

rednaxela...hey yo tengo el compilador imagecraf, en este las interrupciones se hacen de la misma forma... o existe algun otro metodo...es que soy muy nuevo con esto de los psoc jejeje....


----------



## rednaxela (Sep 17, 2009)

El procedimiento es el mismo, pero no estoy seguro si la dirección de la interrupción se escribe igual trabajando con el compilador que tu dices , ya que no he trabajado con ese compilador .


----------



## EINNER C (Oct 10, 2009)

esta muy bueno el post, espero que no lo dejen acabar, he estado trabajando con estos dispositivos y me parecen bien interesantes, aunque he avanzado poco, espero muy pronto dar a conocer mis avances..... quisiera saber como trabajar con las interrupciones, ya que segui el procedimiento dado en el pdf que publicaron y nada que puedo..... estoy trabajando con el psoc designer 5.0 y en lenguaje c...
espero su ayuda... gracias...


----------



## tiopepe123 (Oct 12, 2009)

Al final han aparecido los  PSOC3 y próximamente  PSOC5.

Parecen unas versiones con mas futuro porque corren con una cpu 8051 y ARM lo que simplifica la programacion y la potencia.

Veremos como se desarrolla el tema aunque se critica bastante el elevado precio que tienen para ser un producto recién salido del horno con los bugs que tocara sufrir.

http://www.cypress.com/?id=2232


----------



## rednaxela (Oct 12, 2009)

EINNER C dijo:


> segui el procedimiento dado en el pdf que publicaron y nada que puedo


Danos mas datos para poder ayudarte ;-).



tiopepe123 dijo:


> Al final han aparecido los PSOC3 y próximamente PSOC5.


 
Si! tengo muchas ganas de aprender estas nuevas tecnologías, yo compraría el kit que sirve para todo PSoC1/2/5 ... el problema como siempre es bajarse de $249 :-?, alguna día lo tendre...


----------



## chmaster (Oct 13, 2009)

De nuevo gracias @rednaxela por su empeño y excelentes explicaciones, esta vez quisiera saber si usted a trabajado el modulo uart para la comunicacion RS232, monte un ejemplo que encontrè en psoc chile y funciona bien leyendo datos del psoc al hiperterminal de windows, pero no he podido enviarle datos desde el hiperterminal al psoc estoy trabajando con el 466 he leido resto de las API,ś pero no logro hacerlo funcionar aunque compile bien............................

Agradezco mucho su colaboracion


----------



## rednaxela (Oct 14, 2009)

No, yo no he trabajado con ese módulo (uart), pero si lo he trabajado por separado... si observas en los módulos de usuario existe el módulo "TX" y el "RX", estos son los módulos con los que están compuestos el módulo uart pero independientes, no estan empaquetados... no se me parece mas fácil así (a mi juicio).
Por ejemplo si solo voy a enviar datos unicamente utilizo el módulo "TX" con eso me ahorro un espacio de memoria y solo utilizo un campo de la matriz del PSoC.

Ahora, si te sirve de esa manera te podre colaborar ;-).

EDIT: Lo mismo con el módulo "RX"


----------



## chmaster (Oct 14, 2009)

Gracias hombre no hay problema........

Lo importante es que funcione y que se aprenda a manejar este tipo de comunicación
Que bueno contar con su ayuda


----------



## rednaxela (Oct 18, 2009)

*chmaster* en estos días ando ocupado y no tengo mucho tiempo :-?. ... pero no todo es malo aquí tienes una nota de aplicación en pdf de cypress donde encontraras lo relacionado con los módulos RX y TX, hasta hay ya realizado un proyecto de ejemplo relacionado por suspuesto con el pdf, estas notas de aplicación son bastantes buenas. suerte!

PD: Si tienes la comunicación funcionando, súbela al foro con eso vamos recopilando información ;-), ... si tengo un espacio (tiempo) subire algo


----------



## chmaster (Oct 20, 2009)

Gracias por el link ya lo revise y me ayudo a aclarar algunas dudas......
Aqui les dejo el link de psoc chile, es muy buena pagina, casi todos los programas me han funcionado bien no los subo yo por respetar la autoria espero que ayude:

http://www.psoc-chile.es.tl/Tutoriales-Psoc.htm

(*Utilizar el Hiperterminal de windows para ver datos)*


Estoy trabajando en eso de la comunicacion RS232 y algo de filtros, cuando lo tenga completo lo subo


----------



## Alekvasb (Nov 10, 2009)

Hola a todos...


Qué paso con el tema?, si estos micros son tan completos para trabajar??

voy a subir el código que hicimos para leer un teclado, funciona ok para 3*3, no sé por qué no sirvió para la última fila y columna si el código es el mismo?


El código para usar la tx yx del Uart es:


```
//----------------------------------------------------------------------------
// C main line
//----------------------------------------------------------------------------

#include <m8c.h>        
#include "PSoCAPI.h"   
unsigned char dato;   // Var. para cargar el valor de la tecla oprimida
int      Out, ciclo, I=0;    // Variablea para el DAC 

void main()

{   
         
    //En la primera parte iniciamos los m�dulos DAC Y UART   
    Uart_1_Start(0);// El cero significa sin paridad;
       
    Ini1://Cargamos el men� inicial
    Uart_1_CPutString("                              APLICACION PSOC                                             ");
    Uart_1_CPutString("        Seleccione la funcion que desea utilizar ......                           ");
    Uart_1_CPutString("              1.  Generador Basico                                            ");
    Uart_1_CPutString("              2.  Medidor de Frecuencia                                       ");
    
    //En este While esperamos el caracter ingresado
    while((Uart_1_bReadRxStatus() & 0x08) != 0x08){;}  //mientras la funcion no devuelva 0x08 se queda ah�.
    dato = Uart_1_bReadRxData();  // En la variable dato almacenamos la tecla oprimida.
    
    
    if ((dato == 'G')||(dato == '1')) { // Si la tecla oprimida es G � 1 ingresa a esta rutina para escoger la forma de onda a generar
                dato=0;
                                Uart_1_CPutString("                                                                                                 Seleccione la forma de Onda ......                           ");
                Uart_1_CPutString("                             1.  Senosoidal                                            "); // Example string
                Uart_1_CPutString("                             2.  Rampa                                       ");
                Uart_1_CPutString("                             3.  Pulso                                       ");
                while((Uart_1_bReadRxStatus() & 0x08) != 0x08){;}  //mientras la funcion no devuelva 0x08 se queda ah�.
                 dato = Uart_1_bReadRxData();  // En la variable dato almacenamos la tecla oprimida.
```

El código era para un generador de señales con Psoc...
entonces... en dato queda el caracter capturado...

No dejemos acabar este tema, que me parece demasiado interesante.


@rednaxela, tu nos podrías informar algunas cosas más de la configuración del micro, como  los diferentes modos o estados que pueden tener los pines del micro, su función   y cositas así, por favor?


----------



## chmaster (Nov 10, 2009)

Muchas gracias @Alekvasb por su aporte, voy a probarlo, seria bueno tener el proyecto completo, la verdad le he trabajado mucho a esto del uart y es muy fustrante que no funcione, pero seguire intentando gracias de nuevo, y no olviden cualquier aporte es bueno en la red se encuentran muchas cosas pero no puedo recomendarlas sin antes probarlas lo ultimo que hice fueron filtros con el wizar de psoc designer que se gun la frecuencia nos da unos valores de condensadores, lo probe y funciona muy bien, voy a tratar de hacer un sencillo pdf para explicarlo y lo subire pronto 


gracias por su interes y su aporte


----------



## Alekvasb (Nov 11, 2009)

mil gracias..
voy a cargar el proyecto completo...

como estoy corto de tiempo lo subo completo, creo que el fin de semana..
hay de a poco construimos conocimiento entre todos...


----------



## Alekvasb (Nov 13, 2009)

Perdón..
una pregunta...

Alguién sabe de qué manera se pueden configurar los módulos de amplificadores operacionales y adicional a esto qué tipo de amplificador y parámetros se deben aplicar en el programa Psoc Designer de Cypress para configurar un control PID.

Al menos tener el esquema de uno de los tipos ya sea proporcional, integral o derivativo para sacar a partir de ese los otros...
Mil gracias.


Mil gracias.


----------



## animecomico (Dic 4, 2009)

Yo tambien estoy intereasdo en usar el modulo de amplificadores para poder hacer un control PID. 

Espero alguien haya trabajdo en esto y nos comparta su experencia  

Gracias


----------



## Alekvasb (Dic 4, 2009)

Pues no he trabajo con el, pero consulté con un profesor la forma de configurar los operacionales para que fuera un PID análogo y no emulando uno digital....

En Cypress hay una nota de aplicación caopacitancias conmutadas,,,
http://www.psocdeveloper.com/uploads/tx_piapappnote/an2041.pdf

alllí se explica como generar un integrador con capacitancias conmutadas...
El profer me dice que la clave es saber rotuear los bloques y que hay sale...

sería que miraramos cómo lo sacamos con eso, peroesa sería la base...


----------



## rednaxela (Ene 21, 2010)

Bueno aqui tenemos dos entregas reunidas, una recomendación: es indispensable que que habran el proyecto y vean el codigo escrito allí ya que estos ejemplos los he probado todos y funcionan pero mas que todo lo digo porque en el pdf yo no escribo todo el codigo de ejemplo para no gastar espacio por eso les recomiendo que vean el codigo completo en el proyecto.

Ojala no me demore con la siguiente entrega, pero les digo la verdad, esta no va a ser cercana tengo cosas pendientes pero hay poco a poco lograremos sacar el minitutorial; es que escribir no es tan facil como algunos creen .


----------



## Alekvasb (Ene 22, 2010)

Mil gracias, por tu tiempo y por compartir esto con nosotros..


----------



## enriferney (Ene 24, 2010)

ola a todos soy nuevo por aca quisiera trabajar con los psoc para mi trabajo de grado el cual consiste en implementar un amplificador tobera obturador, y para ello necesito un sensor de presion mpx2200ap o mpx5700ap, y en la adquisicion utilizare el CY8C29466-24PXI, espero tener bueno resultados para subirlos.


----------



## pipo936 (Feb 1, 2010)

Alguien me puede explicar el porque necesito una PGA para hacer funcionar los ADC?

Y gracias rednaxela muy bueno tu primer capitulo, leeré los otros dos.


----------



## rednaxela (Feb 2, 2010)

Alekvasb dijo:


> @rednaxela, tu nos podrías informar algunas cosas más de la configuración del micro, como  los diferentes modos o estados que pueden tener los pines del micro, su función



Que pena no me fije y hasta ahora me di cuenta de este comentario, luego especificamente que quieres preguntar ya que las opciones son diversas es muy versatil los pines de in/out



pipo936 dijo:


> Alguien me puede explicar el porque necesito una PGA para hacer funcionar los ADC?


Bueno no es obligatorio utilizar la PGA solo es acople, no me acuerdo pero hay una nota de aplicacion en cypress donde se dice como utilizar el ADC sin la PGA, pero lo clave es colocar el módulo ADC en los blques SC (switch capacitor) y dan las opciones de una "entrada directa". prueba porque no mas lo hice una vez hace mucho y no tengo suficiente pruebas para decirte esto.


----------



## rosita180 (Feb 5, 2010)

hola a todos... alguno de ustedes ha utilizado el conversor sigma delta para que me ayuden con una dudita que tengo....

no se como hago para que el dato retornado de este sea unsigned y no signed como el normalemente lo retorna, en el datasheet dice que hay que utilizar una funcion llamada DataFormatDelSig_fIsDataAvailable() , la cual no explican muy bien y no se como utilizar, cualquier informacion que tengan sobre este conversor si me la puden pasar se los agradezco...


----------



## rednaxela (Feb 5, 2010)

rosita180 dijo:


> hola a todos... alguno de ustedes ha utilizado el conversor sigma delta para que me ayuden


Especificamente como se llama el módulo?


----------



## jedota (Feb 7, 2010)

Hola 
primero debes considerar que el conversor delsigma entrega un dato correcto de conversion cada 3 ciclos, por lo cual lo primero que debes hacer es capturar el tercer dato y no los 2 primeros.

saludos

jedota



pipo936 dijo:


> Alguien me puede explicar el porque necesito una PGA para hacer funcionar los ADC?
> 
> Y gracias rednaxela muy bueno tu primer capitulo, leeré los otros dos.


Hola 
el Pga es un amplificador de ganacia variable, el cual actua como comparador o amplificador de acuerdo a la seleccion de AGND o VSS, en el caso de un adc se utiliza como buffer (factor de amplificacion de 1) con la finalidad de adaptar la impedenacia de la señal de entrada y eliminar un poco de ruido el cual efecta tu resultado final de conversion.
el utilizarlo o no depende de la magnitud de la señal a utilizar me refiero si trabajas en magnitudes de milivolt la señal se mezcla con el ruido.

saludos

jedota


----------



## Alekvasb (Feb 10, 2010)

Rednaxela.....

Quisiera saber que diferencia hay al modificar la opción Drive de los pines entre las opciones que hay:

High Z Analog
High Z
Open Drain high
Open Drain Low
Pull down
Pull up
Strong
Strong slow

Las únicas que conozco son High Z y Strong...

Agradezco tu tiempo y colaboración.


----------



## rednaxela (Feb 17, 2010)

Estas opciones como mencionas son los driver que dispone el PSoC ya sea para "sacar" al mundo exterior la señal o para las entrada de señales, entre ellas como dices estan:

*-High Z Analog(alta impedancia análoga):* Se utiliza cuando se trabaja con señales que varían en el tiempo(señales análogas). Driver de entrada.
*-High Z(alta impedancia):*Se utiliza cuando se trabaja con señales DC. Driver de entrada.
*-Open Drain high(colecto abierto alto,sin lo comparamos con bjt):* Se utiliza cuando se desea suministrar una gran cantidad de corriente, la carga se coloca entre el pin de salida y VCC. Driver de salida.
*-Open Drain low(colecto abierto bajo) :*Lo mismo que el anterior pero la carga va desde el pin de salida y GND. Driver de salida.
*-Pull down _ Pull up:* No se como explicarlo pero la mejor comparación es como cuando conectamos un *Dip*-*switch* como Pull down o Pull up. Driver de entrada.
*-Strong:* Se utiliza como salida digital y la carga se conecta directamente al pin de salida. Driver de salida.
*-Strong slow:* Esta si no se, lo seguro es que es driver de salida.

Para mayor información mirar aquí.

Saludos.

//****************************************************************************
Ahora les traigo una pequeña rutina para leer un teclado matricial 4*4, en la foto se puede ver su conexión por el puerto 1 los cuatro primero bits se configuran como salida y los cuatro últimos como entrada.

Se agrega el archivo de cabecera "tecla_y_lcd.h" al main.c, y al proyecto copiar los dos archivos que estan adjuntos aquí.

No olvidar que las resistencias se colocan desde los pines de las filas (cuatro últimos bits del puerto 1) dirigidas a GND como cualquier teclado.


----------



## Alekvasb (Feb 19, 2010)

Gracias!!!!
Como siempre nos colaboras con tus conocimientos.


----------



## rednaxela (Feb 20, 2010)

Bueno hay se hace lo que se puede, porque yo tambien soy un aprendiz hasta ahora llevo 1 año conociendo al PSoC .... pero hay progresaremos entre todos


----------



## monto (Mar 15, 2010)

Hola que tal gente quiero hacer pasar la salida de PWM por un PGA con ganacia 1 ya que con mas no se podria de ninguna manera y no puedo hacerlo alguien sabe como hacer Saludosy muchas gracias.


----------



## chmaster (Abr 13, 2010)

Quetal... primero que todo muchas gracias a rednaxela por sus excelentes aportes, y a los demas por su colaboracion.

En esta ocasion estoy implementando un tarificador telefonico si interfaz al pc solo uso las entradas del MT8870 "DTMF" para identificar los numeros marcados; pero tengo varias inquietudes con respecto al temporizador "en tiempo real de minutos" ; y tambien tengo una duda que puede soñar tonta pero no he podido ingresar una cadena de caracteres seguidos a la lcd pues usando el \n se desplaza una columna, pero como el lcd position (1,0) le da una posicion este sobreescribe los numeros sobre la misma columna.


Gracias por su colaboraciòn


----------



## rednaxela (Abr 14, 2010)

chmaster dijo:


> ... no he podido ingresar una cadena de caracteres seguidos a la lcd pues usando el \n se desplaza una columna, pero como el lcd position (1,0) le da una posicion este sobreescribe los numeros sobre la misma columna.


No entiendo mucho que es lo que quieres, es que para leer soy malo .... mejor explicanos un poco más el problema que tienes y haber si le damos solución.
Saludos


----------



## chmaster (Abr 16, 2010)

Bien gracias por tu intgeres rednaxela; te explico:

Estoy implementando un tarificador telefonico sin interfaz al pc con un psoc 29466 y una LCD 16X2, este consiste en que cuando el usuario marque el numero telefonico, lo vea publicado en la LCD, esto se hace con la ayuda de un DTMF el integrado "MT8870", al cual se conecta la linea y este da una salida de las teclas en cuatro bits, estas salidas se conectan al psoc, la idea es que tan pronto le contesten al usuario, este pulse una tecla podria ser la tecla "*", que inicie el conteo de los minutos en tiempo real. " no se inicia el conteo automaticamente porque es muy engorroso tendria que implementar un comparador de voltaje y la linea tendria que tener activada la inversion de polaridad.


Debo decir que tengo un conocimiento basico de psoc yhe implentado varios proyectos, el primer inconveniente que esncontre es que no puedo ingresar todo el numero telefonico de corrido, pues tan pronto ingreso una tecla se borra la anterior, es decir qu se sobreescribe, el programa lo hice usando unos condicionales if de los puertos o un switch case, y los numeros efectivamente salen publicados pero no de corrido.  ejem       "312 4567890"

El otro inconveniente que tengo es con el temporizador de minutos en tiempo real creo que es una operacion con los cristales pero no la tengo muy clara.

Gracias por tu ayuda, este es un proyecto didactico, pues lo he visto implementado con otros micros y me parecio interesante hacerlo con psoc.


----------



## marcela1158 (May 6, 2010)

Muchas gracias a rednaxela por el teclado 4x4.


----------



## EINNER C (Jun 3, 2010)

hola a todos...
hacia un tiempo q no visitaba el post y veo q han avanzado bastante,  felicitaciones rednaxela por tus avances,,,
tengo una duda acerca del ejemplo que dejaste en el capitulo dos,,,, ya  que me vota error y creo q cuando intente realizar a interrupcion era el  mismo..

Generating Timer project...

Starting MAKE...
creating project.mk 
lib/psocconfig.asm
lib/psocconfigtbl.asm
lib/timer8_1.asm
lib/timer8_2.asm
lib/timer8_3.asm
lib/timer8_4.asm
lib/timer8_4int.asm
./boot.asm
./main.c
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(22):  illegal character `@'
!W  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(22):[warning]  declaring a function without parameter prototypes may cause runtime  errors.
If there is no parameter, use <function name>(void);
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(22):  syntax error; found `48' expecting `;'
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(22):  unrecognized declaration
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(22):  unrecognized declaration
!W  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(25):[warning]  declaring a function without parameter prototypes may cause runtime  errors.
If there is no parameter, use <function name>(void);
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(25):  redeclaration of `Timer8_4_DisableInt' previously declared at  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\lib\Timer8_4.h(41)
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  syntax error; found `=' expecting `)'
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  redeclaration of `PRT1DR' previously declared at  C:\ARCHIV~1\Cypress\Common\CYPRES~3\tools\include\CY8C29~1\m8c.h(82)
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  IO port variable 'PRT1DR' cannot have initializer
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  syntax error; found `=' expecting `;'
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  skipping `='
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  syntax error; found `1' expecting `)'
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  missing identifier
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  syntax error; found `1' expecting `;'
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  unrecognized declaration
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  unrecognized declaration
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  unrecognized declaration
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  unrecognized declaration
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  unrecognized declaration
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  syntax error; found `&' expecting `)'
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  syntax error; found `&' expecting `;'
!E  D:\DOCUME~1\INGELE~1\G_INVE~1\PsoC\CAP2CO~1\Timer\Timer\Timer\main.c(26):  too many errors

C:\ARCHIV~1\Cypress\Common\CYPRES~3\tools\make: *** [obj/main.o] Error 1

Timer - 22 error(s) 2 warning(s) 21:38:13
no se que sera, segui los pasos q diste... y ademas corri tu ejemplo y  ninguno...

gracias de antemano


----------



## rednaxela (Jun 9, 2010)

Bien, también yo hace mucho no venía por acá, sabes que creo, mirando los errores lo que dice es que no reconoce el carácter '@', generalmente eso se debe a que el compilador que yo utilizo es el "HI-TECH" este compilador ubica los vectores con direcciones en las llamadas de funciones, a lo mejor tu estas utilizando otro compilador como el "ImageCraft", el cual no necesita la dirección, entonces quilate la '@' y la dirección de la interrupción que viene y eso creo que pueda ser la solución.



EINNER C dijo:


> y ademas corri tu ejemplo y ninguno...


 con eso estoy casi seguro que utilizas un compilador distinto al que yo uso 
Saludos.


----------



## EINNER C (Jun 12, 2010)

gracias por responder..

voy a probar lo que dices, en cuanto al compilador pues yo compilo directamente del psoc designer,,, gracias y avisare los resultados,,,


----------



## rednaxela (Jun 12, 2010)

EINNER C dijo:


> yo compilo directamente del psoc designer


Acuerdate que PSoC designer solo es el software que nos permite la programación, el compilador viene automáticamente enlazado con PSoC Designer y puede ser el "ImageCraft" o el "HI-TECH".
Cualquier cosa estamos por acá.


----------



## EINNER C (Jun 13, 2010)

gracias por la aclaracion...

no he tenido tiempo de probar, he estado muy ocupado, pero cuando lo haga te comento los resultados... gracias


----------



## EINNER C (Jun 17, 2010)

ya probe y la interrupcion funciona correctamente, muchas gracias,,,,,,


----------



## EINNER C (Jun 19, 2010)

hola a todos

hoy quiero postear un ejemplo q he realizado con mi tarjeta,,, tengo el cy8c29466-24pxi, donde realizo una comnunicacion serial a 19200, que envia datos al pc, y desde el pc se controlan 4 salidas, por el momento tengo led s para observar, es una practica algo basica, por q llevo poco tiempo con estos dispositivos, pero con aportes de todos podremos aprender mucho de estos chips, son tada una maquina....

y pues implemente interrupciones serial y por pin,, gracias rodaxnela
el programa que controla es hecho en visual basic.net, gracias a los aportes de Meta, es interesante su post, ya que yo no sabia mucho de esto, y me he ido acoplando, basicamente realize la interfaz siguiendo su manual, pero pues la implemente con psoc,....

Interfaz puerto serie PicRS232 v2.00 (beta)

por otro lado quisisera saber si existe algun simulador para psoc, algo asi como proteus para pic y eñl resto, ya q es muy tedioso estar programando y corrigiendo errores de esta manera... y tambn quisiera empezar a utilizar filtros, bueno eso sera mas adelante....

espero sigamos aportando, me interesan resto esos manejar bn chips,


----------



## EINNER C (Jun 20, 2010)

disculpa @rednaxela te cite mal en el mensaje anterior.... gracias por tus aportes

tengo una inquietud, acerca de la lcd, es muy simple pero no he logrado solucionarla, .. mi duda es como mostrar en la lcd un valor pero en su representacion caracter, es decir, yo tomo cierto valor del conversor adc, ejemplo 128, y quiero q en la lcd salga asi 128, pero no se cual instruccion utilizar LCD_PrHexInt, LCD_PrHexByte me muestran pero el valor en hex(en lugr de 128 muestra 80), LCD_PrCString no sirve, de que manera se debe mostrar...

gracias de antemano........


----------



## rednaxela (Jun 20, 2010)

Bien, revisa el _cap1 _página 10 por allí comente mas detallado como publicar un entero, aquí cito algo de lo que dice el pdf:

```
...
 #include <stdlib.h>
 void main(){
      int num = 14;
      char nuevo[3]= ””;
      LCD_1_Start();
      while(1){
           itoa ( nuevo, num, 10 );
           LCD_1_Position(0,1);
           LCD_1_PrString(nuevo);
      }
 }
```

Saludos

hum una cosa....si por ejemplo vas a publicar el número  dices "128" entonces la variable "nuevo" tiene que tener un tamaño de 4 esto es 

char nuevo[4], visto de otra forma el número quedaría guardado automáticamente así:

nuevo[0] = '1'
nuevo[1] = '2'
nuevo[2] = '8'
nuevo[3] = '\0'

PD: No existe simulador, en realidad el simulador es un dispositivo que hay que comprar y simula en tiempo real, entonces lamentablemente toca estar "probando", lo que ahorra tiempo es comprarse el kit de evaluación ya que trae integrado el circuito para conexión RS232, trae un LCD ya configurada etc ...y ese lo tengo yo 

Saludos


----------



## enriferney (Jun 21, 2010)

ola a todos he estado mirando sus post y me gustaria saber si alguno de ustedes se ha podido comunicar con labview por el puerto usb, estoy haciendo mi trabajo de grado y he tenido inconvenientes a la hora de adquirir datos del psoc a la interfaz de labview con el puerto usb, les agradeceria si alguien me pudiera colaborear


----------



## EINNER C (Jun 21, 2010)

muchas gracias @rednaxela

voy a probar de esa manera, y acerca del kit, tambn tengo uno, y pues si te facilita mucho las cosas,,,,
por otro lado acerca del capitulo de comunicacion serial q me habias dicho, pues empezare a hacerlo, aunque no tengo mucha experiencia en eso...
saludos


----------



## rednaxela (Jun 22, 2010)

enriferney, no he podido trabajar PSoC por usb no tengo esa referencia de uC.
EINNER C, no te sientas comprometido, si quieres redactar un corto artículo de comunicación serial RS232, no tiene que ser algo extenso ni mucho menos, algo corto pero sustancial, pero si no tienes tiempo no hay problema.


----------



## EINNER C (Jun 23, 2010)

hola enriferney

no he trabajado con el psoc usb, pero se q no es muy dificil, un  compañero lo tiene y ha hecho la comunicacion con visual basic, y le va  bn, ... aqui unos ejemplos q da cypress, vienen en el cd del kit psoc eval  usb 3214, espero le sirva...
saludos

pdta: el internet esta my lento y no he podido subir los archivos, espero en la tarde hacerlo...

vaya con este internet, logre subir estos dos ejemplos, comunicacion tipo bulk y asincrona,,,
estas comunicaciones ya las he realizado con pic y tbn labview, pero con psoc nada d nada, asi q cualquier avance seria bueno q lo postearas..

saludos,, espero le sirva


----------



## enriferney (Jun 24, 2010)

HOLA EINNER

MUCHAS GRACIAS POR LA INFORMACION.

PERO YA HE LOGRADO COMUNICARME AHI LES DEJO LO QUE HICE PARA PODER LOGRARLO:

1. HICE TODO LO QUE DICE EN EL PUNTO  Nº 2 DE ESTE LINK
http://zone.ni.com/devzone/cda/tut/p/id/9019

PERO AQUI EL VI DE EJEMPLO QUE DAN NO ME CORRIO

2. EN EL FIND EXAMPLES DE LABVIEW 8, O´ 8.5 HAY UN EJEMPLO QUE SE LLAMA  USB RAW-Bulk.vi
este ejmplo si lo ejecute  y me funciono, 

3 lo unico que hay que hacer es organizar el vi a su gusto, yo apenas lo estoy haciendo, PERO SI CORRE A LA PERFECCION.

cualquier cosa me avisan para colaborarnos


----------



## elcorcel69 (Jul 3, 2010)

hola rednaxela tambien soy colombiano de cali y bueno quiero felicitarte por este espacio dedicado a nutrir nuestros conocimientos sin vos y sin la gente que estan aca nos seria mucho mas dificiles las cosas y la verdad de forma personal les agradezco mucho...
quiero aprender todo sobre este C.I  PSoC asi que empezare por tu introduccion en las primeras paginas y espero al finalizar el mes ya estar en esta pagina jejeje.
Dios los bendiga a todos ...
Muchos saludos...

Por favor serias tan amable chmaster enviarnos los proyectos de PSoC que has realizado seria de mucho valor para esta comunidad emergente, ya que quiero en estas vacaciones aprender mucho del PSoC mil gracias por tu atencion...



chmaster dijo:


> " Debo decir que tengo un conocimiento basico de psoc yhe implentado varios proyectos".





chmaster dijo:


> Gracias por tu ayuda, este es un proyecto didactico, pues lo he visto implementado con otros micros y me parecio interesante hacerlo con psoc.



Cuales son los otros proyectos que has realizado en PSoC?


----------



## rednaxela (Jul 3, 2010)

Gracias @elcorcel69, para eso estamos, para colaborarnos, aunque tengo que decir, que tengo descuidado el pequeño tutoria de psoc, pero me pondre al tanto y lo terminare.

Saludos


----------



## branzhop (Jul 16, 2010)

hola he echo algunos programas de psoc y en un rato mas los subo solo ocupo saber en donde los puedo subir o los subo en megaupload y paso los link.


----------



## elcorcel69 (Jul 18, 2010)

branzhop dijo:


> hola he echo algunos programas de psoc y en un rato mas los subo solo ocupo saber en donde los puedo subir o los subo en megaupload y paso los link.



amigo un abrazo desde colombia estoy al tanto sobre tus modulos a ver que tal son?


----------



## gtec (Jul 18, 2010)

Hola, yo estoy muy interesado en aprender sobre este tema. Tengo una consulta muy basica y es acerca de la programación de estos micros, que hardware se necesita para programarlos, hay alguno que se pueda realizar uno mismo o solo los ofrecidos por su fabricante? Saludos. Muchas gracias por la información a todos!


----------



## rednaxela (Jul 18, 2010)

Hay disponible un programador Free, varios post atrás subí uno , pero también lo podemos encontrar en la página de psocdeveloper.com, hay que mirar bien, he leído que han tenido algunos problemitas con la version 1.9, pero te aseguro que la versión que yo subí al foro, esa si funciona.
Saludos


----------



## stinki (Jul 24, 2010)

me parece exelente el post, hay alguna forma de simularlo ya que estoy totalmente en pañales con este micro y me gustaria hacer pruebas en proteus alguien sabe si es posible


----------



## rednaxela (Jul 24, 2010)

No se puede simular con proteus, la única forma es comprar un dispositivo que permite la simulación, algunos _post atrás_ ya había comentado eso.

Saludos


----------



## EINNER C (Ago 8, 2010)

hola a todos,,, 

un breve regreso de pasada por aca pues e estado bastant ocupado,,,,  para hablar de un modelo de simulacion en proteus q me dio el ing de micro en la u, qu habia encontrado,,,, trae un ejemplo con una lcd de nokia y funciona bn, no me a quedado tiempo de trabajarle, pero lo dejo aqui para el que le sirva, y si alguien le puede cargar una programita distinto y q funcione bn, seria bueno qu lo subiera...

saludos....


----------



## rednaxela (Ago 9, 2010)

EINNER C, excelente ese ejemplo en proteus, no había podido conseguir como simular, por alguna razón extraña el LCD no me funciona, pero el uC si lo simula  , voy a probar con distintos códigos y ver si funciona. Gracias

Saludos.

PD: Que bien que haya personas trabajando en la simulación del PSoC en proteus.


----------



## ESCAMUSA (Ago 25, 2010)

BUENOS DIAS A TODOS LOS MIEMBROS DEL FORO.... ME A PARECIDO UN EXCELENTE FORO Y E APRENDIDO MUCHO ACERCA DE LOS PSoC... TENGO UNA DUDA: NECESITO HACER UN TEMPORIZADOR QUE CUANDO ME LLEGUE A 0 ME MUESTRE EN EL LCD.. SI ALGUIEN SABE COMO HACERLO, LE AGRADECERIA MUCHO..


----------



## lileescorpion (Sep 21, 2010)

Hola a todos 

me alegra mucho haber encontrado un Foro sobre Psoc yy sobre todo en espanol, ya que por el momento soy nuevo en esto de los microcontroladores, pero de ellos me interese por los de la familia de los de Cypress.

Estuve mirando alguna de la conversasiones de ustedes en el foro y resulta bastante interesante y de mucha ayuda para aquellos que comienzan nuevo en esto.

estoy buscando ayuda y espero recibirla de ustede de antemanos mis agradecimientos.

Tengo un Api creado, en el cual hago una llamada a una interrupcion que ejecuta un Menu, pero que sucesede, que cuando oprimo una tecla no sucede nada, ya que esta no esta programada para que ejecute algo, sino esta activado el menu, pero cuando llamo al Menu, sale este y pasa directamente a ejecutar la orden de la tecla que habia oprimido antes. Estuve mirando alguna informasion y esta me habla de interrupciones pendiente y el registro que borras estas, pero probe de varias forma, pero no acierto como utilizar estas instrucciones.

Quizas alguien me pudiera ayudar.

Muchos saludos a todos y espero que este Foro se mantenga y que se siga agrandando.


----------



## gtec (Sep 21, 2010)

rednaxela dijo:


> Hay disponible un programador Free, varios post atrás subí uno , pero también lo podemos encontrar en la página de psocdeveloper.com, hay que mirar bien, he leído que han tenido algunos problemitas con la version 1.9, pero te aseguro que la versión que yo subí al foro, esa si funciona.
> Saludos



Muchas gracias por la información y tambien a todos aquellos que contribuyen con el tema. He armado el programador citado arriba y funciona bárbaro y ya he logrado hacer algunos programas básicos con solo bloques digitales. Por el momento no puedo aportar mas de lo que aportaron aquí en el foro pero si agradecer a todos por su ayuda y cualquier cosa que pueda ayudar no hay problema estoy a disposición. Saludos.

Hola lileescorpion, sería bueno que publiques parte de tu código y configuración de tus puertos para que podamos ver mejor y asi ayudarte.


----------



## electronical (Sep 23, 2010)

Hola, enhorabuena por este curso. Yo estoy trabajando con el PSOC de CYFI y he logrado hacer una aplicación en visual C# que conecte al maestro y al esclavo y envíe datos, lo único es que he leído que hacer gráficos en tiempo real con visual C# es difícil,¿Sigo intentándolo o intento cargar una librería .dll en Labview y copio el código que tengo del visual C#, eso se podría?

Muchas gracias.


----------



## saku_anmorcar (Oct 7, 2010)

HOLA.

tengo una pregunta, estoy haciendo un pequeño proyecto en la U, pero necesito hacer comunicacion usb usando PSOC, quisiera hacerlo en el entorno de java, pero no encuentro mucha informacion sobre comunicacion usb usando PSOC, solo encuentro con PIC, si alguno me pudiera colaborar con alguna bibliografia sobre el tema, seria genial.


----------



## elcorcel69 (Oct 11, 2010)

saku_anmorcar dijo:


> HOLA.
> 
> tengo una pregunta, estoy haciendo un pequeño proyecto en la U, pero necesito hacer comunicacion usb usando PSOC, quisiera hacerlo en el entorno de java, pero no encuentro mucha informacion sobre comunicacion usb usando PSOC, solo encuentro con PIC, si alguno me pudiera colaborar con alguna bibliografia sobre el tema, seria genial.




me parece que el designer5.1 tiene los modulos de la interfaz usb para programarlos en C solamente no se si alguno haya programado en java y no creooo...


----------



## saku_anmorcar (Oct 11, 2010)

lo que no manejo muy bn es la emision de datos desde el psoc, esa es mi pregunta si existe algun documento o tutorial que pueda usar para prender a manejar los modulos para la comunicacion usb con psoc


----------



## Javih863 (Oct 27, 2010)

rednaxela y EINNER C; Me funciono pero me toco quitar la LCD.
Tengo una pregunta se esta usando el CY26443 que es el unico uC que esta en el catalogo de la familia CY26xxx, entonces estoy trabajando con el cy29466 no me podrian decir como consigo el modelo de otros PSoC's.
Estuve mirando la configuracion de los pines y son iguales en cuanto a los puertos, me podrian decir que tan compatibles son los CY8C29/27/24/22/21xxx con los CY8C26/25xxx.

Pdta: Muy bueno el foro me toca leer mucho, pero la ayuda de probar sin el kit la saca del estadio


----------



## ESCAMUSA (Oct 28, 2010)

edgar_87 dijo:


> hola,
> 
> estoy haciendo mi proyecto final de carrera y el micro que utilizo es el c8y29466pxi y tengo un problema con el multiplexor.
> 
> ...



pero no estas mandando  las variables por el lcd cierto?? Para mi proyecto de grado solamente tengo que adquirir temperatura con el lm335 y mostrar la temperatura por el lcd... Ya probaste tu codigo y si te sirvio??.. Me avisas porfa que me seria de mucha ayuda.. Gracias


----------



## Javih863 (Oct 28, 2010)

queria hacer pruebas con el PSoC del archivo de proteus, pero no esta, las familias que puedo escoger dentro del designer que son CY8C29xxx, CY8C24x94, CY8C23x33, CY7C64215, CY8CLED04/16, CY8CLED0, CY8CLED0xG, CY8CTST120, CY8CTMG120, CY8CTMA120, CY8C28x45, CY8C28x43, CY8C28x52, CY8CPLC20, CY8CLED16P01 o CY8C27/24/22xxx, CY8CLED08.
Y no esta la del ejemplo que es CY26443.


----------



## Alekvasb (Nov 16, 2010)

Hola a todos, hasta ahora estaba leyendo lo de la suimulación en Proteus, voy a leer con más tiempo para entender bien...

Se me ocurre traer los miniprog directamente de Cypress, necesito uno y de paso voy a pedir dos o tres por si a alguien se le ofrece...

Quería hacer una pregunta, ya que no me acuerdo...
Puedo cambiar los valores de medición del adc, o sea puedo hacer que mi máximo votaje  se 1.5 y que lo tome como 250 para el registro?


----------



## Javih863 (Nov 18, 2010)

no se si al configurar un PGA con una ganancia de 3,2 el valor 1,5 v se tendrian 4,8 v a la salida del PGA.
Estos 4,8 / 5 * 255 = 244,8 no es 250 pero se aproxima.
Otra opcion seria dos PGAs con ganancias de 0.813 y 4 tampoco da 250 sino 248.8
O talvez usando un pin externo para poner un voltaje que restar con el ADC.


----------



## dftrejos (Dic 9, 2010)

Buenas tardes a todos. Primero queria felicitarlos por la oportunidad que nos brindan a todos de participar en este excelente foro.

Bueno. al grano...  Estoy diseñando un proyecto que es relativamente sencillo. Un ECG (electrocardiografo) . despues de haber configurado un INSAMP con 3 Operacionales, y haber adaptado un filtor pasabajo de 150 Hz a la salida del INSAMP. me quede frenadao con la salida de voltaje en modo comun (VCM).  Lo que pasa es que el insamp tiene una variable que es (Common Modo Out) esta variable es realmente importante por que me atenua el VCM disminuyendo notablemente el ruido que es algo muy molesto debido a que las señales ECG son muy pequeñas (mV). esta salida "Common modo out" deberia ser la entrada de un op no inversor (PGA) con el fin de ser direccionada al pie derecho del usuario (Voltaje de referencia).

El problema radica en que no se como redireccionar el "Common modo out" no comprendo claramente las opciones que me brinda de bloque inversor o bloque no inversor. por que nunca tenco una salida fisica por alguno de los puertos del PSoC, que es lo que necesito para conectar como referencia al pie derecho.

Cualquier tipo de informacion al respecto seria de gran ayuda.

Nuevamente Gracias

Adjunto la Aplication notes de los amplificadores diferenciales y el pdf del INSAMP


----------



## ESCAMUSA (Dic 17, 2010)

rednaxela dijo:


> Estas opciones como mencionas son los driver que dispone el PSoC ya sea para "sacar" al mundo exterior la señal o para las entrada de señales, entre ellas como dices estan:
> 
> *-High Z Analog(alta impedancia análoga):* Se utiliza cuando se trabaja con señales que varían en el tiempo(señales análogas). Driver de entrada.
> *-High Z(alta impedancia):*Se utiliza cuando se trabaja con señales DC. Driver de entrada.
> ...





BUENOS DIAS REDNAXELA, PODRIAS PONER TODO EL PROYECTO COMPLETO PORFA.... LA VERDAD DESDE HACE mAS DE 1 MES ESTOY TRATANDO DE KE EN EL LCD ME DETECTE LO DE UN TECLADO MATRICIAL 4x4 PERO NO E PODIDO... LO HICE CON UN DISPLAY 7 SEGMENTOS PERO NO SE COMO MANDARLO POR EL LCD... PODRIAS AYUDARME.. GRACIAS..


----------



## rednaxela (Dic 17, 2010)

Hace mucho que no entro al foro, por falta de tiempo pero aquí estoy de nuevo un poco , bueno @escamusa porque no adjuntas el proyecto y lo vemos acá entre todos?.
---
@dftrejos, la verdad casi no entiendo lo que dices con respecto a los pines de salidas físicas, podrías ampliar un poco esa información?, de pronto de puedo colaborar en algo. Una pregunta como tál el solo amplificador de instrumentación si te está funcionando/amplificando?


----------



## ESCAMUSA (Dic 17, 2010)

ESTE PROYECTO ES SACADO Y MODIFICADO DE CYPRESS AN2034...

LAS CONEXIONES SON: EL TECLADO MATRICIAL VA CONECTADO AL PUERTO 1.. LAS FILAS (ROW) pines 0,1,2,3, Y LAS COLUMNAS COL pines 4,5, 6, 7. 

EL DISPLAY 7 SEGMENTOS, VA CONECTADO AL PUERTO 0 TAL CUAL COMO APARECE EN LA APLICATION NOTE AN2034..

NECESITO MANDAR LO DEL TECLADO AL LCD SI ALGUIEN ME PUEDE COLABORAR LE AGRADECIRA MUCHO..

ADJUNTO EL PROYECTO Y LA APLICATION NOTE


----------



## rednaxela (Dic 21, 2010)

No, estuve mirando lo que adjuntaste y ellos lo hacen diferente como yo lo hice, a lo mejor el método de ellos sea mas rápido en ejecución(lo cual creo que sí), pero bueno yo tengo mi forma de hacerlo , en el ejemplo adjunto está a configuracion de los pines del teclado y del LCD, con un código bastante, bastante sencillito, casi que no hace nada . Creo que con eso ya tienes lo que buscabas.

Hasta pronto .

Pos1: Por favor no escribas en mayúsculas da la impresión de que estuvieses gritando .
Pos2: por si acaso; _"No olvidar que las resistencias se colocan desde los pines de las filas  (cuatro últimos bits del puerto 1) dirigidas a GND como cualquier  teclado."_


----------



## ESCAMUSA (Dic 22, 2010)

Muchas gracias rednaxela, voy a probar y te cuento... Y lo de las mayusculas sorry, tengo la costumbre de escribir siempre en mayuscula jejejeje... Feliz Navidad y Prospero 2011 para todos los miembros del foro.. Y ke viva PSoC jejeje


----------



## Alekvasb (Dic 22, 2010)

Necesita mostrar los números tecleados en el lcd únicamente, o algo más?


----------



## ESCAMUSA (Dic 23, 2010)

Alekvasb, necesito hacer un control de acceso, pero lo mas importante de ese control de acceso es mostrar lo que estoy presionando del teclado en el lcd.... Lo hice pero en un display 7 segmentos, y no se como mandarlo al LCD... Muchas Gracias si me puedes ayudar, el Kyt que utilizo es el CY3210 y el microcontrolador es el CY8C29466 o el CY8C27443..


----------



## Alekvasb (Dic 23, 2010)

Ok...Asumiendo que ya verificó que está funcionando ok el lcd, por ejemplo con una palabra ..."Hola"En caso contrario...Puede correr esto...LCD_Start(); // Inicializa LCD LCD_Position(0,4); // Posicion  LCD_PrCString("PsoC LCD"); // Esto es lo que va a mostrar...LCD_Position(1,2); // cambio de posición.-/*/*/*/*Lo único que tendría que hacer es inicializar el LCD, asignar una posición sino lo quiere en 0.0 y utilizar:LCD_PrString(Var); // donde "Var" es su variable, en la que tiene lo que capturó del teclado, en caso que lo esté almacenado,También lo puede imprimir directamente...LCD_PrCString("1")LCD_PrCString("2");...LCD_PrCString("n");Lo otro es cacharrear, ponerle retardos..LCD_Delay50u;El datasheet del módulo...http://www.cypress.com/?docID=25194Yo tenía ese programita... esperar a ver si lo encuentro../*/*/*/Si quiere mostrar números "grandes"  100-1000 tiene que usar comandos como "itoa"  para mostrarlo como decimal, sino lo muestra como octal, (creo)


----------



## memowwe (Dic 24, 2010)

Felizez fiestas, el psoc designer  esta completo ? o hay  que comprarlo? para  programar en c
gracias


----------



## LisoPic (Dic 25, 2010)

El PSoC Designer 5.0 ya trae incorporado el compilador C. Al crear un 'nuevo proyecto', debes especificar el lenguaje con el que vas a trabajar (si ensamblador o C). Felices Fiestas


----------



## mlop (Ene 19, 2011)

Hola,

actualmente he empezado a trabajar con psoc porque estoy haciendo un diseño para medir los biopotenciales mediante psoc y visualización por labview. Para la etapa de amplificación de la señal alternas he implementado un 3OP am (amplificador de instrumentación) seguido de un filtro con frecuencia de corte de 30hz. 

Hasta aquí bien, pero el problema viene cuando ruteo las salida del filtro a un pin para ver como está la señal amplificada. La ganacia que he configurado es de 93 (ingain=48 y outgain=1,94) y le pongo una señal de 20mV. ¿Por lo tanto, no debería salir por el pin una señal AC como la de la entrada pero de valor 1,86V?

Es que me está siendo imposible visualizarla en el osciloscopico...En cambio, si bajo la ganancia a 2 e introduzco una señal continua de 1 voltio en el pin de salida veo los 2V.

¿Sabéis que es lo que puede estar sucediendo?

¡Gracias por la ayuda!


----------



## ESCAMUSA (Ene 19, 2011)

rednaxela dijo:


> No, estuve mirando lo que adjuntaste y ellos lo hacen diferente como yo lo hice, a lo mejor el método de ellos sea mas rápido en ejecución(lo cual creo que sí), pero bueno yo tengo mi forma de hacerlo , en el ejemplo adjunto está a configuracion de los pines del teclado y del LCD, con un código bastante, bastante sencillito, casi que no hace nada . Creo que con eso ya tienes lo que buscabas.
> 
> Buenas tardes a los miembros del foro
> 
> ...


----------



## rednaxela (Ene 19, 2011)

ESCAMUSA dijo:


> No incluiste en el proyecto el documento de puertos h. lo pongo como comentario y me salen los siguientes errores


 Bastante extraño, he descargado el .zip que subí al foro, lo compilo y no muestra ningún tipo de error, solo da una advertencia, pero esa es "normal". También verifique y el archivo puertos.h sí está ahí. 
Tú error debe estar en otro lado.

Saludes. 



mlop dijo:


> En cambio, si bajo la ganancia a 2 e introduzco una señal continua de 1 voltio en el pin de salida veo los 2V.¿Sabéis que es lo que puede estar sucediendo?



Hmm no sé, te quiero preguntar algo, la señal AC que le introduces al PSoC me imagino que tiene un nivel DC??, osea por ejemplo que si quieres amplificar 2mVac le has  agregado un nivel DC a los 2mV por ejemplo de 2.5Vdc ? esto es para que no recorte la señal el uC, porque él fácilmente lo que hace es eliminar la parte negativa y amplifica solo la positiva cuando intentar ingresarle una señal pura AC sin nivel


----------



## mlop (Ene 20, 2011)

Rednaxela,

gracias por tu pronta respuesta... La verdad es que estoy un "poco" estancada con ésto...  Tienes razón, probé ponerle un DC de 2,5V a parte de la señal AC, pero aún así no me salía nada...Quizás es problema del RefMux que implementé.
Implementé un RefMux para fijar la AGND a la misma señal que la de entrada, de hecho, el refMux lo tengo ruteado al pin04 y éste conectado con el p06 que es la entrada no inversora del amplificador (entrada masa de la señal AC), y por el p01 es por donde entra la señal AC.

Por lo tanto, con esa configuración, la AGND que PSoC toma, es la de la señal AC ¿verdad?¿ o son los 2,5V de la config (vdd/2+/-Vdd/2) de los parámetros generales? Aún así entiendo que PSoC no admita tensiones negativas y deba ponerle un DC... 
Pero eso hará que se me sature rápidamente cuando la señal AC aumente.

¡Gracias!


----------



## rednaxela (Ene 20, 2011)

mlop dijo:


> Por lo tanto, con esa configuración, la AGND que PSoC toma, es la de la señal AC ¿verdad?¿ o son los 2,5V de la config (vdd/2+/-Vdd/2) de los parámetros generales?


El AGND efectivamente es la configuración que le tienes, en este caso le has puesto vdd/2+/-Vdd/2 (2,5V), te dejo una opción, prueba con el ampli-Instrumentación de solo 2 operacionales y no el de 3 ( que es él que estás utilizando), y prueba que todo funcione bien que amplifique, ajustarle el AGND etc... despues de que todo funcione,  intenta hacerlo ahora con el amplificador de instrumentación de 3 operacionales.
Claro está el ampl-Instr de solo dos operacionales no tiene tanta ganancia como el de 3, pero has pruebas con voltajes AC no tan pequeños para que funione como debe ser, también sería bueno que adjuntes en un .zip el proyecto en PSoC Designer, pero solo la pequeña parte del amplificador de intrumentación no todoo el proyecto que haces.

Saludos


----------



## mlop (Ene 20, 2011)

rednaxela dijo:


> El AGND efectivamente es la configuración que le tienes, en este caso le has puesto vdd/2+/-Vdd/2 (2,5V), te dejo una opción, prueba con el ampli-Instrumentación de solo 2 operacionales y no el de 3 ( que es él que estás utilizando), y prueba que todo funcione bien que amplifique, ajustarle el AGND etc... despues de que todo funcione,  intenta hacerlo ahora con el amplificador de instrumentación de 3 operacionales.
> Claro está el ampl-Instr de solo dos operacionales no tiene tanta ganancia como el de 3, pero has pruebas con voltajes AC no tan pequeños para que funione como debe ser, también sería bueno que adjuntes en un .zip el proyecto en PSoC Designer, pero solo la pequeña parte del amplificador de intrumentación no todoo el proyecto que haces.
> 
> Saludos



Hola,

tienes razón, pero quizás me encontraría con el mismo problema de AGND..
Si quiero cambiar el AGND y no utilizar ninguna de las opciones que ofrece en 'global resources', ¿como lo debo hacer?
Añadiendo un bloque RefMux y entrandole la masa de la señal de entrada del generador de funciones ya esataría no? Entonces PSoC trabajaría con un margen de 0 a 5V...
¿O es que está limitado solo a trabaja de vdd/2+/-Vdd/2 y las demás opciones?

Merci por tus comentarios!!


----------



## rednaxela (Ene 20, 2011)

Pues es mejor que no cambies el AGND diferentes a las opciones que nos da el Software, pues para que todas las implificaciones queden simetricas y halla una coherencia, si cambias el AGND pues no va a pasar nada que no se sepa, si lo subes mucho a lo mejor se te va a recortar por arriba la señal despues de amplificada o si lo dejas muy por debajo el AGND entonces se va a recortar la parte negativa, mejor dejalo con los valores standar,
prueba lo con el amp-instr de 2 operacionales, yo le he usado y sale bien

aaaaaaa intenta subir el proyecto al foro, solo la parte del amp-instr

Saludos


----------



## ESCAMUSA (Ene 26, 2011)

Buenas tardes a todos los  miembros del foro

Tengo una pregunta, sigo tratando de hacer el programa del teclado matricial 4x4 en C. Mi pregunta es la siguiente: Como hago para leer algo de un puerto y escribir en una variable lo que tenga ese puerto??.. 

Gracias si alguien me puede colaborar

O si alguno de ustedes sabe pasar de Assembler a C, porque tengo el proyecto en ASM pero lo necesito es en C...


----------



## dftrejos (Feb 3, 2011)

rednaxela Buanas Tardes

Tengo un problema similar al de mlop; yo estoy diseñando un filtro pasabanda de 2 orden (BPF2) con frecuencias de corte  entre 20 - 500 Hz para señales Electromiograficas. ya lo configure en el Filter design wizard con una Fcentral de 260 Hz y un ancho de banda de 480 Hz.

La prueba la estoy realizando con un generador de señales (Senosoidal) con su respectivo Offset para que la señal solo quede en nivel Positivo. Sin embargo la señal de salida por el puerto 03 del Psoc no solo no se atenua como debiera esperarse sino que la señal de salida tiene una forma completamente diferentre a la señal original (senosoidal)

Por mas que cuadro la F sample (Frecuencia de muestreo) no he podido solucionar ese problema. y por mas que he buscado, no entiendo como ajustarlo para que la señal sea exactamente igual a la original


----------



## rednaxela (Feb 3, 2011)

dftrejos dijo:


> Tengo un problema similar al de mlop; yo estoy diseñando un filtro pasabanda de 2 orden (BPF2) con frecuencias de corte  entre 20 - 500 Hz para señales Electromiograficas. ya lo configure en el Filter design wizard con una Fcentral de 260 Hz y un ancho de banda de 480 Hz.


Generalmente los filtros en el PSoC no funcionan por dos inconvenientes :
*1. *No se le a agregado el offset a la señal de entrada.( en tu caso ya lo tienes bien ).

*2.* Porque no se sabe ajustar la frecuencia del filtro, quiero decir el reloj que le llega al bloque del filtro, como te das cuenta el cuadro nos aconseja hacer una division de 519, este divisor de frecuencia esta cálculado automáticamente para una frecuencia de entrada de 24MHz, al hacer la división tenenos 24MHz/519 ≈46.2kHz,
entonces utiliza un timer o un contador o un pwm y lo utilizas como divisor de frecuencia, que te de como resultado 46.2kHz, y esta salida la tomas como el reloj de los filtros.

*Hay otro punto, la verdad no se si estos filtros funcionen a frecuencias del orden de 20Hz.* 


Saludos 

Edit: para que no se te atenue mucho la señal en ese ejemplo deje la ganancia a 1dB (1.122).
       Tambien puedes observar que a 20Hz la señal está muyy atenuada , entonces sigue "jugando con los valores, pero tengo en duda que el PSoC funcione para estas frecuencias.


----------



## dftrejos (Feb 4, 2011)

Rednaxela  Buenas tardes

Mira hay algo que no tengo claro y es la idea de utilizar un timer o un contador o un pwm para dividir la frecuencia.

Lo que yo estoy haciendo es utilizar los VC1; VC2 Y VC3 para dividir N veces (519) la frecuencia de reloj principal de 24 MHz; es decir: VC1= 16; VC2= 16 ; VC3 Fuente de VC2 = 2 

asi me funciona perfectamente en el diseño de filtros pasabajos, pero no en el pasabanda.

Me podrias por favor indicar como dividir esta frecuencia con el timer "Si tiene que ser en codigo (main.c) o en los recursos globales.

Muchas gracias, no sabes lo importante que es para mi esta información. es que es parte de mi proyecto de grado. Una vez culmine lo publicare orgullosamente en este foro

Rednaxela Buenas tardes  ¿que pena yo otra vez aquí molestando!

Bueno, me quedo sonando lo del Timer y me leí el capitulo 2 que publicaste. despues de leerlo y configurar mi proyecto en el PSoc me quedaron 2 inquietudes.

1ro adapte el modulo Timer8 a mi proyecto dejando VC1 = 4; VC2 =1 y VC3 fuente SysClk/1 y ajuste el periodo del Timer en 130 para obtener una frecuencia de 46.15KHz. Pero no se si deba tener en cuenta en este filtro lo del Ciclo Útil.

2do Configure el TerminalCountOut en RO0[0] De tal forma que quedara en el puerto 0_0. Lo que no tengo claro es como hacer que esta salida sea la señal de reloj del filtro pasabanda (BPF2) "Debo hacer algo mas o lo dejo así"

Gracias.


----------



## rednaxela (Feb 5, 2011)

con respecto a lo del ciclo útil, no importa mucho porque solo es una señal de tiempo para el filtro pero yo siempre lo dejo al 50%, sabes sería bueno que hagas una prueba con el pasa banda, has un filtro a 1kHz pasabanda claro, y mira si funciona bien, es que quiero salir de la duda que funcione si funciona a 20Hz.

Edit: espera te voy a subir un ejemplo adjunto, por ahora no tengo ni osciloscopio ni generador, entonces te tocaría probarlo, voy hacer el pasabanda como de 34Khz y comentas.

Mas tardecito subo el adjunto

Saludos


----------



## dftrejos (Feb 5, 2011)

Rednaxela Buenos Dias

Listo lo del ciclo util; pero ayer realize las pruebas con el pasabnada y el Timer como divisor de reloj e igual no me funciono; es por que no muestrea a la velocidad que deberia.

Lo que no tengo claro es como se debe hacer para que el filtro escoja la señal de reloj que el TIMER entrega por el puerto 0_0 (TerminalCountOut en RO0[0]).

Aqui te adjunto mi proyecto; te pido el favor lo puedas mirar para saber si me equivoque en algo mas.

Gracias


----------



## rednaxela (Feb 6, 2011)

Algunas cosas por decir:


  -Para que el filtro funcione, como debe ser, la línea verde debe de coincidir con la azul( la azul es la respuesta teórica y la verde es la respuesta esperada de acuerdo a los valores que estamos cambiando), el diseño que has hecho no coincide, solo es cuestión de modificar los diferentes parámetros que ahí hay hasta que coincidan las dos curvas.

  -Cuando te dije que el ciclo útil no importaba, te lo has tomado muy enserio y lo has dejando en 0%! hay que dejarlo con algún valor porque entonces no funcionará.

  -No veo donde estas agregando el nivel DC que debe de tener la señal antes de ingresar al PSoC, me imagino que lo estas agregando con un circuito exterior al micro, pero lo ideal sería dejar que el mismo PSoC de la referencia exacta de este voltaje (nivel), por eso lo he agregado con un refmux configurado en "AGND", este refmux nos dará el voltaje AGND exacto que debe tener el señal.

  -Para colocar la referencia del timer al filtro... es mejor que mires el proyecto adjunto, me queda difícil explicarlo con palabras, es mas intuitivo si vez como le he hecho en la matriz del PSoC,  lo único que se hace es rutear internamente las conexiones.

  -La división que el programa aconseja para el diseño del filtro es de 375, entonces 24MHz/375=64kHz, debemos de obtener 64kHz para que el filtro funcione como debe ser, hay es donde un módulo timer entra a jugar como divisor de frecuencia, si selecciono el reloj del timer en SysClk*2 (porque yo quise) es decir 24MHz*2 = 48MHz, entonces el periodo del timer debe se de 750 ( 48MHz/750 = 64kHz)


  -Como podrás mirar puse dos entradas,una entrada positiva y otra negativa, eso quiere decir que conectes la señal que vas a filtrar directamente ahí,  esto es; que no va a estar con la misma tierra en común por lo antes dicho del nivel DC.

  Pd: si vas compilar este proyecto, te va arrojar un error porque yo utilizo un compilador diferente al tuyo, solo es cambiar el tipo de compilador para que te corra bien.



Saludos.


----------



## dftrejos (Feb 9, 2011)

Buenos Días Rednaxela

Primero quiero agradecerte por que fue de gran ayuda toda la información que me brindaste. es bueno encontrar colegas que ofrezcan sus conocimientos de manera tan oportuna y desinteresada.

Quería ademas comentarte que el filtro funciono muy bien con la señal biológica (EMG) a pesar que la teoria recomendaba un filtro pasabanda de 20 a 500 Hz.

Te digo a pesar, ya que por mas que ensaye estos 2 dias, no pude bajar la frecuencia inferior a menos de 100 Hz. es lo minimo que permite el Psoc antes de bloquearse.

Nuevamente te agradezco. y envio adjunto el filtro Pasa banda finalizado


----------



## rednaxela (Feb 9, 2011)

dftrejos dijo:


> Quería ademas comentarte que el filtro funciono muy bien con la señal biológica (EMG) a pesar que la teoria recomendaba un filtro pasabanda de 20 a 500 Hz.


Me alegra que halla salido bien, y ahora tú me has aportado un dato interesante del cuál yo tenía dudas y no conocía :


> Te digo a pesar, ya que por mas que ensaye estos 2 dias, no pude bajar  la frecuencia inferior a menos de 100 Hz. es lo minimo que permite el  Psoc antes de bloquearse.


Gracias y para eso estamos para colaborarnos.

Saludos


----------



## dftrejos (Feb 16, 2011)

Buenos Días

Que pena yo otra vez molestando por aquí, pero la verdad es que me surgieron nuevas dudas. Ahora con el conversor analogo-digital ADCINC12.

La señal a la que anteriormente le realice el filtrado (100 - 500 Hz) necesito ahora enviarla por el puerto serial para comunicarme por medio del Hyperterminal al Pc.

Según el teorema de Nyquist deberia plantear un A/D con una frecuencia de muestreo por encima de 1 KHz en este caso utilizare 2 KHz.

En el Data Sheet  determinan una ecuacion para la frecuencia de muestreo. que depende directamente del Data Clock.

Pero como configuro el Data Clock? si las unicas opciones son el TMR Clock y el CNT Clock. Debo multiplicar las 2 para dividir al reloj principal? 
Ademas el resultado de SampleRate en los ejemplos del datasheet dan en (sps)

Y por ultimo ¿La resolucion ya esta definida en los 12 bits sino es así como la configuro?

Te envio lo ultimo que le adapte al sistema

Muchas gracias


----------



## EINNER C (Feb 17, 2011)

buenas a todos

hacia tiempo no volvia por aca, pero es que estuve ocupado y se me da~o el pc, perdi toda la info,....

en cuanto a la duda de dftrejos, si mal no recuerdo, para ajustar la frecuencia de reloj del ad debes indicarle cual es la fuente, la cual puede venir directamente del sysclock que en mi caso es de 24Mhz o puedes realizar cualquier tipo de division con vc1, vc2 en fin, tiene muchas opciones, calcula la frecuencia que necesitas y realizas las divisiones necesarias, recuerda que la frecuancia maxima recomendada para una mejor linealidad es de 2Mhz y la maxima es de 8Mhz.

en cuanto a variar la resolucion de 12 bits, puedes utilizar entonces el adcinc que puede estar de 6 a 14 bits, tambn recuerda que segun la resolucion, varia la capacidad de muestras por segundos, siendo la maxima de 46,8 ksps (6 bits), ya que el adcinc12 esta fijo y ademas solo alcanza 480 sps, .......

hasta luego, cualquier duda estamos para ayudarnos


----------



## ottoman (Feb 18, 2011)

Hola, ante todo muchas gracias por los tutoriales de psoc, son estupendos.
Me gustaria preguntarte una duda que tengo, espero que no sea una molestia.
Quiero hacer una practica con psoc, usando un pulsador, pero no se como evitar los revotes. Como lo harias. Muchas Gracias.


----------



## rednaxela (Feb 18, 2011)

@ottoman, Tienes dos opciones, hacerlo por sotfware o por hadware.
Mira varios enlaces:

*Pic para encendido de cuartos y faros con botón pulsador.*(Hadware)
*Antirebotes*. (Hadware)

*Antirebote por software con micro mps430* (Software)

En el foro puedes buscar mas información, el tema de los rebotes se aplica a cualquier pulsador indiferente del microcontrolador,entonces puedes adaptar los contenidos del rebote por software para un PSoC, porque el de hadware es lo mismo para todos.

Saludos


----------



## ESCAMUSA (Mar 3, 2011)

Buenos Dias a todos los miembros del foro..

Tengo una pequeña dudita con respecto a mandar un caracter en el LCD... Quiero mandar este caracter " ° " es el del grado centigrado.. Pero no se como hacerlo, ya intente inicializar una variable char y despues utilizar el LCD_PrString y nada, utilizando LCD_PrCString " ° " y tampoco... Tambn intente hacerlo con LCD_PrHexByte y tampoco... Si alguno de ustedes sabe como, porfavor hacermelo saber..

Gracias


----------



## ESCAMUSA (Mar 8, 2011)

Muchachos cuales son las diferencias entre las 3 familias de PSoC??? a parte del microprocesador embebido que utilizan??... y que diferencias hay entre PSoC Designer y PSoC Creator...

Muchas Gracias si alguien me colabora


----------



## memowwe (Mar 9, 2011)

programador  por  puerto serie  para  PSoC, (AN2134)  de Alessandro Molini , espero les sirva  yo apenas me estoy armando mi programdor paralelo, espero poder hacer algun proyecto aqui el link del programdor descargar

http://www.psocdeveloper.com/docs/appnotes/an-mode/detail/an-pointer/an2134/an-file/129.html


----------



## gtec (Mar 19, 2011)

Hola a todos, estoy frente a un problema y quisiera saber si alguien me puede ayudar. Resulta que necesito usar las funciones de la API de alto nivel de la UART para recibir string's a traves del puerto y la verdad es que no puedo hacerlo funcionar. "Depurando" el programa puedo ver que mi problema radica cuando llamo a la función UART_CmdCheck(), pues esta no devuelve ningun valor distinto de cero, como si no llegaran los datos. Alguien puede explicarme como funciona esa funcion, si tienen algun ejemplo hecho con el 466? Muchas gracias!


----------



## rednaxela (Mar 20, 2011)

gtec dijo:


> Hola a todos, estoy frente a un problema y quisiera saber si alguien me puede ayudar. Resulta que necesito usar las funciones de la API de alto nivel de la UART para recibir string's a traves del puerto y la verdad es que no puedo hacerlo funcionar. "Depurando" el programa puedo ver que mi problema radica cuando llamo a la función UART_CmdCheck(), pues esta no devuelve ningun valor distinto de cero, como si no llegaran los datos. Alguien puede explicarme como funciona esa funcion, si tienen algun ejemplo hecho con el 466? Muchas gracias!


Como configuraste el módulo? si has activado las interrupciones?, está bien calculada la velcidad de trasmición/recepeción? una imagen de como configuraste el módulo, será mas ilusrtativa.
Saludos


----------



## gtec (Mar 20, 2011)

rednaxela dijo:


> Como configuraste el módulo? si has activado las interrupciones?, está bien calculada la velcidad de trasmición/recepeción? una imagen de como configuraste el módulo, será mas ilusrtativa.
> Saludos



Gracias por contestar, sí, el modulo tiene activadas sus interrupciones y transmite lo pude comprobar por medio de la transmision en ambos sentidos con las funciones relacionadas al envio de datos tipo CHAR ( getchar, putchar, etc) y tambien envio sting (CPutString, PutString, etc), mi problema radica con la funcion especicamente UART_cmdCheck(). Ahora en este momento estoy en otra compu y no cuento con el programa, si necesitas mas especificaciones entonces durante la semana la subo, pero paso a comentarte:

Pude leer que la funcion UART_CmdCheck() comprueba dos cosas para determinar si un dato valido a sido recibido; si ha llegado el "CommandTerminator" que en el editor de propiedades figuar como "13" o si el buffer ha sido completado, el cual esta seteado en "16". He probado ambas cosas, mandando datos con el "CommandTerminator" y tambien string que superan los 16 caracteres, pero no logro que la funcion "se active". Alguien tendra algun ejemplo en el cual utilize esta funcion? Gracias.


----------



## mlop (Abr 1, 2011)

Hola,

¿alguien ha implementado alguna vez la eeprom en un psoc evalukit1?Es que estoy intentando implementar un sistema de adquisición de biopotenciales, en el cual los valores que salgan del amplificador guardarlos en la eeprom. Después de esto, poder leerlo y visualizarlo en labview...

El problema lo tengo, en los tipos de variable...El valor que tengo que guardar en la eeprom es un float, y por lo que he visto tengo que hacer un "cast" a char... Yo lo que tengo hecho es cuando tengo el valor digital de la muestra, hago un "ftoa" para tener el float en un valor ascii y así, poderlo guardar en la eeprom. No obstante, esto no me ha funcionado...

¿Alguien tiene alguna idea de como lo puedo hacer?¿Alguien a implementado un muestreo de señales y las ha guardado en la eeprom?

Mchas Gracias!


----------



## ESCAMUSA (Abr 7, 2011)

Buenas noches

Quisiera saber si alguno de ustedes sabe como borrar la lcd para que cuando mande una cadena de caracteres no se me imprima el ultimo bit del ultimo caracter...Estoy mandando 16 mensajes por medio de un teclado 4x4 y cuando la cadena es muy larga, cuando mando una cadena corta se me quedan bits de la cadena larga... Por ejemplo, en la tecla 7 esta "segundo tiempo" y en la tecla 2 esta "gol". Cuando presiono la tecla 7 me manda "segundo tiempo", pero cuando presiono la tecla 2 me manda "gol" y se me queda el "undo tiempo" de la anterior cadena....

Muchisimas gracias por si alguien me puede colaborar..


----------



## EINNER C (Abr 8, 2011)

hola escamusa

prueba con esto

LCD_PrString("\f");

eso te borra toda la pantalla


----------



## ESCAMUSA (Abr 8, 2011)

Muchisimas gracias EINNER ya mismo voy a probar la funcion que me dijiste y les comento como me fue..


----------



## Alekvasb (Abr 14, 2011)

Tiempo de no entrar, saben que se me jodió el disco y se me borró TODO, ah que dolor....

De eso hace meses, pero la información de la U, toda se perdió.........

Voy a empezar abajr de acá para conseguir un poco.


----------



## ESCAMUSA (Abr 14, 2011)

OUCH Que dolor Alekvasb...

Les recomiendo a todos los miembros del foro hacer un back up cada 15 o 30 dias... Y cualquier cosa que necesites nos avisas y si te podemos ayudar con mucho gusto...

Que viva PSoC!!!


----------



## Alekvasb (Abr 15, 2011)

Y lo delñ backup, pues el disco ens del 1TB y ya iba por el 40% lleno.... me muero comparando dVD, y no he tenido para un disco de respaldo...


Pues dolor es poco, porque se me perdió todo mi software bajado de Internet, 7 Gigas de música, la info de la universidad, fotos, videos de la family..

Los juegos y los programas que había hecho, pero bueno qué se le va a hacer....


Alguien sabe si vendes plataformas para robtos, ya hechas? o sea la base con las llantas y los motores???  cosa que uno le ponga la electrónica...


----------



## Waltza (Abr 19, 2011)

Necesito hacer un control PID para un sistema de 1er orden, ej. la carga de un condensador o control de temperatura, alguien me puede colaborar dandome alguna luz????


----------



## dftrejos (May 3, 2011)

mlop dijo:


> Hola,
> 
> ¿alguien ha implementado alguna vez la eeprom en un psoc evalukit1?Es que estoy intentando implementar un sistema de adquisición de biopotenciales, en el cual los valores que salgan del amplificador guardarlos en la eeprom. Después de esto, poder leerlo y visualizarlo en labview...
> 
> ...




Yo tengo un problema similar , y es que debo almacenar 3000 muestras de una señal (Biopotencial) en un registro, pero la memoria del Psoc no da para tanto 
Por eso pienso utilizar una Eprom 2464 de 32 K.

Pero no se como utilizar el bloque I2CHw para almacenar las muestras en cascada sin sobreescribirlas. 

Aqui les envio el sistema de adquisicion basico con un ADCIN12 con una UART  ¡y funciona!

Y un ejemplo que encontre del I2CHW , pero no se como adaptarlo.

Espero que me puedan colaborar GRACIAS.


----------



## mlop (Jun 23, 2011)

Hola,

alguien sabe como puedo alimentar un PSoC con una señal AC? El sistema trata de una etapa de amplificación (con 3OPAMP) y digitalizarlo mediante ADCINVR y verlo por el LCD! He diseñado un oscilador Wien para la entrada del PSoC para hacer unas pruebas... La cuestión es que parece que el 3OPAMP no haga nada...
¿Quizás es que no estoy alimentandolo bien?

Agradecería si alguien me puede dar alguna idea!!!


Gracias


----------



## thunder2 (Ago 10, 2011)

Hola muchachos, he aprendido y tratar de no violar las normas de los foros, pero tengo una duda bien grande sobre un microcontrolador Cypress CY8C27443, que es lo unico que se puede conseguir en Colombia. Si es buen comienzo para aprender a manipular este micro.

Muchas gracias y perdón si genero molestias.


----------



## rednaxela (Ago 14, 2011)

thunder2 dijo:


> Hola muchachos, he aprendido y tratar de no violar las normas de los foros, pero tengo una duda bien grande sobre un microcontrolador Cypress CY8C27443, que es lo unico que se puede conseguir en Colombia. Si es buen comienzo para aprender a manipular este micro.
> 
> Muchas gracias y perdón si genero molestias.



Si claro, en realidad lo unico de cambia de un micro de la Famila PSoC1 ,  es la disponibilidad de mas recursos ... por lo pronto empieza rápido  aprender.

Saludos


----------



## ESCAMUSA (Ago 14, 2011)

rednaxela dijo:


> Bueno empecemos con algo, disculpen por la demora ops: , este capítulo es una introducción(mas abajo esta el cap1 completo), en el próximo ya haremos algo de verdad. Cualquier cosa escriben al foro. Tratare de explicar los mas despacio ya que cuando estaba aprendiendo algunas personas que saben no me quisieron ayudar :evil: o me explicaban a lo "feo" y ese no es el fín no quiero hacer eso  .



Hola rednaxela no entiendo porque en la introduccion cuando vas a escribir y leer sobre un puerto y pin especifico, lees en el puerto 0_0 y escribes en el puerto 1_0.. No tendrias que leer y escribir en el mismo puerto y pin??... Gracias si me sacas de esa duda..


----------



## rednaxela (Ago 14, 2011)

ESCAMUSA dijo:


> Hola rednaxela no entiendo porque en la introduccion cuando vas a escribir y leer sobre un puerto y pin especifico, lees en el puerto 0_0 y escribes en el puerto 1_0.. No tendrias que leer y escribir en el mismo puerto y pin??... Gracias si me sacas de esa duda..


Buen día,

Eso es un ejemplo ilustrativo de como leer y escribir en un puerto y pin específico, nunca he probado en un PSoC leer y escribir en el mismo pin a la vez, pero creo que en la práctica casi no va a ser común encontrar que un pin del integrado se utilice para escribir o leer sin tener que desconectarlo ... por ejemplo si un pin es para encender un led, entonces no creo que sea probable utilizar ese mismo pin para leerlo, porque en  ese momento se utiliza para escribir, no se si me estoy volviendo un rollo explicando esto .


Saludos


----------



## ESCAMUSA (Ago 15, 2011)

rednaxela dijo:


> Buen día,
> 
> Eso es un ejemplo ilustrativo de como leer y escribir en un puerto y pin específico, nunca he probado en un PSoC leer y escribir en el mismo pin a la vez, pero creo que en la práctica casi no va a ser común encontrar que un pin del integrado se utilice para escribir o leer sin tener que desconectarlo ... por ejemplo si un pin es para encender un led, entonces no creo que sea probable utilizar ese mismo pin para leerlo, porque en  ese momento se utiliza para escribir, no se si me estoy volviendo un rollo explicando esto .
> 
> ...



Necesito mandar un 1 a un puerto y pin especifico... Te explico el proyecto mejor... Tengo un sensor de temperatura, ahora quiero que cuando llegue a cierta temperatura, se me active un ventilador... Ya tengo montado el circuito y el programa para el sensor, y el ventilador que es un motorcito DC, ahora lo que necesito es escribir y leer de un puerto y pin, ya con eso me queda mas facil seguir...

Muchas gracias si me puedas colaborar o si alguien del foro pueda tambn..

Rednaxela, despues de mucho leer y hacer pruebas con el kit, ya pude leer y escribir en un puerto y pin especifico... Claro si se puede escribir en un puerto y leer ese mismo puerto con tu ejemplo y conocimiento lo hice... Tenia que poner el drive en strong y listo la salida se habilita al puerto y pin que uno quiera...

Saludos a todos los miembros del foro..

PD: Si alguien necesita el proyecto me avisan y lo subo al foro XD


----------



## thunder2 (Ago 16, 2011)

Hola Escamusa, ¿Cual es tu kit de desarrollo para PSoC?, me interesaria, ya que la información que he averiguado es insuficiente googleando. Ya que estos micros son de lo mejor, alternativa a los atmel o PIC.

Pues no se si sirva adaptar para programar al PSoC un adaptador USB-serial con el FT232RL


----------



## juanchi23 (Ago 17, 2011)

hola gente del foro..soy nuevo con esto de los psoc pero ahora q stube leyendo mas o menos les entiendo...mis dudas son como mandar un valor entero al lcd y por el puerto serial.. he realizado algunos ejemplos pero los comandos que usan en los datasheep te envian el dato pero convertido en hexadecimal y yo quiero enviar un valor entero...
void LCD_PrHexInt(INT iValue); comando para el uart...
void LCD_PrHexInt(INT iValue); comando para el lcd..
estoy realizando adqusicion de señales con el psoc...y quiero enviar el valor que obtengo del adc...osea un valor entero de 0 hasta 255...qu evndria a ser de 0 a 5v respectivamente...gracias x su ayuda...

disculpen la equivocacion
void UART_PutSHexInt(INT iData); comando para el uart
void LCD_PrHexInt(INT iValue); comando para el lcd..,,gracias por su comprension


----------



## Alekvasb (Ago 25, 2011)

Para enviar números en decimal por la LCD toca con el comando ITOA, sino lo muestra en hexa...

Es algo asì

itoa(temp,temperatura,10);

/*/ Creo recordar que temp  serìa la nueva variable donde guardará el número, temperatura para el caso es la variable que se va a convertir desde base hexa, y el 10 representa la base en que quiere quese muestre el número, luego toca mandar eso a la Lcd, pero no me acuedro del comando/*/

Toca buscar la sintaxis del comando, pero si los he sacado asì..

Perdòn, porque sè que la info es casi nada, pero es que se me perdiò todo lo que tenía hecho y volverlo a hacer.. como que no, pero voy a subir un manual de instrucciones en C para los Psoc...
hay si están todas las instrucciones que soportan....

/*/ Rednxela, ¿què serìa de este tema sin usted?/*/


----------



## jica_86 (Sep 1, 2011)

Hola a todos, es bueno encontrar un grupo que este trabajando con estos micros ya que es muy dificil encontrar información.

Estoy comenzando en el mundo de los Psoc y la verdad aunque sigo un poco confundido hay vamos logrando pequeños avances poco a poco, pero la duda que me trae acá es la siguiente:

La idea es hacer un control PID análogo con un Psoc, pero para esto necesitaría hacer un derivador y un integrador con los amplificadores operacionales y condensadores del Psoc, entonces mi pregunta es ¿puedo configurar a mi voluntad los elementos análogos que incluye el Psoc para hacer el derivador y el integrador? ó ¿tengo que limitarme a utilizar los modulos de usuario que vienen pre-establecidos en el Psoc Designer como el PGA, AMPINV, INSAMP, entre otros?.

De antemano les agradezco a todos la ayuda que me puedan brindar, y felicitaciones por este foro.


----------



## Alekvasb (Sep 2, 2011)

Redanxela colgó esta info:

https://www.forosdeelectronica.com/f24/psoc-1-diseno-pid-digital-matlab-58015/


En la pàgina de Cypress hay una nota de aplicación que explica còmo se diseña un PID con los Psoc, tra el còdigo para el Psoc y un programa adicional para cambiar los puntos de configuración....
http://www.psocdeveloper.com/docs/ap...er/an2208.html

Pero es medio enredado...


----------



## jica_86 (Sep 3, 2011)

Alekvasb dijo:


> Redanxela colgó esta info:
> 
> https://www.forosdeelectronica.com/f24/psoc-1-diseno-pid-digital-matlab-58015/
> 
> ...



Gracias por la información, la voy a estudiar para aprender mas sobre estos micros y posibles aplicaciones, y aunque es sobre un PID digital y yo tengo que realizar un PID analogo creo que me puede ayudar mucho para entender un poco mas sobre las configuraciones de los Psoc y llevar a cabo mi proyecto.... De nuevo muchas gracias por la ayuda....


----------



## zizou (Sep 6, 2011)

Muchisimas gracias rednaxela  por todas las molestias que te tomas, me interesam mucho estos micros y con lo que vas subiendo estoy aprendiendo mucho, muchas gracias de verdad !!


----------



## juanchi23 (Sep 9, 2011)

Alekvasb dijo:


> Para enviar números en decimal por la LCD toca con el comando ITOA, sino lo muestra en hexa...
> 
> Es algo asì
> 
> ...



gracias amigo por tu respuesta... y no te preocupes si me ayudo tu informacion. al final pude hacer lo q keria y para despejar la duda a otros aki dejo la "sintaxis" de los comandos que use
char *ltoa(char *buf, long i, int base);   //para convertir long a caracter
char *itoa(char *buf, int i, int base);     // para convertir entero a caracter

-i : Es el número entero que queremos convertir a char
-*buf : Puntero que guarda el dato “convertido”
-base : Generalmente trabajamos en base 10.
-“itoa” y “ltoa” devuelven un puntero a char- Se encuentran en la librería “stdlib.h” asi que hay que declarar la libreria al inicio de nuestro codigo

ejemplo  
...
#include <stdlib.h>
 void main(){
    int num = 14;
    char nuevo[3]= ””;   //puntero donde se va guardar el nuevo dato.
    LCD_1_Start();
while(1){
   itoa ( nuevo, num, 10 );
   LCD_1_Position(0,1);
   LCD_1_PrString(nuevo);
 }
}

ah y es algo diferente cuando  tata de un float veamos:

char *ftoa(float f, int *status);

/* -f : Es el número que queremos convertir a char
-*Status : Puntero que guarda el estado de la conversión.
-“ftoa” devuelven un puntero a char el de la conversion.tambien Se encuentran en la librería “stdlib.h” asi que hay que cargarla al inicio...

por ejemplo
int estado;
char *c = ftoa(12.67, &estado);
if (estado == 0)…             // si es cero, la conversión se realizo con éxito

o tambien puede ser
#include <stdlib.h>
void main(){
int estado = 0;
float num = 14.24;
char *nuevo;
LCD_1_Start();
while(1){
nuevo = ftoa( num, &estado );
LCD_1_Position(0,1);
LCD_1_PrString(nuevo);
}
}

la info la saque de un pdf que encontre x alli en internet asi que gracias Alexander Saenz U. que realizo el pdf......
me quede interesado cn estos micros asi que pienso seguir programandolos de manera que voy a seguir molestandolos con mis dudas...jaja...nos vemos.......


----------



## memowwe (Nov 2, 2011)

aqui presento la comunicacion serial del CY8C22345-24sxi,  es a 19200, al recibir  el caracter 'a' envia un  hello world, en la terminal, la configuracion es 8N1, a 19200 bps  espeor les sirva


----------



## hectorcar (Nov 7, 2011)

Hola, soy nuevo en esto de los PSOC y no tengo mucha idea.
Tengo que configurar un contador para hacer un retraso de 1 segundo cada vez que pulso un pulsador, si alguien me puede echar una mano....
No se cómo se configura el contador(si se conecta a alguna entrada o salida...)

Saludos


----------



## ESCAMUSA (Nov 17, 2011)

hectorcar dijo:


> Hola, soy nuevo en esto de los PSOC y no tengo mucha idea.
> Tengo que configurar un contador para hacer un retraso de 1 segundo cada vez que pulso un pulsador, si alguien me puede echar una mano....
> No se cómo se configura el contador(si se conecta a alguna entrada o salida...)
> 
> Saludos




Vas a hacer un contador???... Lo del pulsador es sencillo lo unico que tienes que hacer es en la pantalla de los pines de salida en el editor de dispositivos seleccionas el puerto que quieras activar y en drive le pones pull down.. Ya en el programa como tal escribes lo siguiente (asi lo hice yo pero pueden haber muchas formas): 

while (!(PRTXDR & 0x10)) ;	  		// Este presionado el pulsador en puerto 1.4

Siendo X el puerto que quieras.... 

0x00  Pin 0
0x02  Pin 1
0x04  pin 2
0x08  Pin3
0x10  Pin4
0x20  Pin5
0x40  Pin6
0x80  Pin 7

Ten en cuenta que el puerto y pin que escojas tiene que estar como Pull down... Nos cuentas como te fue..

Ahora si viene mi pregunta y mi duda....

Estoy haciendo un medidor de frecuencia, ya tengo el circuito hecho con un 555 y lo que necesito es mostrar en la pantalla del LCD la frecuencia con la que oscila el LED... Ya e intentado de varias formas y ninguna me da: 

* capturando la señal de salida del cto, a la entrada de la PGA, despues la mando a un ADCINC_1, y despues muestro en pantalla el valor que captura el ADC que vendria siendo la salida del cto.

* capturando la señal de salida del cto, a la entrada de un CMPRG (comparador),  despues la mando a un ADCINC_1, y despues muestro en pantalla el valor que captura el ADC que vendria siendo la salida del cto.

* capturando la señal de salida del cto, a la entrada de una PGA, desps mando esta señal a un CMPRG, desps al ADC y por ultimo muestro la variable en la que guardo el valor del ADC, osea la salida del cto...

Si alguien puede ayudarme se lo agradeceria demasiado...


----------



## juanchi23 (Nov 29, 2011)

hola amigos... stoy retomando de nuevo esto de los psoc xq trato de enfocar mi proyecto de tesis en estos micros ..queria saber si alguien tiene algun esquema de un grabador de psoc por usb ...cuando me inicie en esto implemente una tarjeta entrenadora de psoc en la cual incluia el grabador x puerto paralelo,,,pero ahora keria actualizarme un poco y realizarlo ya por puerto usb....si alguien me pudiera dar informacion ,,,staria muy agradecido....


----------



## memowwe (Dic 9, 2011)

juanchi23 dijo:


> hola amigos... stoy retomando de nuevo esto de los psoc xq trato de enfocar mi proyecto de tesis en estos micros ..queria saber si alguien tiene algun esquema de un grabador de psoc por usb ...cuando me inicie en esto implemente una tarjeta entrenadora de psoc en la cual incluia el grabador x puerto paralelo,,,pero ahora keria actualizarme un poco y realizarlo ya por puerto usb....si alguien me pudiera dar informacion ,,,staria muy agradecido....




lee, las  notas de aplicacion de  cypress sobre el  ISSP

AN2015
AN2026b


----------



## juanchi23 (Dic 11, 2011)

bueno ps amigo gracias por las sugerencias... voy a leer (traducir) para ver si puedo hacer lo del grabador por usb..


----------



## ottoman (Ene 22, 2012)

Hola rednaxela,

He visto que dominas sobre los micro-controladores Psoc, y me preguntaba si me podrías enseñar como utilizar el coversor analógico-digital. No quiero ser una molestia, no me gustaría. Llevo un tiempo intentando comprender como funciona, pero no lo consigo.Tambien tengo otra consulta, me he comprado un debugador (ICE-CUBE) e intentando debugar un programa (de demostracion con el conversor ACDC ) con él, y no funciona bien, en cambio cuando pongo el chip con el programa (demo) funciona perfectamente. Sabes que puede estar pasando? El ICE-CUBE debuga bien los combersores ACDC?¡ 

Muchas gracias por tu atención, y perdona por las molestias.


----------



## Karin CN (Ene 26, 2012)

rednaxela dijo:


> Buen día,
> 
> Eso es un ejemplo ilustrativo de como leer y escribir en un puerto y pin específico, nunca he probado en un PSoC leer y escribir en el mismo pin a la vez, pero creo que en la práctica casi no va a ser común encontrar que un pin del integrado se utilice para escribir o leer sin tener que desconectarlo ... por ejemplo si un pin es para encender un led, entonces no creo que sea probable utilizar ese mismo pin para leerlo, porque en  ese momento se utiliza para escribir, no se si me estoy volviendo un rollo explicando esto .
> 
> ...





Hola Rednaxela:
Me encantó el tutorial que hiciste del PSoC, y desde entonces que no paro de entrar a ver si cuelgas el resto de capítulos... Me quedé por el nº3 pero creo que no has colgado más. Son buenísimos y me han ayudado mucho. Pero , para cuándo el resto?... no irás a dejarlo?

Saludos:

Karin


----------



## rednaxela (Ene 26, 2012)

ottoman -Karin CN En este momento no dispongo de buen tiempo, te adjunte un PDF que es de la universidad cuando vi esa materia y hay varios ejercicios básicos incluyendo el ADC (ejercicio 4), hay que tener en cuenta que si quieres esos ejemplos están realizados sin cálculos, lo digo porque el ADC hay que hacer unos pequeños cálculos para ajustarle la frecuencia de muestreo ... pero por ahora lo importante es el concepto global de como funciona ese ADC, espero que te sirva. Y claro que quiero terminarlo pero esperar que tengo buen tiempo porque no solo es escribir es justificar lo que se escribe y comprobar realmente que funciona lo que se escribe.

Saludos.

Edit:

Esos ejercicios esta hechos en una versión antigua de PSoC Designer, no importa.


----------



## donko (Feb 8, 2012)

Quisiera saber si alguno de ustedes sabe las frecuencias maximas en las que se puede trabajar sin ningun problema los modulos de filtros pasa bandas y pasa bajas del PSoC Designer... El PSoc con el que trabajo es el CY8C29466 - 24PXI... 

Muchas Gracias a quien pueda colaborarme necesito esa info urgente


----------



## gastontieri (Feb 28, 2012)

Hola, a ver si alguien me puede ayudar por favor! como veran soy muy nuevo en esto! cuando compilo mi programa no me sale el archivo .HEX, no se que hacer! por favor ayuda... para un pobre principiante.. jaja. Sigo todos los pasos pero no se que pasa...


----------



## elan550 (Abr 12, 2012)

se que es un tema muy sencillo con el psoc, pero aun que no lo pensaba tuve un problema, cuando aumento la frecuencia del pwm y lo miro en el pin de salida con un osciloscopio, a frecuencias menores a 1MHz ya no tengo los pulsos que debería de  tener aun. Busque en la hojas de Cypress, pero todo indica que debería de funcionar bien, no se cual pueda ser el problema, si alguien lo sabe agradezco mucho su ayuda, saludos.

coloque mal, me refiero a frecuencias mayores no menores, es decir que al aumentar, ya no veo nada.


----------



## donko (May 7, 2012)

hola, alguien me puede colaborar con un ejemplo donde se utileze configuracion dinamica.
gracias


----------



## radeon1gb (May 30, 2012)

Hola que tal gente del foro, no se si alguien sepa como crear las interrupciones en C con el psoc, viene un articulo relacionado, la verdad soy nuevo en esto y no se como configurarlo, he utilizado un antirrebotes para checar el estado de un pin pero me queda un codigo realmente extenso y pienso que si utilizo interrupciones en para verificar el estado de un pin ya sea alto o bajo, pues lo necesito para crear un menu de 6 opciones en la LCD, de antemano gracias.


----------



## Mauro12 (Jun 14, 2012)

Hola a todos, q*ue* grandes aportes he visto, apenas estoy iniciando con psoc y es super interesante, ahora a leer mucho jejejje, radeon mira la pagina 2 allí hay ejemplos de interrupciones lo publico rednaxela, no te digo q*ue* te ayudo mas por q*ue* la verdad se muy poco, ojala no dejen morir este foro.


----------



## jaqued (Ago 31, 2012)

bueno ps queria compartir con ustedes un programita que hice con un amigo en la universidad...
se trata de una especie de osciloscopio, basado en el conversor analogico-digtal del psoc, con comunicacion serial para la pc y visualizar la grafica en visual basic... espero les sirva...

http://www.4shared.com/rar/8ciCiUCh/adcincvr_osciloscopio.html?

saludos...


----------



## elan550 (Sep 16, 2012)

Este es un proyecto que lo voy a estar colgando en estos días, lo estuve trabajando ase medio año, lo que hago es obtener dos señales sel bíceps y el tripes, las proceso con un algoritmo en C, y luego realizo el movimiento de un manipulador  con la señal muscular y todo esto en una placa verdaderamente muy pequeña, gracias a  PSoC, si de verdad alguien esta interesado en esto lo subo con toda la documentación y teoría, saludos a toda la gente de este excelente foro.
Ing. recientemente recibido F.E.A.​


----------



## cerezo117 (Oct 31, 2012)

elan550 dijo:


> Este es un proyecto que lo voy a estar colgando en estos días, lo estuve trabajando ase medio año, lo que hago es obtener dos señales sel bíceps y el tripes, las proceso con un algoritmo en C, y luego realizo el movimiento de un manipulador  con la señal muscular y todo esto en una placa verdaderamente muy pequeña, gracias a  PSoC, si de verdad alguien esta interesado en esto lo subo con toda la documentación y teoría, saludos a toda la gente de este excelente foro.
> Ing. recientemente recibido F.E.A.​



me agradaria mucho conocer mas hacerca de tu proyecto, estoy empezando a trabajar con los PSoC y me ayudaria mucho a comprender mas hacerca de estos... gracias


----------



## dpe (Mar 12, 2013)

A ver si podeís echarme una mano, estoy peleándome con un robot seguidor de línea negra y no soy capaz, lo arranco sobre fondo blanco y los motores se paran, hasta aquí bien, lo pongo sobre fondo negro y los motores se ponen en marcha como debe ser, pero cuando vuelve a estar sobre fondo blanco siempre hay un motor en marcha y el otro se para, el motor en marcha es el de la derecha o el de la izquierda, es aleatorio por cada encendido y apagado.

Los pines de entrada que les llega la señal de los opto acopladores los tengo configurados como High Z y los de salida para los motores como Strong, supongo que en ese aspecto está bien.

Os dejo el código


```
#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules


int copia;
//BYTE Port_2_Data_Shade;
    
void main(void)
{
 LED_1_Start();
 LED_2_Start();

//byte  con 1 en P2[3] y P2[1]: 00001010 = 0xA   
    //0x08 = 00001000 -> bit 3
    //0x02 = 00000010 -> bit 1
    
        copia = PRT2DR;
        copia &= 0x0A;    //selecciono bits 1 y 3 del puerto 2
        if(copia == 0x0A)    //los 2 sensores detectan la linea negra. Está dentro de la línea
        {
            //Port_2_Data_Shade |= 0x44;     // Set P2[6] y P2[2]
            //PRT2DR = Port_2_Data_Shade;
            //PRT0DR |= 0x05;
            LED_1_On();
            LED_2_On();
        }
            
        if(copia == 0x08)    //El sensor de la izquierda es el único que detecta un 1. El sensor derecho detecta 0 por que está sobre zona blanca. Debe girar a la izquierda
        {            
            //Port_2_Data_Shade |= 0x40;        //pone a 1 bit indicado
            //Port_2_Data_Shade &= 0xFB;        //pone a 0 el bit indicado
            //PRT2DR = Port_2_Data_Shade;
            //PRT0DR |= 0x04;
            //PRT0DR &= 0xFE;
            LED_1_On();
            LED_2_Off();
        }
        
        if(copia == 0x02)    //El sensor de la derecha detecta un 1 por que está sobre la linea negra. El izquierdo está sobre zona blanca. Debe girar a la derecha
        {            
            //Port_2_Data_Shade |= 0x04;     
            //Port_2_Data_Shade &= 0xBF;
            //PRT2DR = Port_2_Data_Shade;
            //PRT0DR |= 0x01;
            //PRT0DR &= 0xFB;
            LED_1_Off();
            LED_2_On();
        }
}
```


----------



## gasparlhc (Mar 24, 2013)

saku_anmorcar dijo:


> HOLA.
> 
> tengo una pregunta, estoy haciendo un pequeño proyecto en la U, pero necesito hacer comunicacion usb usando PSOC, quisiera hacerlo en el entorno de java, pero no encuentro mucha informacion sobre comunicacion usb usando PSOC, solo encuentro con PIC, si alguno me pudiera colaborar con alguna bibliografia sobre el tema, seria genial.



Hola buen dia dependiendo que forma de comunicacion USB quieras, ya sea por HID o por puerto virtual COM (RS232) que es el mas facil ya que el modulo USBUART crea automaticamente el descriptor CDC que necesita el dispostivo, esto quiere decir que te genera el archivo .INF, y pues Processing es Java y puede comunicarc mediante puerto serial  saludos.





dftrejos dijo:


> Yo tengo un problema similar , y es que debo almacenar 3000 muestras de una señal (Biopotencial) en un registro, pero la memoria del Psoc no da para tanto
> Por eso pienso utilizar una Eprom 2464 de 32 K.
> 
> Pero no se como utilizar el bloque I2CHw para almacenar las muestras en cascada sin sobreescribirlas.
> ...



Hola Buen dia, han intentado usar un datalogger?... ya que te permite grabar los datos adquiridos por el ADC sin necesidad de escribirlos en la flash o EEPROM del PSoC directamente a una SD Card ya con el formato FAT16 y creo que proximamente estare disponible en FAT32


----------



## XyesaiX (Abr 16, 2014)

Hola compañeros, he estado leyendo con detenimiento las publicaciones que se han estado realizando en este foro y me gustaría agradecerles, ya que gracias a sus aportaciones realizadas,(a lo largo de los años segun puedo ver) e logrado comprender el manejo y funcionamiento de esta tecnología


----------

