PSoC™ 4 Forum Discussions
text.format{('custom.tabs.no.results')}
Hello everybody,
i've a problem that i managed to solve, but i couldn't understand whey the solution worked.
when i build my project i get this error
the command 'arm-none-eabi-gcc.exe' failed with exit code '1'
When i checked the output window i found this build error
multiple definition of `MY_FoundObserver'
I have 3 files main.c, my_ble.c, and my_ble.h
I used the following at the beginning of the header file to avoid any redefinitions
#ifndef MY_BLE_H
#define MY_BLE_H
#define FALSE (0u)
uint8 MY_FoundObserver = FALSE;
......
#endif
Hi,
I'm currently designing a PCB to use CapSense with a 16-pin QFN PSOC 4000, the CY8C4014LQI-421.
For better tuning at a later point I want to make sure that I can use the Capsense Tuner which I tried out with the eval kit. Do I have to consider anything special to use the tuner afterwards?
For example: I will use the progKit3 to program and debug the PSOC. Will I be able to communicate with the CapSense tuner over the SWD-Interface by using the EZI2C-Module in the topdesign? Or do I have to connect to the SDA/SCL Pins of the PSOC and use them for the tuner?
THanks for any help in advance!
Kind regards,
Stevil
Show LessI modified the ADC_Differential_Preamplifer project to work with a PSoC 4 BLE Pioneer Kit and with a load cell as shown in the attached schematic. It worked initially, reporting mVolt values between about 70 (IIRC) and 1024, which is the maximum.
I then tried to do something fancy by using the redExcite and yellowExcite pins to reverse the polarity of the excitation voltage between ADC readings, intending to subtract the reversed-polarity measurement from the normal-polarity measurement as a means to effectively double the resolution. After failing to get that to work, however, I returned to the project I saved before trying this change.
The problem is, now the first project doesn't work either. The ADC is showing no change of values when the load on the sensor changes. Checking with two DMMs, I can see that the differential voltage going into pins blueSense and whiteSense still varies consistently versus load as it always has. Measuring the voltage between Out_1 and Out_2, however, which should be exactly the same as is being fed to the ADC, reads only 0 V, occasionally drifting to -0.1 mV. Since the firmware only calculates down to values of 1 mV, it makes sense that mVolts is always equal to previousValue so that nothing is being written to the UART.
Did I fry my opamps? Fortunately, I have another kit or two on their way, but I would like to know if the opamps are, in fact, fried, or whether I have some other error in my project that I am missing. I can share the rest of the project too, if that will help.
Thanks, Don.
Show LessI'm fairly new to the PSoC architecture so I expect some frustration learing a new part. I've programmed PIC, Intel, Zilog, and Motorola microcontrollers in the past and they all have their learning curves and documentation issues. This is not a slam in any way as I'm just pointing out something that created some confusion to me when learning this device.
I'm working on a program that uses the SCB UART funtionality on a CY8CKIT-049-42xx board. so I was poking around trying to learn the register locations. I see on page 23 of the PSoC 4 Architecture TRM (Rev C 3/25/2014) that there are two SCBs. When I look at page 50 I see that the SCB registers are mapped to addresses 0x40060000-0x4006FFFF. I then go to the PSoC 4 Registers TRM (Rev A 6/25/2013) to actually look at the individual register definitions and I see the registers mapped in that address space, but there is no indication of two SCBs. So I compile a simple program in PSoC Creator and I hunted around in the include files and find that in the cydevice_trm.h file the SCB1 register address map appears to be 0x40070000-0x4007FFFF. This range is not even defined in the PSoC 4 Architecture TRM.
While I'm OK with finding this information out in a rather reverse engineering way, it would be a lot clearer if the documentation was updated to reflect the full picture especially with regards to registers in the device. I would rather not have to rely on compiled code to understand the register mappings. If I missed some errata document out there my apologies, and I would appreciate a link to it for my documentation collection.
I do like the PSoC devices though and look forward to using these devices in future projects.
Show LessHi,
I have an application where an event will trigger the need to generate UART data, and transmit it, but if the event is not present, the UART component should act as a pass through for data, where any data in is automatically transmitted right back out without needing to look at it or modify it.
What is the simplest way to do this? Can I disable the ISRs for my own generation and transmission and somehow 'hardwire' the pins through code?
Thank you as usual for your help.
Tom
Show LessHi,
I have a question that where can I download CY5672 PRoC™ BLE Remote Control Reference Design Kit ' related files, such as source code and board desigen files?
Show LessHi,
I set up a simple system to read the die temperature. I set it up as the datasheet shows, but I cannot set the 'Single Ended Result Format' due to it being greyed out. Anyone else tried to do this before?
The error I get is 'Net 35 is connectecd to analog mux but is not connected to another component'. Is this the other input to the ADC? What am I supposed to connect it to? The datasheet does not elaborate. Very simple error I am sure.
Thank you,
Tom
Show LessHi,
I was wondering if anyone had any examples of how to write a floating point number to Em_EEPROM. I remember reading something somewhere along these lines on these forums (though I cannot find it now) about accomplishing this, but do not recall how it was done.
Thank you in advance for any help!
Tom
Show LessHi,
I'm working on an assignment for my studies, I'm making a system that measures the voltages of two incoming channels with the SAR ADC component. I understand that this component resides within the Programmable Analog block of the PSoC 4. Another part of the application writes the measured voltage of the first channel to a 7-segment display, which is located on an extension board. The display has four digits, only one digit is written to the display at a time, but with a high enough refresh rate the user won't notice any flickering.
The frequency I chose for writing a digit to the display is 200Hz. I have implemented this with a Timer Counter, where the clock frequency is 100kHz and when the counter hits the 500, an interrupt is generated (writing the digit).
This was fine when (at first) I only had 1 Analog channel to measure. But with 2 analog channels the PSoC appeared to have trouble reaching the 200Hz (this I assume as I clearly saw flickering). I think I have solved the problem by reconfiguring the SAR ADC with a higher sample frequency (now at 12Mhz) and a lower averaged result (from 256 to 64 samples), which leads to a result within 117us per channel. I can't see the 7-segment display flicker any more:)
But wait, why would the ADC influence my 7-seg display in the first place? This I don't understand, I was hoping that someone can shed some light here. I thought the ADC is implemented in the (programmable) 'hardware', so it won't take up any resources from the ARM microcontroller, right? Also the Timer Counter resides in 'hardware' yes? (in the programmable digital block?)
If more info (or the project files?) is needed for giving an answer, let me know!
Thanks much,
Caspar
Show LessI'm working on one of the example projects from the 100 Projects in 100 Days set of projects - Dynamic Broadcaster, Project #9 www.cypress.com/ - and instead of the broadcasting data generated by the firmware (a counter), I want my device to broadcast data read from the proximity sensor (CapSense). When I added the CapSense component and code into the Dynamic Broadcaster project, the proximity sensing portion worked fine but as the proximity sensor data changed, none of those changes were being broadcasted which I later found was due to the portion of the code that broadcasts the data becoming inaccessible due to the BLE state not being active which doesn't meet the necessary condition to execute that section of code.
[Further details if needed: In the DynamicADVPayloadUpdate() function, when the BLE Subsystem (BLESs) state was checked (Condition: CyBle_GetBleSsState() == CYBLE_BLESS_STATE_ACTIVE), it was never active, so naturally did not execute anything it encapsulated which was the code to broadcast the sensor data.]
So that was my problem. Now, the state that is detected when CyBle_GetBleSsState() is called at that point is CYBLE_BLESS_STATE_EVENT_CLOSE. I added an additional condition to include accepting this state if encountered as well since after reading up on it in the BLE document (www.cypress.com/ Pg. 52-53), this state seems just as fine as if the BLESs were active but I wanted to ask to make sure I wasn't missing anything as I am very new to all of this. Is there anything I should be concerned about or note if I allow BLE data transmission when the BLESs is in the CYBLE_BLESS_STATE_EVENT_CLOSE state versus the active state?
Show Less