PSoC™ 4 Forum Discussions
Hi,
The documentation on SCB UART in multiprocessor mode is quite short and does not explain everything.
Is there code example for both the tx and rx sides of UART in this mode?
In the datasheet, there is this section explaining the use of the 9th bit.
How does this code work? The tx_data (assuming a uint16) is 0x31, and after ORing with the UART_UART_MP_MARK, how did this give the tx_data another bit at the end? Wouldn't this just set the lsb to 1 (in this case of tx_data, no change?) What's the actual data sent out by uart? I think it would still be 0b0 0011 0001 (0x031). But the receiver would recognize this as an address byte with its data being 0b0001 1000 (0x18).
Is my understanding correct? What's the right way to use UART in the multiprocessor mode?
Show LessMy TCPWM runs with a 1kHz clock to count milliseconds. I want to read the counter value from time to time and calculate the difference,
resulting in milliseconds timespan. So I have no capture signal. But the API has only functions to read the capture registers, as I see.?
Show LessAt random time very rare false proximity as well as button start detecting. Is there any suggestion regarding software point of view.
Kindly find attached code.
We can not do hardware changes as the production of board is done but suggestions are welcome for future.
Show LessI am trying to send the notification to the client from the psoc 4 ble how can i send the notication from psoc ble to the client. I am making use of the custom services and characteristics , how to select the uuid for the notification please help me
Show LessI have been using PsocOC 4 creator on my Windows 7 machine for the past 6 months and everything has been fine. I installed PsOC Creator 4 and now I can't step into debugger. I'm using CY8CKIT-042. It programs fine and there nothing wrong with the SWD pin setup. I get the message
Error: dbg.M0006: The start request failed. Encountered error (SetTarget timeout)
but no one seems to know what the message means or how to find out what wrong.
Can anyone help?
Show LessHello,
I am trying to write user configurations to MBR3 in the following procedure:
1. Read the SYSTEM_STATUS(0x8A) register
2. If SYSTEM_STATUS (bit0) is 0, write configuration parameter to MBR3 (according to Register TRM)
3. If it is 1, nothing is done.
However, after doing this process, the SYSTEM_STAUTS register will be 0, but the configuration will remain at the factory default.
I think that the SYSTEM_STATUS register is 1 at the time of shipment from the factory, and will be 0 when writing something.
Is this correct?
If not, please tell me when the SYSTEM_STATUS register will be 1.
Regards,
Shimamura
Show LessHi,
I´m tasked with replicating the UART-BLE example given by cypress
In building and programming the device, at the end it is stated to do the process again on another device, the problem is i did not find any ressources on how to do it on a non cypress device,like a nordic one or a STMicroelectronic which would have the ble functionnality since i have only one cypress developpement kit at the moment.
I am using PSoC 4.2
Is there any documentation i did not find? Or is it possible at least? Should i switch to more recent version of PSoC maybe?
Thanks in advance
Show LessI need to send/receive data over BLE between my PSoC device and a mobile phone. There are multiple different parameters to transfer and the data length is bigger than 512 bytes.
So, instead of creating different characteristics for each parameter, I wanted to write a packet communication protocol on one characteristic. In this packet communication protocol, the sender will send the data and also say which parameter this data belongs.
I added multiple fields in my characteristic like below:
I also created a struct just like this characteristic fields, which is also below:
#pragma pack(push, 1)
typedef struct{
uint8 start;
uint8 cmdId;
uint8 dataLen;
uint8 data[500];
uint8 checksum;
uint8 end;
}pck_t;
#pragma pack(pop)
pck_t packet;
Then when I need to write the attribute value, I will reference my struct by casting it to uint8 like below:
CommCharHandle.value.val = (uint8 *)&packet;
CommCharHandle.value.len = sizeof(pck_t);
err_code = CyBle_GattsWriteAttributeValue(&CommCharHandle, 0, &cyBle_connHandle, CYBLE_GATT_DB_LOCALLY_INITIATED);
Do you think this is a good method? I saw this method (multiple field usage) in the Cypress's BLE Bootloader Module. But I couldn't find how they used these fields in the source codes. There is not any structure definition. Maybe they just defined these fields to help the developer to understand the packet easily? I don't know.
And the real question is:
Does Cypress Bootloader always send 500 bytes of data in each packet? Because if the data length changes, the position of the checksum and end bytes will shift. How to handle them? I mean, if I receive a packet in which the data length is not exactly 500, I can not mass copy the received packet to my structure?
If the data length is always 500, why do they added the 'Data Length' byte in the fields? And how do they handle the last packet that does not actually necessarily contain 500 bytes of data? Do you append zeros to it?
Message was edited by: Abdullah Çınar
Show LessHello
I've been using the CY8CKIT-147 PSoC 4100PS Prototyping Kit and have been fighting an issue with the AMUX. I have a 4x1 AMUX which switches in 4 possible feedback resistor values. The voltages at the input are different from the output of the AMUX. If I remove the AMUX and hardwire one of the resistors in place, the design works fine. I have attached the design. Any advice would be appreciated.
thanks
Shawn
Show LessHello, I'm using the PSOC4 4200 to sequence the power rails for an FPGA. I would like to run the PSOC in Unregulated External Supply to I can only provide 5V to the device. The 5V is applied as soon as power is applied to the board.
Is this the correct configuration for the 28-SSOP CY8C4244PVI-442?
Thank you very much,
Joe
Show Less