PSoC™ 4 Forum Discussions
text.format{('custom.tabs.no.results')}
I am currently working with my first HID over GATT project. I am using the sample code for HID Keyboard as the starting point. However, I am unable to understand two things:
1. The 8 bytes of data I send out using CyBle_HidssSendNotification. What do they mean? Where can I find the specification?
2. How do I know when I can send another key? For example, if I want to send the string "Hello" what should I do? I tried sending via subsequent calls but only the first one arrive.
Thank you.
Show LessHi!
There is a project that requires communication between a battery and the inverter attached to the battery. The battery has an in built chip for communication. I am involved in designing the inverter. I have decided to use a PSoC-4M chip for inverter control.
The communication between the battery and inverter needs to happen over Modbus and/or CAN. Modbus is compulsary, CAN may or may not be included. The problem is that I have never used any of the two up till now. After searching, I found two PSoC-4M chips that have a CAN driver. But I can't find one with a Modbus driver. Neither can I find Modbus interface IC. Like we have SCB for I2C, UART, SPI etc. don't we have one for Modbus? Please help me find a way of implementing modbus support on PSoC-4M.
Thank you
Show LessHello,
I'm working on driving the dongle cypress CY5677 with a custom application which replace CySmart.
I have the 3 dlls cybledonglecommunicator.dll, cybledonglecommonbase.dll and cybleautobase.dll converted into .h files.
The 3 initializations are going well, I have no error on it.
I read the API_guide_reference but I'm still very confuse with the use of these files. Indeed, I want to set a BLE address to the dongle, so I want to use the following function :
int CVIFUNC CySmart_DongleCommunicator_API_ICyBleMgr_StartScan(
CySmart_DongleCommunicator_API_ICyBleMgr __instance,
CySmart_DongleCommunicator_API_CyBleScanSettings settings,
CySmart_DongleCommunicator_API_CyScanCallback cb,
CySmart_DongleCommunicator_API_CyApiErr * __returnValue,
CDotNetHandle * __exception);
Here is my issue, I don't know how to use this function, as example : the parameter " CySmart_DongleCommunicator_API_CyScanCallback cb " is only defined by " typedef struct __CySmart_DongleCommunicator_API_CyScanCallback * CySmart_DongleCommunicator_API_CyScanCallback; " in cybledonglecommunicator.h but how to initialize that type of variable ? I didn't find any create or get function.
Can you help me with this issue ?
Best regards,
Guillaume
Show LessHi all, I've been trying to get BLE notifications working correctly on the PROC, but I keep running into issues (perhaps they are related?)
1) I'm using an iOS app called LightBlue as my BLE client interface (I've used this for a year or two on dozens of BLE projects from other vendors, with no problems - so I think the app is solid). When I 'listen for notifications', and then perform an action which should send a notification from the PROC to the phone, I ALWAYS get 2 identical notifications. However, nowhere in my code am I sending the same notification twice (I've printf'd the hell outta my code and manually debugged).
Is there something in ProcessEvents, or elsewhere that I should be looking for potential causes?
2) I'm trying to send multiple notifications in a row, however, I get a crash which pushes the PROC into the exception handler infinite loop (I should be able to send 4-6 per connection interval, but at this point, I don't care about performance, I just don't want a crash). It crashes after the very first notification.
Here is the code which causes it (ble_Run gets called every iteration of the main.c loop, fakesync_data is just a uint8 pointer to a few hundred data points - static data, so it's not disappearing off the stack):
void ble_Run(void)
{
if (mIsSynching)
{
if(CyBle_GattGetBusStatus() == CYBLE_STACK_STATE_FREE && remainingPackets > 0)
{
ble_SendNotification(CYBLE_DATA_SYNC_DATA_CHAR_HANDLE, fakesync_data(), 20);
--remainingPackets;
}
if (remainingPackets <= 0) // Reset the test
{
mIsSynching = 0;
remainingPackets = 20;
}
}
CyBle_ProcessEvents();
}
void ble_SendNotification(CYBLE_GATT_DB_ATTR_HANDLE_T characteristic,
uint8* data, uint16 length)
{
CYBLE_GATTS_HANDLE_VALUE_NTF_T notification;
notification.value.val = data;
notification.value.len = length;
notification.attrHandle = characteristic;
if (CyBle_GattsNotification(cyBle_connHandle, ¬ification) != CYBLE_ERROR_OK)
{
PRINT("ERROR sending notification\r\n");
}
//CyBle_ProcessEvents();
}
Thanks!
And NOT the "A" which seems to crop up when I do a product search. Are they referring to the same thing?
Anyways, I'm trying to proto-type an application that uses this board. When I try to find the CY8CKIT-042-BLE kit in the "Create Project" dialog I can only find the CY8CKIT-042-BLE-A. When I select that "Target Kit" I end up with the incorrect processor. It shows the CYBL11573-56LQXI instead of the CY8C4247LQI and of course refuses to program it.
Cheers!!
Show LessHello everyone,
I am using cypress chip CYBL10162-56LQXI with another processor. Whenever I want to update my application (bootloadable), I get the image from the other processor and I am writing those bytes from the bootloader at address 0x7000 to 0x1FFF0 in the flash memory, using uint32 CySysFlashWriteRow(uint32 rowNum, const uint8 rowData[]). But this takes more than 2 minutes. Is there anyway we can make this thing work faster?
Thank you.
Show LessI seem to be getting some incorrect data back from the PSOC when sending the Get Flash Size Command. In my .cyacd file its clear that the first row of data has the a row ID of 0x50 (80), but after calling the Get Flash Size Command the PSoC returns a valid row rand of 0x51(81) to 0xFF.
Does anyone have any ideas about this? Why would the row numbers be different? I'm just reprogramming the same .cyacd file to test this.
I'm using the API from AN86526.
I'm looking into using Die Temperaturep [v1.0] block on a PSOC 4 CY8C4245PVS-482.
This is an extended temp PSOC 4 that I'm using for a high temp application. When I open the data sheet for this block I notice the first thing it says in the Features section is "Valid operating range from -40 degrees C to +85 degrees C".
I'm wondering if this documentation is incorrect or if the software/hardware limits the internal measuring range of the die temp measurement to max of +85 degrees C.
The data sheet of the the CY8C4245PVS-482 says the max operating temp of the junction for that micro is +105 degrees C.
I would expect the Die Temperature feature to measure up to that +105 degrees C temp and not saturate at +85 degrees C. I'm going to test this out as soon as my board arrives from our contract manufacturer.
I just want to check with Cypress that any temp readings above +85 degrees C will be in spec of the parts reading capabilities for that function of the PSOC.
I've attached a screen shot of the data sheet I'm referring to.
Thanks,
Kyle
Show LessUsing the CYBLE-214009-00 Module & PSoC Creator 3.3 CP3.
I added a CapSense P4-V3.0 object and configured two buttons and Auto-tune since it was the default (see Capsense.jpg).
I am using a SAR ADC and 7 analog inputs to measure voltage, temperature, etc.
Also have a BLE and SPI Master objects too.
I am able to compile the project. My question deals with the pin selections made by the PSoC Creator (see Design.jpg)
1. Cmod function is assigned to pin P3.5 (I read where the Cmod is internally connected to a capacitor inside the module and nothing else was needed.
2. The 2 x CapSense buttons are assigned to pins '33' and '34', which makes no sense since there are only 32 pins on the EZ-BLE module.
I have two unused pins that I hope can be used for the CapSense buttons. I also hope Pin P3.5 an be left along too.
I have looked at some example code and Cmod is generally assigned to pin '33' and the CapSense sliders/buttons are assigned to available pins less than #32.
Does anyone have an idea of what kind of 'pot hole' I might of put my foot into?
Show LessHi !
In my project I want to use button to different modes. Short press make for example print status and long press make software reset to device.
How to do this ? Any idea please.
Show Less