PSoC™ 4 Forum Discussions
Hello. posc4 It is a student who became an introduction. Is it compatible with Addo En Lang posc 4 ble? I want to make RGB control with Bluetooth, using a simple LED, and create a mood that makes use of it. Do you have any material that is worthy of reference?
Show LessHi All,
I've inherited a project that was meant to implement the aforementioned BLE module. Assuming that the modules I have purchased are in fact loaded with the EZ Serial firmware (I can't scan the data matrix code unfortunately... but if it helps, I did just buy the modules last week, so I think they should have the firmware preloaded?)
In which case, I was wondering what minimal setup is necessary to get these running with an external micro trying to communicate via UART. The previous designer had created connections for:
UART_RX
UART_TX
UART_RTS
UART_CTS
RESET
LP_STATUS
PWM0
PWM1
CONNECTION (hardwired to an LED)
And that's about it. It seems with this setup, I am incapable of the "Smart MCU Host with 4 Wire UART and Full GPIO Connections". Seemingly I can do "Dumb Terminal Host with CYSPP and Simple GPIO State Indication". Admittedly, I am not terribly familiar with what CYSPP is (some sort of Cypress proprietary service/characteristic for data transfer?). In dumb mode can I still do things like create my own characteristics and services?
And finally, if I have my module powered on properly, should I be able to see it if I use a bluetooth sniffing program? Even if I haven't done any sort of programming or serial writing to the module? Thanks.
Show LessHi all,
I need to write a Rs485 bootloader application for PSOC 4 module and I would like to know if it is possible to do that without "customizing" anything. In fact seems that using "Bootloader" component with UDB UART in PSOC 4 leads to uncorrect bootloading but with SCB UART an RS485 communication seems to be not straightforward to implement (on UDB you have the useful "Hardware TX Enable" feature). I'm testing the application using "UART Bootloader Host Application" from AN68272 on CY8CKIT-042-BLE Pioneer with PSOC 4 BLE Module through USB and every bootloading attempt leads to " Bootload Failed with Error Code: 0x0000A". SCB bootloading with the same configuration is working well. Am I supposed to write my own bootloader or am I doing something wrong with the components, modules and softwares that I'm using?
I've attached the workspace.
Thank you!
Simone
Show LessHi,
I want to put a sine wave in a psoc pin input, then send the result to the pc. But i can only recieve the positive values. I already have the adc configure to signed values, is there any more configuration i should change?
Thank You
Show LessHi ,
I have following Cypress day020 example to test for uart to ble bridge by programming both peripheral project to kitProg usb dongle and the central project to Psoc ble module. It works great.
However I have another design using nordic and its application of nus service (uart to ble bridge) as central, so I expect that it can also work with kitProg too.
The result is not, they can not even connect.
A close look showed uart to ble is custom service and use custom uuid for the uart bridge service. I found from the creator ide i can modify cypress uart to ble peripheral uuid to match with nordic nus service custom uuid.
I have not quite started to make this hack yet, but wonder if this is the right way to modify as mentioned to allow different vendors uart to ble can connect and exchange uart data to ble as bridge?
Please advise.
Thanks,
Alex
Show LessCurrently there are three types of Bluetooth OTA in Cypress's examples.
- OTA with upgradable stack and profile using external memory.
- OTA with fixed stack and profile where both are contained in bootloader project, uses a custom linker script to get application to work.
- OTA with upgradable stack and separate profiles in both bootloader and application projects. Uses bluetooth code export mode for stack on bootloader, and profile on application.
For my project I don't need to update the bluetooth stack itself, but I do need the ability to change the profile with an update. This makes the fixed stack project example unsuitable as the profile isn't updatable with the application. I'd like to avoid using the triple-layered upgradable stack example as well since I'm adding the ability to verify signed updates to the bootloader and it's turning out to be a extra bit of pain to handle the handoff between things. (Not to mention figuring out how they even work, apparently the FAE's say there isn't any more documentation beyond the user-facing API datasheet...)
Ideally I'd love to create a single simple bootloader project using the BLE stack code export which can be imported into the BLE component in the bootloadable application. This means that the bootloader and application can have separate profiles (like the upgradable stack example) and I have a direct BLE component to develop against in the application unlike the fixed stack example.
Unfortunately, even though the projects compile, link and bootload just fine, the BLE component in the bootloadable application fails to initialize properly. I originally started by modifying the fixed stack example, but when it didn't work I changed to the upgradable stack example. The application BLE component worked until I removed the launcher project and converted the bootloader in the stack project to a normal type. There must be some interplay between the launcher/copier and the code export function that doesn't exist for a normal bootloader. I've already verified that I haven't run out of stack or heap space, and I've been struggling to figure out exactly where things have been failing since the debugger is disabled for bootloadable projects.
If anybody has some ideas I would really appreciate it!
Show LessHi everybody,
I can not program Analog coprocessor SSOP82 with mini Prog 3.
I have updated all the drivers and software, but PSOC Creator4.1 does not support this device.
Show LessHello,
I have been using all 3 WDTs in the design: WDT1 - general watch dog with reset at 2 sec, and also used as 1 sec interrupt timer(in certain cases); WDT0 - 2 sec interrupt, WDT2 as 32 s period timer. As I know there is no way to use CySysWdtWriteMatch for WDT2. My question is if I want to have to change the period of WDT2, lets say 32, 16 and 8 seconds, how can I change the period? Is it even possible and if now can someone explain why?
Thank you!
Show LessHi,
I define the UUID of my service in the BLE component and in the advertisement packet
the UUID type is : Incomplete list of 128-bit service class UUIDs(0x06).
What needs to change or add so the UDID type will be: Complete list of 128-bit service class UUIDs(0x07)??
Thanks
Show LessHello,
PSoC4 chip CY8C4247AZI-L485, I2C master transfer (write) to 24C04 EEPROM memory (ST chip M24C04WMN6).
I found that I2C Master component add random delay time between 5..50ms when execute I2CMasterSendStart() function.
This demo project has wired EEPROM memory but in end user application (without EEPROM memory) this behavior also exist.
This issue isn't linked with EEPROM.
Logic analyzer shows I2CMasterSendStart() transfer. Last bit before ACK is delayed (level low) in this case it takes 55ms.
This show, first transfer has delay (approx 50ms) , second transfer is correct, third transfer also has delay (59ms)
In my opinion this is SCB I2C fixed block issue. In end user application this issue delay all I2C transfers about 500ms.
Question:
How to eliminate delay in I2CMasterSendStart() transfer?
As a reference the same PSoC project I run at CY8C4245AXI-L483, all works correctly.
Best regards,
Zbigniew Kuczbanski
Attachment:
1. PSoC4L_I2CM_4247.cyprj.Archive01.zip - ready to use project for CY8C4247AZI-L485. It's fully repetitive.
2. PSoC4L_I2CM_4245.cyprj.Archive01.zip - the same source code for CY8C4245AXI-L483. All works correctly, only for reference purpose.
uint32_t I2CWriteN(uint8_t ui8I2CAddr, uint8_t ui8RegAddr, const uint8_t *ptrui8Data, uint32_t ui32Len, uint32_t ui32I2CTimeout_ms)
{
uint32_t ui32Result;
ui32Result=I2CM_I2CMasterSendStart(ui8I2CAddr,I2CM_I2C_WRITE_XFER_MODE,ui32I2CTimeout_ms);
ui32Result|=I2CM_I2CMasterWriteByte(ui8RegAddr,ui32I2CTimeout_ms);
while (ui32Len--) {
ui32Result|=I2CM_I2CMasterWriteByte(*ptrui8Data++,ui32I2CTimeout_ms);
}
ui32Result|=I2CM_I2CMasterSendStop(ui32I2CTimeout_ms);
return (ui32Result);
}
Show Less