PSoC™ 5, 3 & 1 Forum Discussions
text.format{('custom.tabs.no.results')}
Hi,
This schematic is giving me a warning :
setup time violation found in a path from clock (cyBus_CLK) to filter_clock
If I had a sync buffer I don't have the warning anymore
But I don't understand why I've got a different behavior on my 2 pins P15_5 and P12_3.
P12_3 is configured as a simple input.
P15_5 as both input and output enabled. I actually configure it in the software using P15_5_SetDriveMode
But I don't understand why I need to add a sync block on P15_5
in both case my input are configured as :
If I enable the double sync, in the sync mode of the input, that also solve the problem.
The strange part, is that according to the datasheet the double sync should be the default setting. And I've never touched it, to the actual default is transparent.
So I guess 4ill use double sync from now on. As I don't think that it will cost me more ressources. But I still would like o understand what is going on.
May be it's just a bug of the fitter. It could be either way, the warning should be present for both pins. Or absent for both pins
thanks in advance for any feedback/input or just ideas on the subject.
Show Less
Hi all, I'm struggling to open and build a PSoC Creator project from 2017. I've seen one person remark that they were able to get it to build, but I get hit with a host of warnings and errors no matter what I try. More specifically, I get several warnings on header files that say inline function _________ declared but never defined (the functions *are* defined in the corresponding source files) and I get the error collect2.exe: error: ld returned 5 exit status with very little additional information.
Here are the steps I am taking, largely based on this support post:
- Clone git repo from https://github.com/CentroEPiaggio/Open-Automated-External-Defibrillator
- Download CMSIS 5.1.0 from: https://github.com/ARM-software/CMSIS_5/releases/tag/5.1.0 (I am assuming the original project used a different version of CMSIS, but I can't tell. If I use later version of CMSIS, for example 5.7.0, it causes me to receive more build errors)
- Extract CMSIS-5.1.0 so that the directory "CMSIS_5-5.1.0" is at the same level as the directory "oaed-firmware"
- Open the workspace file "oaed-firmware/Open AED.cywrk" in PSoC Creator 4.3
- Dismiss the errors about "Filter.cydsn\Filter.cyprj", "Filter_Impedance.cydsn\Filter_Impedance.cyprj", "fft.cydsn\fft.cyprj", "Algorithms.cydsn\Algorithms.cyprj", "Open AED ECG.cydsn\Open AED ECG.cyprj". I am assuming that these projects were sitting in the original author's workspace but do not appear to be relevant to this build.
- Under "Build Settings," change the settings that point to CMSIS libraries
- Compiler > General > Additional Include Directories: Change from "C:\CMSIS\CMSIS\DSP\Include" to "..\..\CMSIS_5-5.1.0\CMSIS\DSP\Include; ..\..\CMSIS_5-5.1.0\CMSIS\Core\Include"
- Linker > General > Additional Library Directories: Change from "C:\CMSIS\CMSIS\Lib\ARM" to "..\..\CMSIS_5-5.1.0\CMSIS\Lib\ARM"
- Linker > General > Additional Link Files: Change from "C:\CMSIS\CMSIS\Lib\ARM\arm_cortexM3l_math.lib" to "..\..\CMSIS_5-5.1.0\CMSIS\Lib\ARM\arm_cortexM3l_math.lib"
- Build Project
When building the project, I get many warnings that say "inline function _________ declared but never defined":
This is weird, because they are defined. For example, OAED_USB.h has a corresponding OAED_USB.c file that very clearly defines the "OAED_ShiftNAdd" function that the compiler is warning about.
After those warnings, the linker fails with these messages but not much other info:
collect2.exe: error: ld returned 5 exit status
The command 'arm-none-eabi-gcc.exe' failed with exit code '1'
If I add the flags "-Wl,--verbose" to the linker step, I get many messages about attempts to open libraries, some of which fail and some of which succeed, and I'm unsure how those are related to the above errors. I would have attached the output log from the build step, but it seems .txt files are not allowed as attachments, and I'm guess you all would rather not see my output log in, say, .pptx format 😅 So instead here is a pastebin link to the output log.
Please let me know what other information may be helpful. I have not done anything in PSoC Creator beyond the example projects so this is rather daunting, to say the least. Thank you!
Show LessHello,
We are using LP5. In any case, when we load new FW via wither bootloader or programmer, will any EEPROM be changed? I have not seen that but some other posts seem say some EEPROM cells are changed after loading new FW.
Regards,
Winston
Show LessHi,
on PSOC5LP with pcoc creator 4.4
in the source code for the ADC SAR there is :
ADC_SAR_1.h
#define ADC_SAR_1_IRQ_REMOVE (0u) /* Removes internal interrupt */
Is there a good way to change this define ?
I want to disable this interrupt. But If I change it here, the file will we overwritten when the API file are generated.
And I haven't found anything in the ADC SAR component.
Thanks for any help
Show LessHi,
I would want to know if it's possible to use a DMA only to reset a variable in my C code.
The DMA has to reset a variable when it receives a hardware trigger.
Thnak you
Show LessWe have a batch of boards where one ADC channel is reading a few hundred higher counts higher than it should be. This signal is connected to one of several on board temperature sensors. The voltage on that line is the same as the voltages on the other temperature sensor lines, but it returns a value of ~930, while the other signals returns a value of ~650. I'm using same ADC component in the top design, with the same gain and input settings, so I can't think of or see why there would be such a big difference in the values.
I've even tried swapping the different temperature sensor signals in the top design, and the same ADC channel is consistently that few hundred counts higher than the others, so it's definitely not an issue with the signal coming in.
I've been using this same code and board for a couple years now, but did recently get a new batch of boards in (same design, same board, just a new batch). These are the first products built using the new batch of boards, so I assume that has something to do with it, but everything on board looks and measures fine, it's just the ADC_Count read that is higher than expected.
I've included the attached picture showing all signals using the same block, but the highlighted signal reading high.
Hi All,
My customer is asking bout the reason for the Rpulldown resistor big range (min 3.5K - 8.5K at max), I have review the spec, and I believe the main reason is the Vcc range. Anyway my customer is requesting to have a plot which explain the dependency between the Vcc VS Rpulldown since this is critical for their application. Or if you have any other explanation that might make sense.
Can you help us here please?
Show LessI'm using the CY8C20524-12PVXI with the intention of controlling a display with a rotary encoder. It seems that when I run the application, the Interrupt Service Routine runs once, without touching a button. When I press the button, the ISR runs, but nothing happens each subsequent time that I press the button. The while loop in the main function still executes instructions, so I know that the ISR maintains context and returns to the correct address.
It seems like I need to clear the interrupt in order to interrupt again, but I haven't been able to successfully do so yet.
My GPIO setup is portrayed in the following code:
=========================================================
#pragma interrupt_handler GPIO_ISR
...
void main(void)
{
IO_CFG |= 0x01; // set the IO_CFG_IOINT bit
IO_CFG |= 0x02; // set REG_EN to 1
// set pin as Open Drain Low, High Z
ROT_SW_DriveMode_0_ADDR |= ROT_SW_MASK;
ROT_SW_DriveMode_1_ADDR |= ROT_SW_MASK;
ROT_SW_Data_ADDR |= ROT_SW_MASK;
M8C_EnableIntMask(INT_MSK0, INT_MSK0_GPIO); //Enable the GPIO in INT_MSK0:
ROT_SW_IntEn_ADDR |= ROT_SW_MASK; // Enableinterrupts on Rotary Switch
M8C_EnableGInt; //Enables the Global Interrupt
...
while (1)
{
...
if ( rotarySwitchPressed != button_idle ){
rotarySwitchPressed = button_idle;
...
ROT_SW_Data_ADDR |= ROT_SW_MASK;
M8C_EnableIntMask(INT_MSK0, INT_MSK0_GPIO);
}
...
}
}
...
void GPIO_ISR(void)
{
// disable button interrupt
M8C_DisableIntMask(INT_MSK0, INT_MSK0_GPIO);
rotarySwitchPressed = button_pressed;
return;
}
=========================================================
Is there a register I need to write to in order to enable a GPIO to trigger the ISR more than one time?
Thanks!
Show LessI started PSoCProgrammer and supplied power to the target board, but the method is unknown.
PSoC Creator has a settings menu so it works fine.
Please tell me who the supply method is. Or is it not functional?
Very truly yours
Show Less