All Forums
Browse the Community
USB
Universal Serial Bus (USB) forums have discussions regarding Low-Full & High Speed Peripherals, Superspeed Peripherals, USB Hosts Hubs Transceivers, and USB EZ-PD Type C product solutions for PCs and consumer device topics.
Wireless Connectivity
Power
Sensors
Memories
Memory Discussion Forums discussions regarding NOR Flash, SRAM, nvSRAM and F-RAM - performance and reliability with discrete memory densities ranging from 4K-bit to 2G-bit topics.
Other Technologies
Discussion forum regarding Other Technologies including Power Management and Clocks topics.
Security & Smart Card
Radio Frequency (RF)
Software
Software including ModusToolbox, PSoC Creator, WICED Studios and Wi-Fi Bluetooth for Linux .
Applications
Battery Management ICs
Infineon's TLE9012DQU is a multi channel battery monitoring and balancing IC for various lithium-ion battery applications, with integral functions like voltage and temperature measurement, cell balancing, and isolated communication with the main battery controller, including self-diagnosis features. The TLE9015DQU iso UART Transceiver IC is used in battery systems for enabling the communication between the main microcontroller and multiple TLE9012DQU units in a daisy-chain configuration. This forum welcomes discussions, queries, and insights on battery management systems and devices.
Featured Discussions
If So How to flash binary Through UART instead of JTAG for BCM43907.
Hi Gyus,
Is it possible to disable (currently analog)pins on the fly? Alternatively it would make a difference if i were able to change type of input(from analog to digital output) and change drive mode in order to be able to activate internal pullups.
Background:
As I'm supposed to mux different signals to ADC, different channels are connected to CPU. In the matter of electromagnetic compatibillity I've noticed some bad behaviour(using our EMC setup). My assumption is, that unused channels, which are actually setup as analog input may introduce some electromagnetic sideffects in that time slots they aren't beeing used.
I do not need any suggestions which opportunities there are to handle this type of sideeffects but more strict instructions how to disable unused pins.
I've found an application note how pins and gpios are to be used. There is an example how to make/break connection to analog globals(in order to switch analog/digital input which shares same GPIO). Is it practicable to do so in my case?
Sharing any other expriences in the matter of EMC will also be appriciated.
Thanks for any hints in advance!
Joe
Show LessHi,
i am struggling a bit with the watchdog on PSoC 4 and Cascading Watchdog. Here is my program:
I have following questions:
1. How long are the intervals from WDT_COUNT0_MATCH and WDT_COUNT1_MATCH respectively? How can i translate the hex values to milliseconds? How can i measure how long my program takes to see if the watchdog interval is long enough?
2. Do i need the cascade for my program? I just want to be sure my program never hangs up, since its in a sealed environment.
3. I tried with only one WDT counter an no cascade and resette the timer in the main while loop with CySysWdtResetCounters(CY_SYS_WDT_COUNTER0_MASK); but it didnt reset the wdt.
When i use the cascade construct, like in the code below and call CySysWdtResetCounters(CY_SYS_WDT_CASCADE_01); in the main loop it works, but i still have no idea how to measure the time my program needs for one run and how big to set the timers...
Please give me some advice on how to implement a simple proper WDT to detect program hang ups.
Thanks in advance,
Patrick
CODE:
/*******************************************************************************
* File Name: main.c
*
* Version: 1.0
*
* Description:
* BLE example project that works as a BLE to UART bridge, using
* Cypress's BLE component APIs and application layer callback.
* This project demostrates a custom service usage for BLE to UART
* bridge in a PERIPHERAL role.
*
* References:
* BLUETOOTH SPECIFICATION Version 4.1
*
* Hardware Dependency:
* (1) CY8CKIT-042 BLE
* (2) An external UART transciever (if flow control is needed)
*
********************************************************************************
* Copyright 2015, Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#include "main.h"
/* WDT counter configuration */
#define WDT_COUNT0_MATCH (0x4FFFu)
#define WDT_COUNT1_MATCH (0x0008u) //0008u
/* Prototype of WDT ISR */
CY_ISR_PROTO(WdtIsrHandler);
uint8 proximityWasActive = 1;
uint16 ms_count = 0;
//Debouncing the CapSense
CY_ISR(MY_ISR) {
ms_count++;
if(ms_count == 500) { // 0.1 seconds
proximityWasActive = 1; //Reset proximity switch
ms_count = 0; // reset ms counter
}
}
int main()
{
#ifdef LOW_POWER_MODE
CYBLE_LP_MODE_T lpMode;
CYBLE_BLESS_STATE_T blessState;
#endif
CYBLE_API_RESULT_T bleApiResult;
/*######################
Start the Watchdog Timer
######################*/
/* Setup ISR for interrupts at WDT counter 0 events. */
WdtIsr_StartEx(WdtIsrHandler);
/* Enable global interrupts. */
CyGlobalIntEnable;
/* Set WDT counter 0 to generate interrupt on match */
CySysWdtWriteMode(CY_SYS_WDT_COUNTER0, CY_SYS_WDT_MODE_INT);
CySysWdtWriteMatch(CY_SYS_WDT_COUNTER0, WDT_COUNT0_MATCH);
CySysWdtWriteClearOnMatch(CY_SYS_WDT_COUNTER0, 1u);
/* Enable WDT counters 0 and 1 cascade */
CySysWdtWriteCascade(CY_SYS_WDT_CASCADE_01);
/* Set WDT counter 1 to generate reset on match */
CySysWdtWriteMatch(CY_SYS_WDT_COUNTER1, WDT_COUNT1_MATCH);
CySysWdtWriteMode(CY_SYS_WDT_COUNTER1, CY_SYS_WDT_MODE_RESET);
CySysWdtWriteClearOnMatch(CY_SYS_WDT_COUNTER1, 1u);
/* Enable WDT counters 0 and 1 */
CySysWdtEnable(CY_SYS_WDT_COUNTER0_MASK | CY_SYS_WDT_COUNTER1_MASK);
/* Lock WDT registers and try to disable WDT counters 0 and 1 */
CySysWdtLock();
CySysWdtDisable(CY_SYS_WDT_COUNTER1_MASK | CY_SYS_WDT_COUNTER0_MASK);
CySysWdtUnlock();
/*######################
Start CapSense Component
######################*/
/* 1. Enable Proximity sensor as it is disabled by default */
CapSense_1_EnableWidget(CapSense_1_PROXIMITYSENSOR0__PROX);
/* 2. Start CapSense block - Calibrates the proximity sensor for the set sensitivity setting (in the Scan Order tab of Component Configuration */
CapSense_1_Start();
/* 3. Initialize Proximity baseline */
CapSense_1_InitializeSensorBaseline(PROXIMITY_SENSOR_INDEX);
/* 4. Setup a timer to debounce the CapSense */
Timer_1_Start();
debounce_timer_isr_StartEx(MY_ISR);
/* Start UART and BLE component and display project information */
UART_Start();
bleApiResult = CyBle_Start(AppCallBack);
//Test the UART
UART_UartPutString("\n\r***************** UART TEST OK *****************\n\r");
if(bleApiResult == CYBLE_ERROR_OK)
{
#ifdef PRINT_MESSAGE_LOG
UART_UartPutString("\n\r************************************************************");
UART_UartPutString("\n\r***************** BLE UART example project *****************");
UART_UartPutString("\n\r************************************************************\n\r");
UART_UartPutString("\n\rDevice role \t: PERIPHERAL");
#ifdef LOW_POWER_MODE
UART_UartPutString("\n\rLow Power Mode \t: ENABLED");
#else
UART_UartPutString("\n\rLow Power Mode \t: DISABLED");
#endif
#ifdef FLOW_CONTROL
UART_UartPutString("\n\rFlow Control \t: ENABLED");
#else
UART_UartPutString("\n\rFlow Control \t: DISABLED");
#endif
#endif
}
else
{
#ifdef PRINT_MESSAGE_LOG
UART_UartPutString("\n\r\t\tCyBle stack initilization FAILED!!! \n\r ");
#endif
/* Enter infinite loop */
while(1);
}
CyBle_ProcessEvents();
/***************************************************************************
* Main polling loop
***************************************************************************/
while(1)
{
CySysWdtResetCounters(CY_SYS_WDT_CASCADE_01);
CyDelay(10);
#ifdef LOW_POWER_MODE
if((CyBle_GetState() != CYBLE_STATE_INITIALIZING) && (CyBle_GetState() != CYBLE_STATE_DISCONNECTED))
{
/* Enter DeepSleep mode between connection intervals */
lpMode = CyBle_EnterLPM(CYBLE_BLESS_DEEPSLEEP);
CyGlobalIntDisable;
blessState = CyBle_GetBleSsState();
if(lpMode == CYBLE_BLESS_DEEPSLEEP)
{
if((blessState == CYBLE_BLESS_STATE_ECO_ON || blessState == CYBLE_BLESS_STATE_DEEPSLEEP) && \
(UART_SpiUartGetTxBufferSize() + UART_GET_TX_FIFO_SR_VALID) == 0u)
{
#ifdef FLOW_CONTROL
EnableUartRxInt();
#endif
CySysPmSleep();
#ifdef FLOW_CONTROL
DisableUartRxInt();
#endif
}
}
else
{
if((blessState != CYBLE_BLESS_STATE_EVENT_CLOSE) && \
(UART_SpiUartGetTxBufferSize() + UART_GET_TX_FIFO_SR_VALID) == 0u)
{
#ifdef FLOW_CONTROL
EnableUartRxInt();
#endif
CySysPmSleep();
#ifdef FLOW_CONTROL
DisableUartRxInt();
#endif
}
}
CyGlobalIntEnable;
/* Handle advertising led blinking */
HandleLeds();
}
#else
//HandleLeds();
#endif
/*******************************************************************
* Process all pending BLE events in the stack
*******************************************************************/
//HandleBleProcessing();
//CyBle_ProcessEvents();
/*******************************************************************
* Handle the Cap Sense
*******************************************************************/
//HandleCapSense();
}
}
CY_ISR(WdtIsrHandler)
{
/* Clear interrupts state */
CySysWdtClearInterrupt(CY_SYS_WDT_COUNTER0_INT);
WdtIsr_ClearPending();
}
/* [] END OF FILE */
I am looking for a 20 port or higher USB Hub, any ideas ??
Hello. Very new to PSOC tools and kits (started Friday) so may be wrong but we are experimenting with PSOC 4.1 and PSOC4 evalkit.
With the PSOC Creator 4.1 - unable to switch the Build Settings from DEBUG to RELEASE.
1) Can someone please confirm if the results are the same on your side?
Right mouse click on the project name -> Build Settings -> Change CONFIGURATION from DEBUG to RELEASE -> Apply -> OK.
Leave this pull down menu and enter again the same menu. For us, DEBUG is back again as the ACTIVE setting. Even if you attempt to make RELEASE as the ACTIVE setting, no go for us.
2) However, the pull-down setting in the toolbar does appear to work. Please confirm if this is true for you as well.
Toolbar selection appears to stick and is reflected in the above setting.
Compiler bug or a local issue??
Show LessWe have improved the user rating systems on Infineon Forums. We hope you will find it even more rewarding to participate on the Infineon Forums.
So what has been improved/changed?
1) User Points System
Be the king user on Infineon Forums.
Now you earn 4 times user points for reply to others’ thread.
You also earn 2 times user points for rating a thread.
Many other actions on the Forums will earn you user points.
Do note that 50% of user points are deducted for inactivity over 60 days.
2) User Reputation System
Get acknowledged by peers.
Reputation System is now active on Infineon Forums.
Click on the STAR at bottom to approve another user’s reputation with option for comments.
Alter other user’s reputation by adding or taking his reputation.
Start earning your points, you would be glad you did.
Watch This Space. Show Less
Hello,
I have to design a PCB using a capsens button sensor. As it is my first time design a board with cypress product, I have some questions about the layout:
-If the button sensor is on the top layer, can I have something, like the CY8CMBR3108 beneath it, or does it needs some clearance?
-I want to ad some LEDs for feedback, is it possible to put 2 in the middle of the sensor ( soldered on the bottom, facing a hole)? If I want to add other LED on th side, with the same technic, what is the minimal distance from the side of the sensor I can go?
-If I understand well this document http://www.cypress.com/file/41076/download page 81, a hatched ground must be present on layer 3, and on empty space of the bottom layer, but what about the top layer? Do I need an other hatched ground on the top layer with clearance around the sensor?
-Can I use the 3rd layer ( aka the ground layer I think) for rooting the non-capsense traces ?
Sorry if my questions seems trivial, but after reading the documentation I am not 100% sure and wanted some advice
Thanks in advance
Show LessHi Gentlemen,
I am beginner user at wiced and cypress .
I have a refrence board (BCM94343WWCD1) and installed wiced 5.2.1 .
I create the make target "snip.scan-BCM94343WWCD1 download run". compiling and downloading was successful.Unfortunately it doesn’t work. I had changed the name with"snip.scan-BCM94343WWCD1-debug download" and debug it for step. Then, I found the default . befause of the wicedfs_init funtion err,
fs_handle->readfunc funtion is NULL . But I did not know Why . I just couldn't figure out how to solve the problem .
Show Less
hello
after compiling any of the example apps
code is hanging after "creating Packet pools" massage
i am using the BCM94343WWCD1
in wiced studio 5.0.0.33 all worked fine.
Show LessHello everyone : )
I have a problem with SPI slave in psoc creator, related to my inexperience. In my main() program, I have calculated array of 0's and 1's, and I need to SPI it out (communication controlled by external clock bursts LGC-clk).
I believe must change my array to a binary data word, for this to work?
The main question is: Can I simply write my data word to SPI module using Code? If so, why is it mandatory to connect MOSI input and what should i connect to it?
Thanks guys
Show Less
-
TraveoII
UART buadrate Setting
by chandan1995 Jun 19, 2023