PSoC™ 5, 3 & 1 Forum Discussions
I have two touchpads capacitors into my starter board (two round buttons).
Once is connected with port P37 and the another one to the port P30.
I would like to sample both and when i press the right one add a count into my program
and substract one into my program if I press the left button.
I tried with the CSD Wizzar but I still don't knowing how to configure them.
I underline, I want to use the buttons. not the slider.
Many thanks.
Show LessHello everybody in this forum, my name is Raúl from Spain.
I'm trying to comunicate two cyrf7936 (ARTAFLEX AW24MHL-SM). One of them is configured as a sender and the other as a receiver.
My general situation is:
The comunication modules are commanded by several PIC via SPI comunication. IRQ events are monitored using a general purpose pin on the PIC. The main code polls this pin in a loop and when asserted I try to get the received message.
The sender sends messages every 30 seconds, paquets have SOP, len field, 16 bytes of data, CRC and I use the transaction mode. The sender transmits each packet and waits for the ACK.
Receiver is listening in the same channel the senser uses. Nowadays I only detect the IRQ and read the RX_IRQ_STATUS register.
I've seen the following:
The sender starts executing and every 30 sec. it sends a packet. It prints debugg information via RS232 to the PC. It shows the SOP and the PREAMBLE for each packet.
Receiver starts execution listening in the same channel but doesn't see packets, several minutes later, starts to receive packets and It shows the SOP and the PREAMBLE of the packets sent in the past by the transmiter. The transmitter sends packets every 30sec.
I'm confused about it, Can cyrf7936 memorize several received SOP in a buffer??? it's very strange.
Can anybody help me??
Thank you very much in advance¡¡ 😉
Show LessAfter I switched from HiTech to ImageCraft compiler I found functional errors in the program, which previously worked fine. A closer investigation showed, that a line:
memset (displayLine, ' ', DISPLAY_SIZE);
had no effect. However if, before the call to memset, I load the MVW_PP register with displayLine's page number, the code works as expected.
Is it a bug in the memset function (caused by overlooking the fact that the new compiler handles paging differently), or should I just change something in the code or settings ?
TIA for help.
Show Lesshi i am trying to use timers .
i have seen 1 example project in cypress. i've used that code, but i am unable to get the output. LED is continuously glowing.
please help me.
here is the code
//-------------------------------------------------------------------
// Include Files
//-------------------------------------------------------------------
#include
<m8c.h> // part specific constants and macros
#include
//-------------------------------------------------------------------
// C Interrupt Handlers
//-------------------------------------------------------------------
"PSoCAPI.h" // PSoC API definitions for all User Modules#pragma
interrupt_handler Timer8_1_ISR_C//-----------------------------------------------------------------------------
// FUNCTION NAME: Main
//
// DESCRIPTION:
// Main function. Performs system initialization and loops infinitely.
//
//-----------------------------------------------------------------------------
//
// ARGUMENTS: None
// RETURNS: None.
// SIDE EFFECTS: None.
//
// THEORY of OPERATION or PROCEDURE:
// 1) Start the user modules
// 2) Loop Infinitely
//
//-----------------------------------------------------------------------------
//
void
{
mainc() //Enable the Global Interrupt
M8C_EnableGInt;
//Enable the Timer interrupt and Start the UM
Timer8_1_EnableInt();
Timer8_1_Start();
//infinte loop. Processing done only at Timer_ISR.
}
while (1);//-----------------------------------------------------------------------------
// FUNCTION NAME: Timer8_1_ISR_C
//
// DESCRIPTION:
// Interrupt Service routine of Timer8_1 usermodule written in C.
// The _Timer8_1_ISR subroutine In the Timer8_1INT.asm file,
// redirects the flow to this subroutine.
//-----------------------------------------------------------------------------
//
// ARGUMENTS: None
// RETURNS: None.
// SIDE EFFECTS: None.
//
// THEORY of OPERATION or PROCEDURE:
// A Terminal Count interrupt occurs at an interval of 0.5 secs.
// The state of pin P2[0] is determined and reversed.
//
//
void
{
Timer8_1_ISR_C() //Read Port2 and XOR it with 0x01 to change the status from On to Off and vice-versa.
PRT2DR ^= 0x01;
}
Show LessThanks about the Enoa parameter. The datasheets states:
ENOA Noise at 1 kHz (Power = Medium, Opamp Bias = High) – 100 – nV/rt-Hz
But anyway, I introduce a sinusoid into a PGA follower (Gain=1) and apart I monitories the input and output in the First column and I get the image 1, obtaining the expected.
Input=Output (Port 0_3)
(Vsin input= 500Hz 1Vpp and 1Voffset)
When I did the same in the second row I got a noisy sinusoid output. The output is equal to the input but the noise is much higher than the specifications told in the datasheet, so I still thinking my part is damaged.
Image 3 shows the add noise is around 800KHz and 1MHz.
What do you think about it?
Is damaged my part?
By the way, I have a RC filter in my Port 0_5 board outout.
Could it produce the noise?
Show LessI'm reading Application Note of “ PSoC Fundamentals: Clocks September 24, 2007 Document No. 001-32200- Rev. ** - 1 - AN32200 “
(Link: http://www.cypress.com/?rID=2773 )
At the page 3 (end of “ Variable Clock 3 (VC3) section) it is written that “When not used for any purpose, VC3 must be set so that it has the lowest possible frequency. This uses less power in the PSoC. The same principle is also true of VC1 and VC2.”
1-) As far as I understand If we don’t use VC3 in our system (firmware) it must be set to the lowest freq as it is possible. Such as for VC3, source will be VC2 and VC3 divider will be 256?
2-) Just for my curiosity: There isn't “N/A source input “ selection for VC3 (and also for others) in the Global Resource Screen of PsoC Designer Program. Is it possible to select no-input (I mean disabling) by modifing OSC_CR2 , OSC_CR3 or OSC_CR4 registers (also for other variable clocks: VC1 and VC2) without getting compiler or hardware incompatiblity error? Or for every cases (even if we need or don’t need VC1, VC2 or VC3), do these source inputs have to be defined for Variable Clocks ?
Kind Regards
Show LessThe EEPROM component in PSoC Creator allows only to write one row (16 bytes) at a time to the EEPROM. There is no provision to write less than 16 bytes to specific EEPROM locations. For partial writes, we can read the complete EEPROM row into a RAM array, modify the desired locations and write the array back to the RAM.
Attached is an example project that shows how to perform a partial write to the EEPROM.
Show LessI think that the instantiation example in the component autor guide (page 43) is false :
cy_psoc3_count7 Counter7Name #(.cy_period(7'b1111111), .cy_route_ld(`FALSE),
.cy_route_en(`FALSE)) (...
I think that the correct syntax is :
cy_psoc3_count7 #(.cy_period(7'b1111111), .cy_route_ld(`FALSE),
.cy_route_en(`FALSE)) Counter7Name (...
Anyway (!!!) my simple 7 bit counter don't works. Can you explain me why ?
Regards
Jean-Louis
//`#start header` -- edit after this line, do not edit this line
// ========================================
//
// Copyright YOUR COMPANY, THE YEAR
// All Rights Reserved
// UNPUBLISHED, LICENSED SOFTWARE.
//
// CONFIDENTIAL AND PROPRIETARY INFORMATION
// WHICH IS THE PROPERTY OF your company.
//
// ========================================
`include "cypress.v"
//`#end` -- edit above this line, do not edit this line
// Generated on 05/19/2010 at 10:18
// Component: count7_simple
module count7_simple (
count7,
clk
);
output [6:0] count7;
input clk;
//`#start body` -- edit after this line, do not edit this line
cy_psoc3_count7 #(.cy_period(100),.cy_route_ld(1),.cy_route_en(1))
count7_simple(
/* input */ .clock(clk),
/* input */ .reset(1'b0),
/* input */ .load(1'b0),
/* input */ .enable(1'b1),
/* output [06:00] */ .count(count7),
/* output */ .tc()
);
//`#end` -- edit above this line, do not edit this line
endmodule
//`#start footer` -- edit after this line, do not edit this line
//`#end` -- edit above this line, do not edit this line
Hello,
Can someone help with setup of EZMr or some other program for use with Ubuntu Linux. I am trying to change the VID/PID of the device to allow multiple devices to be connected. I looked at the HEXPAD examples, but I'm not very familiar with C.
The device before udev loads the driver is VID/PID 16c0:6000. After loading it is VID/PID 16c0:2972. I really only need to change it by one.
Thanks in advance for any help,
Dan
Show LessHi,
After installing Creator Beta 4.1 I had problems with aquiring the silicon. The miniprog3 was recognized but not able to connect to the silicon. I had no problems with Creator 4.0.
After some (hot) plugging the miniprog3 didn't enumerate and all leds remain off. I tied several pc's but all the same.
I can't find a reason why the miniprog died, the miniprog was connected to a 5V powered project via the ribbon cable. I only (un)plugged the usb cable several times.
Is there anything I can do to bring back some life in the miniprog. I need it urgent and I only have one dead miniprog (stupid).
Thanks, Rolf
Show Less