46075 Discussions
22886 Members
26609 Solved
Hello.
I want to solve my problem.
https://www.cypress.com/documentation/development-kitsboards/cy4500-ez-pd-protocol-analyzer
When I click EZ-PD Protocol Analyzer Utility Windows.exe on the above page, it is not running.
Is there a solution?
Show LessHi,
I use the SlaveFIFO mode (in 16bits mode) to communicate with my FPGA.
I use alos EP2 for OUT and EP6 for IN.
The 4 flags are also used.
I attached the waveforms managed by the FPGA. All seems OK this side.
In the example command is a "READ" in our protocol : 10 bytes are sent through EP2 : the 5 SLRD_N pulses after FLAGB (EP2EF) falling edge. This 5 bytes create one base adress and a size to read.
Then the FPGA changes the direction, and the SLWR_N is asserted each time a data is read. After the first SLWR_N assertion the FLAG_D (EF6EF) goes high. SO the SLWR_N is correctly seen by the FX2LP18.
The FDATA seems correct. The FIFOADD seems correct. At the end the PKEND_N is asserted one cycle. After the PKEND_N assertion, FLAGD goes high. So all seems correct.
But, doing a XferData in windows side does not return the EP6 expected values ....
len = 256;
success = myDevice.BulkInEndPt.XferData(ref buffer0, ref len); //check if transfer successfull
Could you check if there is an issue in the firmware perhaps ? I do not understand why the EP6 seems empty ...
I can share you all the firmware if needed ...
Here just the main function that activate the SLave Fifo mode of the Firmware is in the void Set_EP2_EP6_SlaveFIFO (void) function :
void Set_EP2_EP6_SlaveFIFO (void)
{
// To see transaction of bit AUTO
EP2FIFOCFG = 0x00;
SYNCDELAY;
// CLKsrc=int, IFCLK=48MHz, IFCLK Output Enable, Synchronous, Slave FIFO
//IFCONFIG = (bmIFCLKSRC | bm3048MHZ | bmIFCLKPOL | bmIFCLKOE | bmIFCFG1 | bmIFCFG0);
IFCONFIG = (bmIFCLKSRC | bmIFCLKOE | bmIFCFG1 | bmIFCFG0);
SYNCDELAY;
REVCTL = 0x00; // ENH_PKT=0, DYN_OUT=0 no need to prime the pump after bit AutoOut=1
SYNCDELAY;
// Update Firmware to map documentation !
PINFLAGSAB = 0x8C; // FLAGA = EP2FF, FLAGB = EP2EF
SYNCDELAY;
PINFLAGSCD = 0xAE; // FLAGC = EP6FF, FLAGD = EP6EF
SYNCDELAY;
PORTACFG = bmFLAGD; // Set FLAGD as alternate ftn on pin PA7
SYNCDELAY;
FIFOPINPOLAR = 0x00; // All active Low (PKTEND,SLOE,SLRD,SLWR,EF,FF)
SYNCDELAY;
fifo_reset();
fifo_config();
if (EZUSB_HIGHSPEED())
{ // FX2 enumerated at high speed
EP6AUTOINLENH = 0x04; // set AUTOIN commit length to 1024 bytes
SYNCDELAY; //
EP6AUTOINLENL = 0x00;
SYNCDELAY;
}
else
{ // FX2 enumerated at full speed OH MY GOD !!!!! DO WE REALY WANT TO USE IT IN FULL SPEED ???
EP6AUTOINLENH = 0x00; // set AUTOIN commit length to 64 bytes
SYNCDELAY;
EP6AUTOINLENL = 0x40;
SYNCDELAY;
}
}
void fifo_reset()
{
FIFORESET = 0x80; // activate NAK-ALL to avoid race conditions
SYNCDELAY; // see TRM section 15.14
FIFORESET = 0x02; // reset, FIFO 2
SYNCDELAY; //
FIFORESET = 0x04; // reset, FIFO 4
SYNCDELAY; //
FIFORESET = 0x06; // reset, FIFO 6
SYNCDELAY; //
FIFORESET = 0x08; // reset, FIFO 8
SYNCDELAY; //
FIFORESET = 0x00; // deactivate NAK-ALL
SYNCDELAY;
}
void fifo_config()
{
EP2FIFOCFG = 0x00; // allow core to see zero to one transition of auto out bit WORDWIDE = 1
SYNCDELAY;
EP2FIFOCFG = 0x11; // auto out mode, disable PKTEND zero length send, word ops
SYNCDELAY;
EP6FIFOCFG = 0x09; // auto in mode, disable PKTEND zero length send, word ops
SYNCDELAY;
}
Show Less
Hi,
as stated in the newest datasheet (002-14796 Rev. *M), the CYW43438 supports Bluetooth 5.1
Does that apply to all hardware revisions? (I haven't found any information on hardware revisions). Is a new firmware/driver neccessary to support the feature and will it be available for Linux?
Cheers
Show LessHi,
I am testing the AnyCloud TCP Server example project for CY8CPROTO-062-4343W. Inside the tcp_receive_msg_handler(cy_socket_t socket_handle, void *arg) function (I pasted it below), I found that there was about <1s delay when calling the API cy_socket_recv(). I toggled the user LED right before and after calling this API and I found that the delay of calling this function was quite significant. The tcp_receive_msg_handler is called whenever it receives some messages from the TCP client. I tried different message lengths from the client but the delay was quite consistent.
API cy_socket_recv() should just read the buffer and I am wondering why it took that long.
I am working on an application which requires the device (uses the same PSoC6 MCU and the same Wi-Fi/BT chip) to use Wi-Fi communication and act as a TCP server. So I used the AnyCloud TCP Server example project as the basic code structure. The device needs to read something from the client and then take some action as quickly as possible. The long delay of calling cy_socket_recv() is not acceptable for my application.
Any idea how to get rid of the delay? Maybe there is another API which is better in terms of response time?
Thank you.
From AnyCloud TCP Server example project:
static cy_rslt_t tcp_receive_msg_handler(cy_socket_t socket_handle, void *arg)
{
char message_buffer[MAX_TCP_RECV_BUFFER_SIZE];
cy_rslt_t result;
/* Variable to store number of bytes received from TCP client. */
uint32_t bytes_received = 0;
cyhal_gpio_toggle(CYBSP_USER_LED);
result = cy_socket_recv(socket_handle, message_buffer, MAX_TCP_RECV_BUFFER_SIZE,
CY_SOCKET_FLAGS_NONE, &bytes_received); // Long delay when calling this
cyhal_gpio_toggle(CYBSP_USER_LED);
if(result == CY_RSLT_SUCCESS)
{
/* Terminate the received string with '\0'. */
message_buffer[bytes_received] = '\0';
printf("\r\nAcknowledgement from TCP Client: %s\n", message_buffer);
/* Set the LED state based on the acknowledgement received from the TCP client. */
if(strcmp(message_buffer, "LED ON ACK") == 0)
{
led_state = CYBSP_LED_STATE_ON;
}
else
{
led_state = CYBSP_LED_STATE_OFF;
}
}
else
{
printf("Failed to receive acknowledgement from the TCP client. Error: 0x%08"PRIx32"\n",
(uint32_t)result);
if(result == CY_RSLT_MODULE_SECURE_SOCKETS_CLOSED)
{
/* Disconnect the socket. */
cy_socket_disconnect(socket_handle, 0);
}
}
printf("===============================================================\n");
printf("Press the user button to send LED ON/OFF command to the TCP client\n");
return result;
}
Hello,
I recently developed a trackpad in which I would now like to incorporate proximity sensing. Ideally, I want to develop the technology such that each diamond can determine proximity to produce a heat map of the proximal touches. Is this doable on a trackpad? According to the proximity sensing data sheet, I must use a button, sensor ganging, PCB trace, or Wire loop.
Thank you,
Show LessDear Yatheesh,
Sorry to bother you again.
After the last /RD signal problem was solved, no more underrun error.
But recently, all system combined test, I received error "No error : 18" from CY3014 uart port ,then, Xfer to FPGA failed.
Please kindly advise what is "No error : 18" ?
BR
Steven.
Show LessI am testing CX3.
In high speed image, image was broken.
Right side of image is broken.
(UVC , all registers and buffer size is same to default value. Source is made by "EZ USB Suit".
Please let me know how to fix this problem.
Show LessHi everyone,
I tried replicating "https://jimmyutterstrom.com/blog/2015/07/12/psoc-tutorial-adafruit-lsm303-magnetometer-compass-module/" onto PSoC5LP.
I got readings from the compass module, but it is always the same value and does not change while the PSoC plugged in.
When i remove and plug in the PSoC again, the heading value changes to what is expected but it does not update when i move the compass along. I feel like there's something wrong with the I2C communication, that the value is not being updated. Any help / guidance on how to solve this issue is greatly appreciated.
Show LessI've got some code I've been writing that I now want to convert over to be able to upgrade Over The Air.
The code has the BLE component set up as a Client and Server profile. The Client profile is configured with a Current Time Service, to enable syncing of the time in my code whenever it is accessed via a central device. In the Server profile, I've got various custom services along with all the normal ones (Device Information, Generic Attribute, Generic Access, etc).
The Server profile is also set up to stuff some data into the Scan Response Packet, to make it easier to get data across to the Client without requiring a connection. Connection is reserved for firmware updates (if I can get this to work!)
The code, as a non-OTA arrangement, compiles and works fine. Until I attempt to convert it over to an OTA Fixed Stack Bootloadable version. I've done this before, just not with the CTS functionality included, and its always worked. I've followed all the steps outlined in the OTA Guide (AN97060), but I'm still not getting the Bootloadable code to compile. Its throwing up a bunch of errors associated with the CTS functionality, even though I've made sure I've included the appropriate header files, etc.
The particular things its getting errors on are:
I can see that these are all defined in the Bootloader source code (in BLE_eventHandler.h & BLE_cts.c and BLE_cts.h), but for whatever reason, my Bootloadable code isn't seeing them.
Any ideas what I'm doing wrong??
Cheers,
Mike
Show LessHi All,
I'm using in PSOC5 - CY8C5868AXI-LP035.
I've tried to figured out how to software the pin XRES but without successful.
There any options how can to software the XRES so i can do reset to PSOC without external intervention?
Thanks for any help.
Show LessEsteemed Contributor II
Esteemed Contributor
Employee
Employee
Honored Contributor II
Honored Contributor
Honored Contributor
Employee