PSoC® 1. Cursos de los módulos

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
 
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.
 
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.:D

Saludos :)
 
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..
 

Adjuntos

  • introduccion_153.pdf
    443 KB · Visitas: 70
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 :eek:.


Saludos :D
 
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 :eek:.


Saludos :D

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
 
Última edición:
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
 
Última edición:
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
 
Última edición:
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?/*/
 
Última edición:
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.
 
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...

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.... (y)
 
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 !!:apreton:
 
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?/*/

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.......
 
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
 

Adjuntos

  • uart.rar
    198.4 KB · Visitas: 49
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
 
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...
 
Última edición:
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....
 
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
 
Atrás
Arriba