PSoC™ 6 Forum Discussions
Xin chào cộng đồng, tôi có một dự án đọc cảm biến BME280 + ML8511 trên PSoC 6 BLE Gửi dữ liệu được đọc bởi cảm biến qua BLE
hiển thị trên MIT APP Nhà phát minh
Nhưng tôi đang gặp một vấn đề: trên ứng dụng MIT, khi nhận dữ liệu Float đồng
thời, tôi không thể phân biệt giữa tia cực tím, nhiệt độ,...
Tôi đã tìm thấy một giải pháp có thể chèn dấu ";" vào chuỗi dữ liệu đã gửi và sẽ được tách ra trên ứng dụng MIT!
Tôi đã thử nó và vấn đề là PSoC 6 BLE không thể gửi chuỗi dữ liệu đó!
Tôi không biết những gì tôi đang làm có đúng không? Và lỗi xảy ra ở đâu?
Hy vọng mọi người có thể xem qua dự án và giúp tôi sửa lỗi!
Cám ơn
Hi,
I'm taking my first steps with the CY8CPROTO-063-BLE platform and wanted to create my own boot code outside the ModusToolbox ecosystem. After programming the board, I try to debug this small boot code. However, the CM0+ core seems to be stuck on what I believe is the secure bootloader/ROM boot. I am running from FLASH. I have a couple of questions:
-
Is there any possibility to disable the ROM boot on this platform?
-
If disabling the ROM boot is not an option, what factors should I consider while developing my application outside the ModusToolbox environment?
Thanks
Show LessI’m trying to add a USB Virtual Com port to my Free RTOS application using the emUSB library.
I added the mtb-example-psoc6-usb-cdc-echo example code modified to run in free RTOS into my existing application with multiple tasks running but the application crashes when I plug the USB cable in. - See attached screenshot
Prior to plugging in the cable all runs fine.
So I tried just the echo example on its own modified to run in Free RTOS on its own, which sort of works as expected other than in Debug I got a strange error:
Error: FreeRTOS top used priority is unreasonably big, not proceeding: 268471517
Warn : GDB request targeting non-existent thread (0x1)
Warn : GDB request targeting non-existent thread (0x1)
If I run without the debugger it runs fine.
Not sure if the issues are related or not, but either way I'm out of ideas of what the issue is. I've tried removing tasks, increasing task stack but no luck.
Any advice would be appreciated.
Regards
Dave
Show LessIs there a way to optimize the size of the application by removing any unused libraries or other ways? The -Os option has already been tried; it helps but not in any significant way. If there are other ways to manually remove any unused libraries/source code? We are willing to try anything.
Greg
Show LessDear PSoC 6 BLE experts,
I have a customer who is using PSoC 6 BLE with PSoC Creator
and has been trying to shorten BLE communiation interval.
Although I suggested to change the values in the BLE component's configuration
GATT Settings > peripheral Preferred Connection Parameters,
such as Minimum Connection Interval, Maximum Connection Interval,
and Connection Supervision Timeout Multiplier to shorter value(s)
The interval is still around 100 ms, where the customer wants to achieve 15ms.
So my question(s) are
(1) How can we shorten the connection interval of PSoC 6 BLE in PSoC Creator?
(Or can we do it?)
(2) What is the practical shortest connection inverval for the BLE module of PSoC 6?
Best Regards,
26-Sep-2023
Motoo Tanaka
Show Less
Which are the least expensive uC's with 16-bit or better ADC, I2S out, and FPU?
(I'm not asking about PSoC6, but this forum required me to pick something)
Show LessI have an application on a PSOC63 with FreeRTOS running BLE in dual-core mode. It offload data quickly through bursts of large notifications (512 ATT MTU size, 495 byte payload). The project follows the examples of "CE223508_PSoC6_BLE_MultiSlave_RTOS" for setting up a BLE Task capable of handling multiple slaves (BLE connections), and the offload/notification parameters of "CE222046_Throughput_Measurement" for maximum throughput.
All notifications are sent from this method, where the connection status, busy status and notification enable status are checked before calling the API:
uint8_t i;
/* Send notification top all the connected device */
for(i = 0; i < CY_BLE_CONN_COUNT; i++)
{
/* Confirm that the BLE stack is ready */
if (Cy_BLE_GATT_GetBusyStatus(appConnHandle[i].attId) == CY_BLE_STACK_STATE_FREE)
{
/* Check if the client/slave is both connected and subscribed to this notification */
if((Cy_BLE_GetConnectionState(appConnHandle[i]) == CY_BLE_CONN_STATE_CONNECTED )&&
Cy_BLE_GATTS_IsNotificationEnabled(&appConnHandle[i], handleValuePair.attrHandle))
{
/* Send BLE notification */
cy_stc_ble_gatts_handle_value_ntf_t param =
{
/* Fill all fields of the Write request structure ... */
.connHandle = appConnHandle[i],
.handleValPair = handleValuePair,
};
bleApiResult = Cy_BLE_GATTS_Notification(¶m);
/* Check if the operation has been successful */
if(bleApiResult == CY_BLE_SUCCESS)
{
DebugPrintf("Info : BLE - Sent notification. \r\n");
}
else
{
DebugPrintf("Failure! : BLE - Sending notification. Error Code: %d \r\n", bleApiResult);
}
}
}
else
{
/* Stack is busy, the current notification data will be dropped */
Task_DebugPrintf("Error : BLE - Stack busy to send notification", 0u);
}
}
When the "Maximum number of BLE connections" is set to 1 in the BLE component, the application runs with no issue. However, if the "Maximum number of BLE connections" is set to 2, I begin to receive "CY_BLE_ERROR_MEMORY_ALLOCATION_FAILED" error responses from the Cy_BLE_GATTS_Notification (or Cy_BLE_GATTS_SendNotification) methods when sending notifications rapidly, which eventually results in a CM4 Fault. A second BLE device does not need to connect to cause this issue, just allowing a second seems to cause it. At no time during the calling sending of notification do I see the STACK_BUSY event. I call Cy_BLE_ProcessEvents() before and after the send notification.
I've tried debugging this from every angle, changing the size of the BLE message payloads, changing the allotted RAM of CM0 and CM4, but cannot get the issue resolved.
Show LessHi everybody,
I'm working on project with a PSoC 6, using MTB 3.1, Eclipse as IDE and when initiating "Building Application" the "Auto-discovery in progress..." takes forever and makes a fast working impossible. How can I make this faster, like the fast incremental builds one is used form other build systems?
BR
Bernhard
Show Less
Hello.
I am using CY8C6247.
I ask about DFU.
I'm trying DFU [App1 + App2] using Bootloader(USB_CDC).
The configuration of the address to be used is as follows.
- App0 (CM0+ : bootloader) -> 0x10000000 ~ 0x1000FFFF
- App1(CM0+) -> 0x10020000 ~ 0x1003FFFF
- App2(CM4) -> 0x10040000 ~ 0x100FEFFF
If I set the start address of App1 to 0x10000000, App1/2 works well.
Bootloader works well in IAR debug.
Question:
- App1 + App2 merge method
- Check if the IAR icf file is correct
I attach Icf file(APP 0/1/2).
I would like some help on this part.
thanks.
Show LessDear Receiver,
Could you please help me to check the schematic in the attached file ?!
It's a minimum system demo kit.
Do you have any comment about this kit ?!
Thank you so much.
Show Less