PSoC™ 4 Forum Discussions
Hi, when I look at the can-bus protocol it is clear to me that there is a way to do this because only the transmitter with the highest priority get's the can bus to transmit something. So, I went looking on the internet who has done this before and I found similar examples that showed that you could even make a short can-bus without transceivers:
Example 1: Single-Wire CAN Bus Without Transceivers - YouTube
Because only the sender sending a dominant bit is of importance so, I tried to "OR" the 2 CAN-bus components inside the CY8C4247AZ...
But then I get the error: fit.M0049: The TX port on CAN block "\CAN:CanIP\" must be directly connected to an IO pin.
Then I tried to connect the Tx pins together from the 2 CAN bus controllers hoping that they would go in tri-state when in recessive mode because in example 2 the PIC can do this. But PSoC creator is protesting again with an error: "sbd.M0018: Multiple drivers on signal "Net........
I got also the same errors when I connect the Rx-channels together.
So, my guess is that the only way to solve this is sacrificing the 2 pins and use an external "OR" port or put both Tx pins in "open drain drives high" using a pull-down resistor for the recessive bits.
And also connecting the 2 receivers externally.
Am I correct?
The most elegant solution would be that the CAN-bus component would have a parameter like the PIC to put the Tx in tri-state when in recessive mode. And also making it able to connect the Rx pins together.
Show LessHi,I have added two emulated eeprom component fixed at address 0xF000 and 0xF800. In map file assigned addresses are showing correctly.
Read and write operation executing perfectly. But when i reprogram device eeprom data gets erased.
Please help me resolve this issue.
I am using cy8c4246axi controller.
Regards,
Santosh Pawar
Show LessHello, I’m using MPU 6050 for my project, my project is a Segway and I want to control the motor speed and direction using the Mpu6050, I’m struggling with the main c coding, could anyone help write the main c codes.
Show LessHello, I use a CY8C4025LQI-S411 for Capsense.
Current Consumption is typical 0.9mA, but as soon as I add an i2c bootloader the current consumption is aprox 3.8mA, 4 times higher, why that?
Does I need to stop the Bootloader after programm is uploading? How do that?
thank you very much
Show LessHi,
i was wandering if there are any features of the normal PSOC 4 Pioneer kit CY8CKIT-042 that are not implemented in the CY8CKIT-042-BLE as well.
I want to start using the PSOCs and guess the PSOC Creator 101 Tutorial are a nice starting point and it is using the CY8CKIT-042, but if possible i'd like to get the BLE kit instead, so i can start playing with BLE as well after finishing the 101 for the Pioneer kit. Or are there any lessons in this 101 that cannot be done with the CY8CKIT-042-BLE kit, because it has less I/O Pin,no LED or whatsoever.
Thank you very much:)
Show LessHi to everybody,
based on the CySmart library (C#) I am working on a GUI to transfer data between a peripheral sensor and the Cypress BLE Dongle. I used the CySmart examples available.
I like to get some informations from the sensor after the first connection as name, manufacturer, firmware version and so on.
Using the API CyReadMultipleCharacteristicResult I get two problems:
1. I am not shure how to use the API. I would like to have an example for this.
My code based on the CySmart example is:
/// GATT client callback class
/// </summary>
class GattClientCb : CyGattClientCallback
{
public CySmart.Common.Base.Compatibility.Net20.Action<CyReadMultipleCharacteristicResult, CyStatus> ReadMultipleChHandles { get; set; }
public override void OnReadMultipleCharacteristics(CyReadMultipleCharacteristicResult result, CyStatus status)
{
if (ReadMultipleChHandles != null)
ReadMultipleChHandles(result, status);
}
}
//Read sensor infos
private void Read_Sensor_Infos()
{
AutoResetEvent sync = new AutoResetEvent(false);
CyApiErr err = CyApiErr.OK;
//...
GATTClientEventCallback.ReadMultipleChHandles = (CyConnectResult, status) =>
{
//copy byte values to variables?
//...
sync.Set();
};
err = GattClient.ReadMultipleCharacteristic(new CyReadMultipleCharacteristicInfo
(COMPLETE_NAME, MANUFACTURER, HARDWARE, FIRMWARE, MODEL_NUMBER, LABEL));
}
2. The Callback ReadMultipleChHandles delivers only 16 bytes, not more.
The length seems to be truncated to 16. The handle LABEL in my list alone has got 64 bytes. I tried something like the following changing the delivered length, but this doesn't work. What is going wrong?
BLEManagerCallBack.GetDefaultDataLengthHandler = (result, status) =>
{
//write debug line...
}
BLEManager.GetDefaultDataLength();
Thanks for your help!
Show LessHi,
We have PSOC 4 (BLE 4.2) and we want to identify when a broadcast/advertising has been transmitted in real time for debug purposes.
Could you please refer me to the relevant event interrupt that occurs when this happens?
Thanks,
David
Show Lessusing the following configuration:
Environment:
PSoC Creator 4.2 (4.2.0.641)
OS Version: Microsoft Windows NT 10.0.16299.0
CLR Version: 4.0.30319.42000
When I am tiying to compile the project, by using the EZI2C in order to get the tune helper for a CSD component, i get the following failure:
fit.M0059: FFB and IO placement failed: Failed to fing a valid placement for \SCB:SCB\.
When i am trying to compile with another computer, the failure does not appears.
I do not find the différences between the 2 computers.
Has anyone any idea how to proceed?
Thans.
Thomas FERRY.
Show LessHi,
The PSoC 4XX7_BLE state that Max ESR allowed is 60 Ohm.
In my design I am using the lower spec models like CY8C4127LQI-BL473, which only runs at 24MHz, as opposed to the faster ones in the family that run at 48MHz.
But the spec (Document Number: 001-90479 Rev. *N) has one ESR number for both and it is the same number 60 Ohm.
I was wondering - In the context of cost reduction for my product - can I use a lower spec crystal with max 100 Ohm ESR for the CY8C4127LQI-BL473 ?
I am working in the Chinese consumer electronics market and the higher quality crystals are more expensive.
Please advise,
Shachar
Show LessHello,
I am trying to run a proximity sensor using CY8C4025LQI-S411 chip. I've created a CapSense component, configured it to use a proximity sensor with two sensors, shield and shield tank capacitor - all according to the hardware design on hand. However, I don't seem to get any response from the IsProximitySensorActive method. I can see the measurements change when I move my hand over the sensor, using the sensors' raw data directly; however, no matter how I change the configuration or program code, I can't get the CapSense working.
How do I know if I should change the CapSense component configuration, program code or hardware design? What do I have to do to determine the source of the problem?
Below is the source code of main() function that I'm currently using. Is there anything wrong with it?
CapSense_1_CSDSetupWidget(0);
CapSense_1_Start();
CapSense_1_InitializeAllBaselines();
for(;;)
{
CapSense_1_ProcessAllWidgets();
while (CapSense_1_IsBusy())
{
;
}
CapSense_1_UpdateAllBaselines();
if (CapSense_1_IsProximitySensorActive(0, 0))
{
Pin_1_Write(1);
}
else
{
Pin_1_Write(0);
}
CyDelay(5);
}
Show Less