Quantcast
Channel: Cypress Semiconductor - PSoC 5 Known Problems and Solutions
Viewing all 264 articles
Browse latest View live

Using DMA with Control Register

$
0
0

Hi

I am using Control Register to write data to GPIO. I have to send a array to GPIO continuously. Size of array is 1Kbyte. I want to use DMA for Data Transfer. How do I write control register address to DMA for this?

I also need a DMA interrupt. I need to generate a clock signal after each transfer data of the DMA. If the DMA transfer size is 1024 Bytes, I need 1024 interrupt. Because I need to generate a clock signal after writing data to the GPIO.

How can I do this with DMA?

Thank You


MHz XTAL ECO on CYCKIT-059

$
0
0

Hello,

I have a particular question about CYCKIT-059 prototyping kit. How should a MHz XTAL be connected physically to the board, are there any designated pins like there are for 32kHz XTAL? Is there any info on load and shunt capacitance that fits this particular kit (due to the pcb trace capacitance and similar)?

I2C Slave Interrupt?

$
0
0

Using the Fixed-Function I2C Slave component on PSoC5LP, is there any way to get an interrupt when the Master writes?  The only way I have found to know if the Slave has received data from the Master is to poll the Slave's status register and look for I2C_SSTAT_WR_BUSY or I2C_CFG_REG bits.  I need to respond quickly, but don't want to waste all my processor time polling the register.

Is there any callback function I can use, or a way to enable an interrupt pin?

Thanks!
-Will

DMA doesn't write to a Fixed Timer

$
0
0

Hi.

In my project I need a DMA to write values to a Timer counter register (according to some SW logic).

When I implement this using a UDB-based Timer - it works.

When I changed the Timer to Fixed - it doesn't.

Is there some limitation regarding DMA and Fixed peripherals?

Thanks.

Opamp offset voltage Compensation

psoc5

$
0
0

psoc 5
i am going to purchase psoc 5 chip, but i am confused to select the type.
i need a chip with maximum analog blocks , previously i worked on psoc cy8c29466 24pxi , there are 12 analog block, i was  planning  to build a big project on it .

 

but the analog blocks are limited ( ex , i can't put more than 4 analog continuous time like 2 pga,1 comparator , 1 refmux and then  all the CT blocks are full , so no analog input can come into the chip )
i want more than this number of CT bloks .,, which type of psoc 5 chip allowed me do a lot of analog tasks without fear from available space ???

 

image below shows a small part of the project , i need more analog input , more CT blocks , more analog blocks ,

the analog apace is full now , what is the best choice of psoc5 chip to do all my project on it ?

 

 

 

Attachments: 

limited use of psoc5LP

$
0
0

 

after a little reading and studying about PSOC 5, I discovered that there are 2x SAR ADC, 1x Del Sig ADC, 1x Sample and hold circuit. This is very small amount of ADC.

 

I have 6 sensors, their output is AC signals (sine wave), I want to connect them to psoc5lp and then detect the maximum peak for each signal, then send the peaks values to the computer by URST. Is it impossible to do this tasks thru chip, right?

Also I need to generate a sine wave this 20khz frequency inside the chip, then connect the signal with an analog pin, which connected to a seventh sensor, after that, re-enter this signal to the chip to do sample and hold on it, is this possible to do on psoc5lp, cy8c888AXi???

Attachments: 

multi output Dc volatge

$
0
0

if i have multi variables  integer x1 ,x2 ,x3 , x4 ,x5 .

x1 from [ 0 , 10] => the corresponding voltage = 1 v dc on P0[1]

 x2 from [ 10 , 20] => the corresponding voltage = 2 v dc on P0[2]

x3 from [ 20 , 30] => the corresponding voltage = 3 v dc on P0[3]

x4 from [ 30, 40] => the corresponding voltage = 4v dc  on P0[4]

x5 from [ 40 , 50] => the corresponding voltage = 5 v dc on P0[5] 

i want to transfer each  corresponding voltage  its equivalent  pins using psoc5lp ???

are there av application note , idea or algorithm about this???

 

thanks


Calibrating SAR ADC

$
0
0

I want to calibrate the SAR ADC using the technique described in Cypress Bulletin AN68403.  Doing the Del Sig is trivial because the firmware provided automatically updates the calibration EEPROMs.  For the SAR, I would like to write the Offset and Scaled Gain parameters into a its own EEPROM area and then use with my future projects (by reading back and correcting when the actual firmware is initialized).

So I modified the project to use a 12-bit SAR ADC with the VDAC set to 0.016V and got an offset of 16 mV and a Gain Correction ratio (GnCor) value of 0.982097.  .  However the API for the SAR doesn't use the offset in mV or the GnCor value determined by the project as written.  According to the bulletin the value I should use is 

adcOffset= (Offset in V) *1.024 (ADC voltage range) * 2^11 (the ADC counts range)  This equals 0.016*1.024*2048 = 33.55 counts

adcGain = SigChn_offset_corrected / Actual VDAC voltage.  This equals  0.982097/0.016 ?  This equals 61.38 counts per 10 V.

So I'd end up calling ADCSetOffset(34) and ADC_SetScaledGain(61) at the initialization stage to get the correction.

Is this correct?  The bulletin is a little hard to follow.

EMIF timing with wait states

$
0
0

I need information on how exactly  EMIF_WP_WAIT_STATES and EMIF_RP_WAIT_STATES affect the EMIF timing. A timing diagram showing the EMIF timing with wait states is needed. Thanks!

Please help, error in isrRx_StartEx(InterruptRx)

Problem with external clock for PSOC 5

$
0
0

 I use a CY8CKIT-059 PSOC 5 LP Prototyping Kit.

The processor is running properly, when I use the internal clocks oran external XTAL on PIN 15.0 and 15.01.

Since internal clock  and XTAL does not provide the required accuracy, I hav to use an external precise clock (e.g. 10 MHz TCXO).

Up to now we found no way to get the board running with an external clock.

I followed the  following procedure:

1. Place a digital input pin in your top design. 

2. draw a wire from that pin and give some name to that net.

3. In the .cydwr window, go to clocks tab and double-click 'master clock'.

4. A window named 'configure system clocks' will open. In this, check the 'Digital Signal' and click on the browse button.

5. Then select the net that you gave for the pin (clock input) previously and give the frequency and tolerance value.

6. Now you can use this clock to derive any clock source.

 

Do you have any idea, what could be the source of the problem?

 

Thanks in advance

Daniel

PSoC5LP DMA interrupt Problem

$
0
0

Hi 

I need to transfer parallel data using DMA and GPIO. But I have a problem. 

I looked at the examples given here.

http://www.cypress.com/comment/405831#comment-405831

This application is working. I tried it on my CY8KIT-50 Psoc5lp Development kit. 

In the given application, the interrupt occurs after all the data has been transferred. But I need to generate a clock signal after each transfer data of the DMA. For example, If the DMA transfer size is 1024 Bytes, I need 1024 interrupt. Because I need to generate a clock signal after writing data to the GPIO.

How can I do that?

Thanks.

Newb can't figure out enabling counters

$
0
0

I have an application where I need several counters to manage shifting bits out.  I have a PSOC5LP, and decided to try to create the stand alone logic there - trying to implement with just the schematic entry logic tools for starters.

I've tried several different counters, both UDB and fixed, including "Counter", "Count7", "Basic Counter", and in each case have fed them a low speed clock (5-50Hz), and used the built in LED to attempt to monitor the output (P2.1). On counters with an "enable", I attached a "LOGIC HIGH" to enable, and devices with a reset a "LOGIC LOW". 

Even though I can monitor the clock ticking (when set to few Hz) with the LED, the output of the counter, the TC and the Compare never change, even when using a "SYNC" element for UDB counters.  It's like there is a separate enable beyond the "Hardware only"... 

This is such a basic thing, and the two examples I can find are both for different eval kits with LCDs, so they won't run. There must be a "make it go" button somewhere that I'm missing. 

Thanks much

how i can assemble/compile alone ASM file, without boot.asm ...

$
0
0

Hi All,

i have one old project/file written in assembler. How i can assemble/compile this file without "help" from designer studio? I want to compile single .asm file. That's all.

Best Regards


CYUSB3014 Heating to 50 degree celcius

$
0
0

Hi,

I am using Cypress CYUSB3014 for streaming video in one of my projects. With Cypress support we are able to stream the video now after lot of changes in the code. 

Now we see the Cypress IC is getting heated to 50 degree Celsius. Since this is a medical device we cannot have any temperature raise in the board.

We do not find any issue with the board design. It is a 6 layer board with sufficient ground poring. 

Could you please clarify on this issue and also how much does CYUSB301x IC get heated at normal operating conditions? 

 

 

Regards

Bharati

Opamp offset voltage Compensation

Floating Point Variables sprintf Problem

$
0
0

Hi

I need to use sprintf function with float numbers. But it does not work. 

         val=1.2243;
        sprintf(text,"Value=%f",(float)val);

        LCD_Position(0u,0u);
        LCD_PrintString(text);

Is there a setting in this regard?

 

 

ADC+DMA Buffer problem

$
0
0

Hi

I am trying to do an application that takes a certain number of samples using ADC and DMA. I did an experiment by looking at the application in AN61102. DMA Transfer Done interrupt not working.

This is my main.c file

/* ========================================
 *
 * 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"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define SAMPLES                    128            

uint16 ADC_sample[SAMPLES]={0};

void ADC_DMA_Config(void);

/*   ADC DMA Interrupt Handler   */
CY_ISR(DMA_TC_ISR)
{
   LED1_Write(~LED1_Read());
}

int main(void)
{
  
    CyGlobalIntEnable; /* Enable global interrupts. */
    //this will initially start the timer

    LCD_Start();
    
    ADC_DMA_Config();
    
    LCD_Position(0u, 0u);
    LCD_PrintString("ADC DMA Test");
    
    for(;;)
    {
   
    }
}

void ADC_DMA_Config(void)
{
    /* DMA Configuration for DMA */
    #define DMA_BYTES_PER_BURST 2
    #define DMA_REQUEST_PER_BURST 1
    #define DMA_SRC_BASE (CYDEV_PERIPH_BASE)
    #define DMA_DST_BASE (CYDEV_SRAM_BASE)  
    
    uint8 DMA_Chan;
    uint8 DMA_TD[1];
    
    DMA_TC_ISR_StartEx(DMA_TC_ISR);
    
    /* DMA Initialization - 2 byte per trigger. Each burst transfer
     * needs a new request. Set upper source and destination address. */    
    DMA_Chan = DMA_1_DmaInitialize(DMA_BYTES_PER_BURST, DMA_REQUEST_PER_BURST, 
                                 HI16(DMA_SRC_BASE), HI16(DMA_DST_BASE));    
     /* Allocate TD */
    DMA_TD[0] = CyDmaTdAllocate();
    
    /* Destination address is incremented after each transaction and 
     * Term out generated after the specified no. of bytes are transferred 
     * to memory. Tranfer the specified number of samples and generate 
     * term out */
    CyDmaTdSetConfiguration(DMA_TD[0], (2 * SAMPLES), DMA_TD[0], 
                            DMA_1__TD_TERMOUT_EN | TD_INC_DST_ADR);     
    
    /* Set source and destination address */
    CyDmaTdSetAddress(DMA_TD[0], LO16((uint32)ADC_DelSig_1_DEC_SAMP_PTR), 
                            LO16((uint32)ADC_sample));    
    /* Set the intial TD for the channel */
    CyDmaChSetInitialTd(DMA_Chan, DMA_TD[0]);
    
    ADC_DelSig_1_Start();
    
    /* Start the ADC conversion */
    ADC_DelSig_1_StartConvert();
}

That's all my settings. Is there a place I made wrong?

Best Regards

 

 

UART comunication PSOC 5LP

Viewing all 264 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>