PSoC™ 4 Forum Discussions
BACKGROUND:
I'm working on a new design and considering using the PSoC EZ-BLE Creator Module. I have it working great on the Pioneer Kit but I need to qualify the method of programming for production before committing to my customer.
I assumed I could use the CYBLE-014008-00 EZ-BLE Creator Module: ( https://www.cypress.com/file/190771/download )
and program them before installation using the EZ-BLE™ MODULE PROGRAMMING KIT https://www.cypress.com/documentation/development-kitsboards/cyble-014008-prog-ez-ble-module-programming-kit
PROBLEM:
When trying to buy the programming kit, I received the error at checkout: "CYBLE-014008-PROG EZ-BLE™ MODULE PROGRAMMING KIT is pruned and not available for purchase."
Is this a deprecated solution? Is there a replacement? Should I be looking at a different module/programmer series/version/etc.?
This is my first PSoC project so I'm looking for the right module / programming solution for new designs.
Thanks!
Frank Jackson
Show LessHallo community,
Im sending data via indication protocol. This is a for loop which it says how many times has to update the server and afterwards sents the indication update. I want to send the next package of info after the respone of the cliet arrived. I found the event from the cy_ble: CY_BLE_EVT_GATTS_HANDLE_VALUE_CNF.
This particully Event is for:
This event indicates that an Indication Response is received from the GATT Client.
The event parameter is a pointer to a structure of type cy_stc_ble_conn_handle_t.
When I receive the conn_handle_t structure, this structure does not manage a attHandle. Thus, I can not re start to sending the next package to the client.
How can I manage this?
Resume: I want to send different pakages using a for loop (not necesary if you tell me) via indications
Regards,
David
Show LessI have 2 hardware buttons that are connect to P1.2 and P1.3. I need to generate interrupts on each of this button press. I have configured the Pin component and the ISR as below -
My questions are -
1) DO I need to connect the ISR component here?
2) There are other components connected on this port, so I don't want other components to be affected in any way - when I enable / clear interrupts for these 2 hardware buttons.
3) I tried following this code -
CY_ISR(INT_ISR_Button)
{
/* Set the flag */
isrFlag = 1u;
/* Check which pin caused interrupt by reading interrupt status register */
if(Pin_Button_INTSTAT & (0x01u << Pin_Button_SHIFT))
{
/* Triggered by Pin_Button_0 */
ledState = LED_OFF;
}
else
{
/* Triggered by Pin_Button_1 */
ledState = LED_ON; }
/* Clear interrupt */
Pin_Button_ClearInterrupt();
}
}
Found this code in this document - https://www.cypress.com/file/127101/download Page 49-50
Following this - I am unable to generate interrupts on the said pins. What am I missing here?
Show LessI'm using a CY8C4247AZI-M485 and a LCD2004A with a I2c io expander based on the PCF8574T(address=0x27) and can't get the characters to display. I'm using the I2C LCD example found in the PSoC Creator program.
Here are some of the settings:
Attached is a copy of the project.
Paul Wilson
Show LessHi ,
I.MX通过IIC方式给4024升级程序,抓出的log如附件,写进去几行后会报4004,每次测试写进去的行数都不固定,请协助解答。
BLE HID Keyboard Exampleをベースにkey volume制御を追加(複合デバイス)したいです。
Configure BLE内でどのように追加したらいいでしょうか?
Profiles内の構成があまりよくわかっていません。
Report mapを追加してvolumeのReportを追加するだけでいいのでしょうか?
Show LessI am using the PSoC 4700 to use 3 square sensors to detect metal crossing them in separate locations. From AN219207 it explains a square shape is best for sensing horizontal detection. Its not clear to me which widget type is best utilized for this approach. Do I use proximity or do i used button Widget Type?
Thanks
Scott
Show LessHi Cypress
Attach file is measure Tx power output result about 1dBm in Cypress EVB(CY8C4248LQI-BL583) , But CY8C4248LQI-BL553 datasheet mention Tx power is 3dBm +-1dBm , Can you tell us how to debug the issue, Thank !!
Show LessI have been trying to save some basic start up values (2) in a product I am developing. There seems to be no clear simple explanation of how EEPROM works in PSoC4 or how it is used simply save a few bits of data into EEPROM and recall them again. Every thing i have found involves a UART and error checking which for a rookie like my self is totally confusing. I have several questions i was hoping some one could explain. In the only example posted on Cypress site for PSoC4 Emulated EEPROM is CE195313.
1. The first question in regards to CE195313 is what does the following line of code mean, and what does it actually do?
2. Why is the variable eepromReturnValue utilized on the left side of equals, and then no were in the code is it actually utilized. It is used several times in the C code its just not clear to me its purpose.
UART_PutString("EmEEPROM demo \n\r");
/*Read 15 bytes out of EEPROM memory*/
eepromReturnValue = Em_EEPROM_Read(LOGICAL_EEPROM_START, eepromArray, LOGICAL_EEPROM_SIZE);
if(eepromReturnValue != CY_EM_EEPROM_SUCCESS)
{
HandleError();
}
3. In CE195313 there is also a line of code again utilizing the same variable but in this case as i understand it it only write a couple bits in EEPROM. My question again why is the same variable "eepromReturnValue is used and also what is the purpose of and & sign in the statement of code &eepromArray[RESET_COUNT_LOCATION], RESET_COUNT_SIZE). I have high lighted green below the code straight from the example.
/*Only update the two count values in the EEPROM*/
eepromReturnValue = Em_EEPROM_Write(RESET_COUNT_LOCATION, &eepromArray[RESET_COUNT_LOCATION], RESET_COUNT_SIZE);
if(eepromReturnValue != CY_EM_EEPROM_SUCCESS)
{
HandleError();
}
4. In my application I was able to save my EEPROM values as desired but I did not use the variable eepromReturnValue. Why does this work when I do not use eepromReturnValue. What am I not understanding. I am storing a LED Color setting and and a Mode setting in EEPROM for recall at start up. Both of these section of code work properly i just don't understand why.
Note: Color is 1 and LED_Color is either a 1 or 2 in value. Note i am saving the LED_Color number into EEPROM.
if (Mode_mV > 1600)
{
CyDelay(100);
while(ADC_Calibrate());
Mode_mV = ADC_ReadResult_mVolts(ADC_Ch5_Mode);
++LED_Color;
eepromArray[Color]=LED_Color;
Em_EEPROM_Write(Color,&eepromArray[Color],2);
if(LED_Color > Max_Colors)
{
LED_Color=1;
eepromArray[Color]=LED_Color;
Em_EEPROM_Write(Color,&eepromArray[Color],2);
}//End If
**********************************************************************************************
Note: Mode is 0 and Mode_Number ranges between 1 and 10
if (Mode_mV < 3700)
{
CyDelay(100);
while(ADC_Calibrate());
Mode_mV = ADC_ReadResult_mVolts(ADC_Ch5_Mode);
++Mode_Number;
eepromArray[Mode]=Mode_Number;
Em_EEPROM_Write(Mode,&eepromArray[Mode],2);
if(Mode_Number > Max_Modes)
{
Mode_Number=1;
eepromArray[Mode]=Mode_Number;
Em_EEPROM_Write(Mode,&eepromArray[Mode],2);
}//End If
Show LessHello fellows,
I'm lost:(
I'm trying to figure out how to connect three devices and what roles would be assigned for each of that devices(Master, Slave, Central, Peripheral, Server, Client, etc).
I have:
- Device_A -- measure and sent the result of that measurements after the request from\to Device_B;
- Device_B -- sending requests to Device_A and also answering(sent a response) to Device_C;
- Device_C -- mobile application which is connected to Device_B and asking about Device_A measurements;
Device_C is working only with Device_B, I mean Device_C doesn't know anything about Device_A and all communication goes through the Device_B.
Could someone explain me the roles of that Devices and the correct data flow?
Really appreciate for your adviсe.
Show Less