PSoC™ 4 Forum Discussions
text.format{('custom.tabs.no.results')}
In my project , I am intend to see the voltage value on shunt resistor by sending the data to the pc by usb connection. I am using hyperterminal to see it , but the value that hyperterminal shows is not equal to the voltage value on the shunt resistor. Can anyone tell me why this is happening ? How can I fix it ? All data values such as bps , data bit are suitable for uart .
Show LessHello!
I'm new in programming using PSoC. I need a help!
How I can connect my dallas temperature sensor ds18b20 using 1-wire bus to my psoc 4 cy8ckit-049 prototyping kit?
I am attempting to achieve sub 30uA quiescent current for a prototype using a Cypress PSoC 42xx CY8C4247LQI-BL483.
I am using the BLE Pioneer baseboard measuring across the BLEVDD/VDD link jumper. I have verified my meter reads zero with the PSoC module removed from the baseboard.
With this set up I am measuring 17mA in a while(1) loop, which seems reasonable for the processor when running. The problem is deep sleep. I'm measuring about 3mA after executing CySysPmDeepSleep(), this high current is significantly higher than stated in the datasheet (approx 1.7uA + peripherals in the datasheet)
I can wake up properly from deep sleep using a watchdog and this appears to work normally (i.e. processor current returns to 17mA previously measured)
I've tried turning off the analog and UART blocks. These being on seemed to increase current by ~2mA but I can't account for the rest of the power usage.
Any advice appreciated.
Show LessHi Cypress Community,
I am working with a Client/Central-Server/Peripheral set up using 2 pioneer kits where I have the server sending notifications to the Client.
Using the CySmart Tool and dongle and I can easily enable notifications on all the characteristics that I have set using the BLE circuit block.
When I try using the Client/Central pioneer kit to writeCharacterisitc values to ([01:00]) the various characteristics on the Server/Pheripheral pioneer kit, only the first one is enabled and the second returns an CYBLE_ERROR_INVALID_OPERATION. Even if I call the same function twice the first one is enabled and the second returns that error. It also doesn't even matter what handle I set.
I know it is not the Server/Peripheral side because the Dongle can enable notifications perfectly fine.
Any thoughts?
Thank you.
Show LessFrom looking at the 100 projects in 100 days examples I see a lot of "printf " statements in the code. for example Day002_Heart_Rate_Sensor
I'm using the pioneer kit and was wondering if the output from these printf appear anywhere? Can I see it in a debugger, can I get it on a console somewhere? It would be extremely useful to have this feature as interrupt driven embedded development can be difficult without logic analysers etc. This is especially important for new embedded developers which I'm guessing is a traget market segment of particular interest to Cypress.
Regards
Paul
Show LessHi cypress community,
I'm trying to re-negotiate connection parameters from peripheral just after connection. To do this i'm using CyBle_L2capLeConnectionParamUpdateRequest() function in CYBLE_EVT_GATT_CONNECT_IND event.
Function return an error ( CYBLE_ERROR_NO_CONNECTION).
To avoid this error i tried to put this function later in my process loop checking cyBle_state to be sure it's connected
...same error
I don't understand why it return a non connection error....
Regards
Show LessI have a product which uses PSoC 1 which uses firmware to dynamically select 2 of many different GPIO ports to be inputs to a quadrature decoder.
This does not appear to be possible on PSoC 4. I tried looking at how the generated CYfitter.C file changes for various different ports routed to the inputs and there is no rhyme or reason behind it at all. There is a list of registers which change in what appears to be a random fashion, many of which are undocumented. The counter block which houses the decoder does have input control registers which are documented but just states bits which control "one of 16 possible inputs" which is not very helpful. The documentation mentions UDB, HSIOM and other terms but fails to documents them fully.
Does all of this mean that dynamically changing routing of GPIOs to digital blocks is not possible in Creator?
Show LessI cant find a link to download PRoC SDK,the link always goes to home page. I am having the PRoC Remote Control kit,but am unbale to work on it without that SDK. Please some one give me a link to get that.
Show LessHello,
I'm currently working with the PSoC4 Pioneer Kit and trying to interface a GLCD with two KS0108 Controllern on it.
I connected the data-port (8 bit) to Port2, a control-port (including chip-select 1 and 2, RS and RW signals) to port P1.1-P1.4, the Enable-signal to P1.0 and the Reset-Signal to +5V (the board is currently running on 5V).
V0 is tied to VLCD with an 1K potentiometer for contrast adjustment. K and A are directly connected to GND and +5V.
I always measured 4,7V but it should still be inside the range of the display.
This is my code:
#define CHIP1 0x02
#define CHIP2 0x01
#define CHIP12 0x00
#define DESELCT 0x03
#define LOW 0x00
#define HIGH 0x01
void Toggle_EnableSignal()
{
ControlPortE_Write(LOW);
CyDelayUs(5);
ControlPort_Write(HIGH);
CyDelayUs(5);
}
void P6800_SendCommandPacket(uint8 chip, uint8 cmd)
{
ControlPort_Write((chip << 2));
DataPort_Write(cmd);
Toggle_EnableSignal();
}
void P6800_SendDataPacket(uint8 chip, uint8 data)
{
ControlPort_Write((chip << 2) | 0x02);
DataPort_Write(data);
Toggle_EnableSignal();
}
int main()
{
CyDelay(3000);
P6800_SendCommandPacket(CHIP1, 0x3E); // dsp off
CyDelay(100);
P6800_SendCommandPacket(CHIP1, 0xC0); // start line
CyDelay(100);
P6800_SendCommandPacket(CHIP1, 0x3F); // dsp on
CyDelay(100);
P6800_SendCommandPacket(CHIP1, 0x40); // col select
CyDelay(100);
P6800_SendCommandPacket(CHIP1, 0xB8); // page select
CyDelay(50);
P6800_SendDataPacket(CHIP1, 0xFE); // print the letter P
P6800_SendDataPacket(CHIP1, 0x22);
P6800_SendDataPacket(CHIP1, 0x22);
P6800_SendDataPacket(CHIP1, 0x22);
P6800_SendDataPacket(CHIP1, 0x1C);
P6800_SendDataPacket(CHIP1, 0x3E);
CyGlobalIntEnable; /* Enable global interrupts. */
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
for(;;)
{
/* Place your application code here. */
}
}
I measured the signals directly on the display-pins and everything seemed finde. But I only get a blue screen (backlight is on).
The delays originally have been shorter than this but I wanted to be on the save side.
I hope you can help me with my problem.
Best regards
Show LessHi guys,
I am looking into how to synchronize multiple clocks running on PSoC 4 BLE devices and one smartphone, where all device are connected to one smartphone which acts as the BLE master. The goal is to minimize phase differences, and from a user experience standpoint, the start time can be delayed by some not noticeable amount if necessary.
I am reaching out to the community because I am not sure what the best approach is to implement such a synchronization with BLE devices. Here are the alternatives I found:
1. CheepSync
To be found here (free PDF download): http://arxiv.org/abs/1501.06479
CheepSync is a closed source algorithm used to synchronize BLE devices, developed at the Indian Institute of Science by Sridhar et al. Has anyone of you heard of this one or has any experience of how well this would work?
In the paper, it is stated that a one-to-many setting can be synched, and it all looks like they solved the entire problem.
2. Berkeley Algorithm
The Berkeley Algorithm is probably a much simpler approach to the problem: The timestamps of the device clock are sent to the master (smartphone) device in a steady interval. With the assumption that the latency is equal to 1/2 of the roundtrip time, the timestamps are corrected to reflect the actual points in time when they occured.
The corrected timestamp values (including that of the phone) are averaged, and the positive or negative clock skew correction (timestamp – average) is calculated and sent to the devices. The device then applies the correction by gradually slowing or accelerating the clock.
The problem here is that I tried to implement it but got stuck at the part where the clock skew correction is applied by slowing or accelerating the clock in a gradual manner. So I can't actually say if this works. Can you?
3. A totally different approach
Can you think of one?
I'd be very grateful of any insights on how to synchronize BLE devices.
Thanks a lot in advance, I know, this forum is awesome
Julian
Show Less