PSoC™ 4 Forum Discussions
I looked up some stuff with a search and it tells me to do __attribute__( ( section(".data") ) ) returnVariable Function ( variables) {... } and the compiler attempts to use this, but then gives me this warning. prj.M0121: Ignoring changed section attributes for .data
just wondering if there is easy way to fix this, or maybe someone can point me to the documentation on how to do this? this is on a PRoC4 for EZ BLE so the code size is small 128K code space in flash, so I want to force some functions into ram as I am running out of Flash space. I have 4K of free unused RAM to place some ROM/Flash functions into
Show LessHi,
Basically we want to send audio data from one CY8C4248 BLE unit to two CY8C4248 BLE receivers (stereo).
There are a lot of different configurations in BLE, Broadcaster, Observer, Central, Perpherial, ect., but which one is best suited for stream audio to two BLE receivers simultanously. Please note, that we do not have the option of using replacing our IC's CY8C4248, so I has to be a solution that can be implemented in these pSOC's.
Best regards
Jakob
Show LessI would like to have a contact closure pull a pin high for up to 10 minutes, then wait for the next closure event. seemed simple enough...Using a CY8CKIT-049 kit.
thanks! -Will
Show LessHi !
I want to measure voltages by ADC but because low input impedance need to add buffer. So I placed between MUX and ADC pins.
Now my project not build because Error: apr.M0003: Unable to find a solution for the analog routing.Project is attached.
What to do ?
Show LessI've found lots of answers in this Forum as I've climbed the PRoC learning curve -- thank you all!
I've found a curious interaction (PRoC CYBLE-022001 on a Pioneer Kit) to share:
If I call CySysPmHibernate() after WriteUserSFlashRow() within a Critical Section (initiated via CyEnterCriticalSection() ), Hibernate fails to hold for a suitable GPIO interrupt. Processing proceeds through CySysPmHibernate() call as though it wasn't there and the next line of code is executed. Hibernate never happens, and there is no PRoC reset.
The Hibernate call is adapted from Project #6 in the 100 Projects series. WriteUserSFlashRow() is unchanged from Project #29. AndyWarne mentions problems with clocks being restored completely by WriteUserSFlashRow() in this Forum Thread: "http://www.cypress.com/forum/proc-ble/sflash?source=search&keywords=sflash%20%26%20ble&cat=community". That does not appear to be what is happening here.
The solution was to end the Critical Section (with CyExitCriticalSection() ) before the WriteUserSFlashRow() call as shown (*** NO CLUE comment) in this code listing. Hibernate works properly with this code:
-----------------------------------------------
void EnterLowPowerMode(void)
{
CYBLE_BLESS_STATE_T blessState;
uint8 intrStatus;
uint32 data[USER_SFLASH_ROW_SIZE/4]; // User SFlash variables ************
uint32 dataIndex;
uint32 status;
//********************************************************************************
/* Configure BLESS in Deep-Sleep mode */
CyBle_EnterLPM(CYBLE_BLESS_DEEPSLEEP);
/* Prevent interrupts while entering system low power modes */
intrStatus = CyEnterCriticalSection();
/* Get the current state of BLESS block */
blessState = CyBle_GetBleSsState();
/* If BLESS is in Deep-Sleep mode or the XTAL oscillator is turning on,
* and it's not time to hibernate, then PRoC BLE can enter Deep-Sleep mode
* (1.3uA current consumption) */
if((blessState == CYBLE_BLESS_STATE_ECO_ON ||
blessState == CYBLE_BLESS_STATE_DEEPSLEEP) &&
hibernate_time < HIBE_TIME)
{
CySysPmDeepSleep();
}
else if((blessState == CYBLE_BLESS_STATE_ECO_ON ||
blessState == CYBLE_BLESS_STATE_DEEPSLEEP) &&
hibernate_time >= HIBE_TIME)
{
// Save SaveData in User SFlash non-volatile memory, must write 128B row
data[0] = SaveData;
SaveData++; // new value next time
// load balance of user SFlash write buffer
for(dataIndex = 1; dataIndex < (USER_SFLASH_ROW_SIZE/4); dataIndex++)
{
data[dataIndex] = SFLASH_STARTING_VALUE;
}
CyExitCriticalSection(intrStatus); // *** NO CLUE why SFlash write in crit sec prevents
// Hibernate from working!!?! Remove it.
// write row 1 (Bytes 128-131 User SFlash)
status = WriteUserSFlashRow(1, &data[0]);
// NOW Hibernate
CySysPmHibernate();
}
CyExitCriticalSection(intrStatus);
}
-----------------------------------------------
Anyone have an idea as to what is going on with the Critical Section interaction?
Thanks.
Jim
Show LessReference link:
I was trying to communicate via two ble without having to make connections via scan req and scan scan response packet.
For Example- on receiving advertisement on my central device. I will send a scan request packet then only my peripheral device which is advertising will send the scan response packet.
Could anyone point me in the direction of more information regarding the same.
Show LessThe CySmart 1.1 cannot recognize my BLE dongle of CY8CKIT-042-BLE neither as "supported" nor "unsupported" targets. I looked into the device manager of the windows7 and found the "KitProg USB-UART (COM18)" with an excalmatory mark, and "Windows cannot verify the digital signature of the driver needed for this device". I checked the KitProg User Guide (Doc.#001-96359 Rev.*G) page 11 "3.4 KitProg Driver Installation", which wrote "The USB drivers are part of the kit installer and should be appropriately installed for its correct operation". I downloaded the "CY8CKIT042BLEKITSetup_RevSD_10-23-15" from cypress and reinstalled it on my PC. But it seems not work. I want to ask: where can i download the KitProg Driver and make the CySmart recognize the BLE dongle?
Show LessHi everyone!
I'm able to dynamically update manufacturer specific data in the advertisement packet by waiting for CYBLE_BLESS_STATE_EVENT_CLOSE state, updating the data and calling CyBle_GapUpdateAdvData(). I do this only while the stack is in the CYBLE_STATE_ADVERTISING state.
However, what is the recommended method to update manufacturer specific data when the module is in the other states (BLE_APP_STATE_STOPPED, CYBLE_STATE_INITIALIZING, CYBLE_STATE_CONNECTED, CYBLE_STATE_DISCONNECTED)?
I want to update the manufacturer specific data in advance, so that the very first packet that is advertised will contain the correct content.
Thanks in advance,
Pieter
Show LessThe chips cannot be connected in ios 8& 9 using cysmart app (refer to below log) and suck on write request command? Do anyone please suggest how could i fix it?
This is failed log on ios 8,9 phone and cant be further processed. OTA just stuck at write request.
This is successful log on ios 11 phone
Show Less
Hi everyone,
We will produce many Ble modules
We do not want to change the mac ID every time.
We want to change the SFlash Update Tool software and update the mac IDs according to a certain algorithm.
We need open source software SFlash Update Tool.
Is there any open source software ?
Best Regards
Show Less