PSoC™ 4 Forum Discussions
Hello,
I am designing a touchpad that is 150mm x 30mm, with sensor electrodes organized in a 6x30 diamond pattern. I've selected the PSoC 4100S Plus device for use here. The next step is creating a schematic & PCB Layout.
I'm new to PCB design and all, but I've been learning how to use Autodesk's Eagle. I have not been able to find a library containing the PSoC 4100S Plus device to use. I am not sure if there's a reason for this that's over my head or if simply there's not one available? I have also located the PSoC 4100S Plus component as a library for Allegro & Altium here https://www.cypress.com/cad-resources/psoc-4-cad-libraries.
Should I be looking at making my own library component for the PSoC 4100s Plus in Eagle, or be using another program? Am I missing something big here? (Again, I'm new to this)
Show LessHello!
On peripheral device side I'm trying to acquire the address of the connected central device when it gets connected.
Central device MAC is actually 00A050DC77C7, but when the connection is established I get an event like:
@E,0035,C,C=04,A=804929199580,T=00,I=0006,L=0000,O=0064,B=00
I tried with multiple different modules as central devices and all of them give me the address 804929199580.
I'm using a simple configuration on the central side:
.CYSPPSP,E=2,R=11223344,L=11223344,M=FFFFFFFF,G=1,S=0
SAP,L=0
SSP,F=0
/SCFG
/RBT
and on the peripheral side:
.CYSPPSP,E=2,R=11223344,L=11223344,M=FFFFFFFF,G=0,S=0
SAP,L=0
SSP,F=0
/SCFG
/RBT
On the central device I tried running GBA command, but it always returns actual MAC address:
@R,0018,GBA,0000,A=00A050DC77C7
I noticed the occurrence of this address in some other topics (e.g https://community.cypress.com/thread/45727?start=0&tstart=0), but haven't figured out what it actually means.
How should I reorganise the program to get the actual connected device's mac address?
Show LessI am using CY8C4025AZI-S413 micro controller with PSoC 4.3 creator
I have configured 4 buttons and one proximity in single cap sense block in top design
I wrote code for the same but it is not executing
If i configured single button and write the same code, it is executing
But I want to turn on seperate 4 LED if any of the buttons 1,2,3,4 pressed and and release respective led if button is released along with key number to be displayed on UART
Please Refer my code:
/**********************************************************************************************************/
int main(void)
{
CyGlobalIntEnable; /* Enable global interrupts. */
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
pwm_Start();
capsense1_Start();
capsense1_InitializeAllBaselines();
capsense1_ScanAllWidgets();
led17_Write(0);
for(;;)
{
/* Place your application code here. */
if(!CapSense_IsBusy())
{
CapSense_ProcessAllWidgets();
if (CapSense_IsAnyWidgetActive())
{
LED_1_Write(1);
}
else
{
LED_1_Write(0);
}
}
CapSense_UpdateAllBaselines();
CapSense_ScanAllWidgets();
}
}
/**********************************************************************************************************/
I should check button and proximity if buttons are enable, proximity should be disabled and vice versa
What should I do?
Show LessI am using the PWM v3 30, in a PSOC 4M series board.
I have set up two compare values in the structure along with the interrupt on pwm1 and pwm2.
I have created the ISR:
CY_ISR(pwm_isr_ON_OFF)
{
status = PWM_ReadStatusRegister() ;
// Pseudo code
if (stats & COMPARE_FLAG_1)
do_stuff(pwm1);
else if(status & COMPARE_FLAG_2)
do_stuff(pwm2);
pwm_on_off_flag = 1;
}
I was hoping to identify the source of the interrupt; compare1 or compare2. I have checked the documentation and tried looking for examples but have not been successful so far.
Help would be appreciated,
Thanks,
Show Lessi've managed to confuse myself again. I'd really appreciate it if someone could unconfuse me.
1. i have a PSoC4 BLE based remote server talking to an iPad.
2. The remote's Public Address is set in the BLE component (not silicon generated) and programmed into the PSoC.
3. At some time during the remote's operation (when a PB switch is pressed) I want to change the Public Address.
4. This new Public Address should stay active, even through power cycling, until the chip is again reprogrammed or the PB switch is pressed again.
Without boring you with all the things I've tried, if you could tell me how to do this it would make my day a whole lot better.
Thanks,
Dennis
Show LessHello, we are using the CY8C4014FNI-421 in a project and are seeing a problem with the I2C communication when the CY8C4014FNI-421 is not supplied. We are using P1.2 (B1) for SCL and P1.3 (A1) for SDA. VDD and VDDIO are connected to 1.8V. As soon as the 1.8V supply is disconnected from the CY8C4014FNI-421 the SDA line is pulled to ~1V by the CY8C4014FNI-421 and this does prevent any further I2C communication on the bus. Is this a known issue and is there a way to fix it?
Thanks,
Stephan
Show LessI am using CY8C4025AZI-S413 with PSoC4 and PSoC 4000S series microcontroller.
I have chosen SCB mode as UART , enabled receive interrupt in ISR routine
Please refer following program :
/* ========================================
*
* Copyright YOUR COMPANY, THE YEAR
* All Rights Reserved
* UNPUBLISHED, LICENSED SOFTWARE.
*
* CONFIDENTIAL AND PROPRIETARY INFORMATION
* WHICH IS THE PROPERTY OF your company.
*
* ========================================
*/
#include "project.h"
volatile uint8 gb_char = 0;
volatile char flag = 0 ;
CY_ISR(Uart_Rx_Interrupt)
{
gb_char = UART_UartGetChar();
if(gb_char == 0x23)
{
flag = 1;
UART_SpiUartWriteTxData(gb_char);
}
}
void Uart_Initialize (void)
{
UART_Start();
Uart_isr_StartEx(Uart_Rx_Interrupt);
}
int main(void)
{
CyGlobalIntEnable; /* Enable global interrupts. */
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
Uart_Initialize();
for(;;)
{
/* Place your application code here. */
if(flag == 1)
{
led17_Write(1);
}
if(flag == 0)
{
led17_Write(0);
}
}
}
/* [] END OF FILE */
Output:
Flag is not checked and led on off is not functioning , what should I do?
Show LessAll,
How can I enable/disable an input pin in software? I am using a scb configured as a UART component with the TX pin connected through a 1K resistor to the RX pin and then connected to a bidirectional one wire device. The problem I have is I want to disable the RX pin while transmitting data. How can I do this in software? The device I am using is CY8C4025LQI-S411. Any help would be greatly appreciated!!!
Thanks,
Eric
Show LessWe would like to use Random static address and tried to use below code:
char_t buffer[DEVICE_ADV_NAME] = {0};
CYBLE_GAP_BD_ADDR_T localAddr;
// Generate a random static address
CyBle_GapGenerateDeviceAddress(&localAddr, CYBLE_GAP_RANDOM_STATIC_ADDR, NULL);
// Set the device address
CyBle_SetDeviceAddress(&localAddr);
CyBle_GapSetIdAddress(&localAddr);
// Change the address type in the discovery parameters
cyBle_discoveryParam.ownAddrType = CYBLE_GAP_ADDR_TYPE_RANDOM;
We now see that the address change from the public static address to random static address but when we try it on two different devices we get the
same address C0:49:29:19:95:80
is the BLE random generator not random? is done init of the BLE random generator needed with a seed to generate pseudo random addresses?
We use BLE 4100 chipset. tested with BLE 3.10 and 3.54 components.
Show Less