PSoC™ 5, 3 & 1 Forum Discussions
I'm using a SAR ADC in my design and trying to understand how to use set gain and set offset function to get more accurate reading. I've read online that adjusting the gain and offset can get reduce error in reading to <= 1%
ADC_SAR_1_SetGain(int16 adcGain);
ADC_SAR_1_SetOffset(int16 offset);
I'm trying to find any application notes or design examples that show how to use these function. Any suggestions would be appreciated.
Thanks.
Show LessHi.
I'm using the CY8CKIT-059 board for my evaluation.
Right now my design uses 79% of UDBs. It has many components in it, two of them are 5-in 6-out LUTs.
At some point I decided to change some values in them. After doing that I get the "E2071: Unable to pack the design into 24 UDBs. See the Digital Placement section of the report file for details. For additional assistance, see the Mapper, Placer, Router section in the PSoC Creator help".
I would like to stress that the only change between successful compilation and the above error is LUT values. All I have to do is clicking "Undo" once, and it compiles successfully again.
Why does this happen? How can I overcome this problem?
Thanks.
Show LessI found a printed document in my company, I took a picture and attached it, the name of this document is MDIO bootloader for application, this document is given by my ex-colleague,but he cannot remember where he get it, I searched it in Cypress website, but did not find it, I also check the datasheet of bootloader/bootloadable component, they are seemed different from this document, I also observed that there is a saying like this: This component is a modified version of the standard Cypress bootloader component and all their parameters are inherited. However, the MDIO bootloader component does not allow changing any of them.
I also very confused with this document Number is 001-XXXXX Rev.**
I need to implement firmware upgrade with dual-image architecture, so I want this component, Could you kindly help me how to get MDIO bootloader for application? thanks.
Show LessIs the intention of Component_Sleep() and Component_Wake() to be used only when the chip is placed in sleep mode? It might be a stupid question but the datasheets don't make a distinction between Sleep/Wakeup and Stop/Start so I experimented with each set and found that Sleep/Wakeup does not result in the component resuming operation whereas Stop/Start do.
See the attached code. Currently, Stop/Start are commented out. The datasheet, for example that for WaveDAC8, states that calling Sleep() calls SaveCofig(), which should save the current configuration and then calling Wakeup() should then restore the configuration saved when calling Sleep() beause RestoreConfig() is called.
When using Stop()/Start() I call WriteCompare() to ensure that the counter is loaded with the count value set at Stop(). The System Reference Manual and the datasheet states that Stop() is called by Sleep() and Start() is called by Wakeup(). However, Sleep()/Wakeup() don't seem to resume operation even when I uncomment WriteCompare(). I must reset the chip.
Show LessHello,
I have a problem with PSoC CY8CKIT-059. What happens is that when I connect the PSoC to my USB port my laptop does not recognize it, however, the first time I connected it if I recognized it. I tried to update the firmware through PSoC Programmer but it does not recognize it either. Then I tried connecting it to another computer with the same result. I do not know what else I can do to solve it, the strange thing is that the first time yes I could program the PSoC and then no longer. The card has not suffered any overvoltage or blow, I think it may be a firmware problem.
Show LessHi,
I would like to ask for advice on declaring and using arrays. Attached is my code.
It is controller for 8x8x8 RGB LED Cube. Levels(anodes) are driven by mosfets, mosfets driven by additional NPN transistors, connected to Levels port. Cathodes are driven by shift register TPIC6C595, connected to SPIM_1, with storage register clock generated manually(because I need it fire after all 24 bytes are transferred).
I have a question about lines 15 to 20 and 44 to 61. Do I use volatile correctly? Do I need it? Is my declaration of "array aliases" at line 44 correct?
For now there is no code to store values to arrays containing patterns to display on cube. But I plan to program PSoC5 as a USB device, so patterns can be generated on PC, and I won't have to reflash PSoC each time I want to change patterns.
Stanislav Husár
Show LessI'm trying to create a logical block to take care of data transfer for a large array (several thousand) of NeoPixel type smart RGBW LEDs.
Each LED requires 32 bits, and each bit is broken into 4 chips - a Zero is sent with one high chip, and three low chips, and a One is sent with two high and two low. I've created a state machine which "should" be able to take an array of 32b RGBW data from memory, load them into a 32b Shift Register via DMA, and shift it through the state machine to chip the bits and TX to the NeoPixels.
The documentation for the Shift Register indicates that it's FIFOs can be loaded directly from CPU, or via DMA (which was my intent). I've tried attaching the Interrupt output from the Shift_Register to the DRQ input of a DMA module, and then tried to run the DMA wizard, but the DMA wizard doesn't show the DMA module, nor the Shift Register's FIFOs as a DMA endpoint.
The DMA Wizard does see a Control Register, but since there is no parallel load option on the Shift Register, I can't use that to move data (other than a bit at a time with the Shift In, which wouldn't help me at all).
I've looked for examples of using DMA or Shift Registers with DMA, and can't find any, so I'm currently stuck...
Any help would be much appreciated.
Dave
Show LessI've attached some simplified code that exhibits what I think is odd behavior. If you run the code on the CY8CKIT-001 with the CY8C38 module installed you'll notice that when you touch a CapSense component the LED lights for a short period of time and it is identified on the display. Note that the PGA_Inv component is not started, it is commented out.
Now uncomment the PGA_Inv component and rebuild and run the project. Now, the LED blinks and the CapSense routines overwrite each other continuously. The PGA_Inv component must be triggering CapSense events.
Any idea as to what obvious thing I am missing?
Show LessI was wondering how does one play samples? The first thing I'd like to achieve is to play a sine wave from a waveform sample. I wonder if I can do that or is there a simpler way?
Store raw audio in EEPROM -> drive DMA with clock or PWM -> pipe DMA output to DAC
If there are any examples or application notes on this, I'd really appreciate that! Also, can I play audio from external memory (as in SD card)?
Show Less