Product Forum Discussions
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)
Recent discussions
I use PSOC3 to do ADC->DMA ->Memory to sample my analog input data then post- processing my ADC data.
ADC( 300K sps, 10 bits) Memory (xdata, ADC_data[300]).
I try to modify some c codes from DMA example projects, but I did not get right sample data from ADC.
Here is my c code:
ADC_DelSig_1_start();
ADC_DelSig_1_start_convert();
Isr_start();
MyChannel=DMA_DmaInitialize(2,1,0,0);
Td=CyDmaTdAllocate();
CyDmaTdSetConfiguration(Td,2,Td,TD_INC_DST_ADR|TD_TERMOUT0_EN);
CyDmaTdSetAddress(td,ADC_DelSig_1_OUTSAMP, (uint16)&ADC_data[0] );
CyDmaChEnable(MyChannel,Td);
CyDmaChSetRequest( MyChannel,1);
Anyone knows how to do it?
Thanks,
Will Show Less
I use PSOC3 to do ADC->DMA ->Memory to sample my analog input data then post- processing my ADC data.
ADC( 300K sps, 10 bits) Memory (xdata, ADC_data[300]).
I try to modify some c codes from DMA example projects, but I did not get right sample data from ADC.
Here is my c code:
ADC_DelSig_1_start();
ADC_DelSig_1_start_convert();
Isr_start();
MyChannel=DMA_DmaInitialize(2,1,0,0);
Td=CyDmaTdAllocate();
CyDmaTdSetConfiguration(Td,2,Td,TD_INC_DST_ADR|TD_TERMOUT0_EN);
CyDmaTdSetAddress(td,ADC_DelSig_1_OUTSAMP, (uint16)&ADC_data[0] );
CyDmaChEnable(MyChannel,Td);
CyDmaChSetRequest( MyChannel,1);
Anyone knows how to do it?
Thanks,
Will Show Less
Hi all,
i am relatively new to Psoc development pardon my ignorance.
i am working on integrating accelerometer with the development kit.
after consulting several experts' advice from this forum, my setup was working quite fine. however i met with some issue about the conversion from 8bit to 16 bit of the ADC use.
sample project which i use to reference,
1) ADC Channel Scan with Software - http://www.cypress.com/?rID=38799
2) UART sample project- http://www.cypress.com/?id=2232&rtID=113
code:
char OutputString[36];
char zout[10];
char yout[10];
char xout[10];
sprintf(zout,"%x",iAdcValue[0]);
sprintf(yout,"%x",iAdcValue[1]);
sprintf(xout,"%x",iAdcValue[2]);
strcat(OutputString,zout);
strcat(OutputString,"y:");
strcat(OutputString,yout);
strcat(OutputString,"x:");
strcat(OutputString,xout);
strcat(OutputString,"@");//to indicate end of one set of conversion
UART_1_PutString(OutputString);
as the ADC channel scan is working with a 8bit ADC, i tried to setup the project and it looks ok when it display on the LCD and hyperterm.
however there is a slight issue when it display on the hyperterm, the value of what i see from the LCD and the hyperterm tally, but when it send out through the serial port using UART, the value show on the hyperterminal something like:
eg z:aa1fy:bb1fx:cc1f;
there is always a 1f follow behind each value.
next,i wish to change the ADC resolution to 16bits.
changes i made to the default ADC scanning example project:
-change the ADC resolution to 16bits.
-change the voltage reference to 2times which now is 2.048V.
-change the ADC_DelSig_1_IRQ.c files, under the function
"CY_ISR(ADC_DelSig_1_IRQ_Interrupt)"
iAdcValue[iIndex]=ADC_DelSig_1_GetResult8(); to iAdcValue[iIndex]=ADC_DelSig_1_GetResult32(); ==> cause the data sheet indicated that if i use 16 it will return me signed 16bit result.
i cant print out properly on the LCD screen as i do not really catch the below method of displaying
LCD_Position(iChannel/4,((4*iChannel)%16));
LCD_PrintInt16(iAdcValue[iChannel]);
iChannel=(iChannel+1)%3;
thus i use a hyperterm to check the output,
it always show as:
eg z:aa20y:bb20x:cc20;
now there is always a 20 follow behind each value.
i was wondering why it never return me a 4 hex value?
why there is either 1f tag behind each value of the 8bit ADC output, and 20 tag behind the 16bit output?
please help.
any help will be greatly appreciated.
I'm using a DAC but my dac has an offset of 120mV. I use it on a freq about 750kHz. I tried to lowe this but that does not improve anything. I did use the MDAC8 instead of the DAC8. Can someone help me? Show Less
Can you guys point me to some links where I can find getting started documents/reference designs etc.
I have used the MAX3420E Full speed usb interface chip. I am not sure how it compares with Ez USB other than speed, like coding complexity etc.
I used an FPGA to program/configure the MAX3420. I think cypress has a chip without the 8051, which is meant to be interfaced with FPGAs, uC etc.
I am trying to decide between the chip without 8051 and with 8051.
what tools do I need to program the 8051.
Thanks for your patience.
Show Less
As reference to AN45789 "Using Cypress nvSRAM as Program Memory"
Does that work to use cy14b256la as the one to cy7c68013a?
Or any other way that will be more suitable for cy7c68013a.
thanks
Allan Show Less
I'm busy with a project that uses the DAC8 module and also uses the UART for communication with a PC. For debugging i have the MCU generate a square signal using the DAC. The DAC changes the polarity every 5msec. I see that when i send or receive data using the UART that the DAC signal has interference somehow. There are needles on my output signal. Does anyone have a idea how this is possible? Show Less
The program is very simple, I use a SPI mater talking to a SPI slave device. The device responsed one byte of data, but I couldn't get it from the SPIM_1_bReadRxData() function.
while(1)
{
output_low(port0,pin6); //Set the chip select /CS
txdata = 0x8F; //Slave device register
while(!(SPIM_1_bReadStatus() & SPIM_1_SPIM_RX_BUFFER_FULL)) {};
SPIM_1_SendTxData(txdata); // send the read command
SPIM_1_SendTxData(0xA3); // send the dummy byte to clock the rx data from the slave device
while(!(SPIM_1_bReadStatus() & SPIM_1_SPIM_RX_BUFFER_FULL)) {};
rxdata = SPIM_1_bReadRxData(); // read the first byte , dummy data generated by the first byte sent
PRT1DR = rxdata; // put it on port 1 so I can see the data;
rxdata = SPIM_1_bReadRxData(); // read the real data
PRT2DR = rxdata; // put it on port 2 so I can see the data;
output_high(port0,pin6); //Set the /CS to high
}
I set up all the I/O ports, operating mode 0 correctly, I can see all the data lines and the slave device responsed correctly on a scope too.
But the port 1 and 2 do not equal to the rx data. In fact, all lines are low. When I just remove the MISO line, the lines go high because of the pull-up on the MISO line. Meaning it read something, but not the data from the slave device
Any body can help? Can't find any good examples on the SPI bus and the example from Cypress is very poor.
Thanks. Show Less
Does anyone knows how does the calculation of the ClacTime(equation 9) in the datasheet of the ADCINCVR (Pg4 of 28) works?
The datasheet states that the CalcTime is equivalent to 180 CPU cycles and must be express in terms of dataclock.
I assume if my CPU_Clock is SysClk/8=24Mhz/8=3Mhz,
my DataClock=VC1=SysCLK/N=24Mhz/12=2Mhz, does that mean that
the CalcTime =[180*/(3Mhz)]*2Mhz = 120 DataClock cycles.
Does the DataClock mention in the datasheet mean VC1,VC2 and VC3 which you chose to clock the ADCINCVR?
What units are the terms in equation 8 using?
Sampling Rate=hz?
DataClock=hz or seconds?
CalcTime=seconds or Dataclock cycles?
Please help Show Less
PsOC programmer it tells me:
"Programming Terminated
Check Device/Family Setting or Programming Mode
Acquired Device "Silicon: 001B, Family/Die: 17, Major Rev: A" does not match chosen Device
Matching Devices:
CY8C24994-24BVXI
CY8C24994-24LFXI
CY8C24894-24LFXA
CY8C24894-24LFXI
CY8C24794-24LFXI
CY8C24094-24AXI
>>>Program Requested
MINI Version 1.73
MINI Version 1.73
"
It only lets me to program 5 devices.
Thats due to my startkit PsOC chip limitations or due to
the PsOC Programmer 3.10.
By the way somebody knows how I can learn how to edit
the main.c source file. I saw many libraries in the examples and I can't see all
of them in the library folder.
I know C but it's not very intuitive what I have to do to program my devices.
Thanks Show Less