PSoC™ 5, 3 & 1 Forum Discussions
text.format{('custom.tabs.no.results')}
Hi guys, I am going to try include a external SD2 (sigma delta 2ºorder) ADC on my device for sensing current load.
It is an fullbridge topology and i am trying take de load current measure.
Do you know it is could be possible use the digital part of orignal SD(inside Psoc) to decode the
I need for a external bitstream (1 bit, 20M): - circ3 filter implemented on the psoc.
- try to use the internal DIGITAL part of the original SD,
Could you say me something about bitstream decoder or cir3 filter implementation?
Thanks you for your time.
Show LessHello everyone
By reference to the first generation of PSoC (PSoC 1),the analog input range is 0-5 volt with AGND equal to 2.5v if Ref Mux=(Vdd/2)+/-(Vdd/2).
by using psoc 5lp , the range is [0-1.020]v or [0-4.080]v ???
also vref =1.020 as default, why that ?why my analog input shouldn't exceeded 4.080 v?
the range in psoc 1 is better than psoc 5,right ?
What is the equivalent of AGND in psoc 5lp ???This is a question in need of an answer.
the problem is :
i worked on psoc1 cy8c29466 with range 0-5 v and agnd=2.5 , i have implemented a big project using it and It works well, i want to development it by using psoc5lp cy8c5888 ,But there is a difference in input voltage range ,and AGND ??
please help
I have attached image about my project using PSoC1
Thanks in advance
I'd be eternally grateful if someone could help me out here. I am trying to write bootable application metadata directly to flash for an SD card based bootloader. The system has ECC disabled and uses a CY8C5888LTQ-LP097 (one of the USB stick parts). Whatever I seem to do with flash is failing.
Comments on the code are in-line. First is a snippet showing how writing metadata is tested, then the code for flashing the metadata structure itself.
TAIA
Jerry.
// structure to manage metadata as per http://www.cypress.com/file/44531/download P21 PSOC5_Metadata metadata; // fill with checkbyte memset(&metadata,0xEE,sizeof(PSOC5_Metadata)); // first get existing metadata. this works, we get valid numbers. uint32 length = Bootloader_GetMetadata(Bootloader_GET_BTLDB_LENGTH,0); uint32 checksum = Bootloader_GetMetadata(Bootloader_GET_BTLDB_CHECKSUM,0); // update using our own API metadata.ActiveApplication = 1; metadata.AppCheckSum = checksum; metadata.AppLength = length; metadata.AppAddress = Bootloader_GetMetadata(Bootloader_GET_BTLDB_ADDR,0); // status returns CYRET_SUCCESS status = UpdateMetadata(0,&metadata); // and check again. these values now come back as zero (!) length = Bootloader_GetMetadata(Bootloader_GET_BTLDB_LENGTH,0); checksum = Bootloader_GetMetadata(Bootloader_GET_BTLDB_CHECKSUM,0); // this (predictably) fails status = Bootloader_ValidateBootloadable(0);
// full row buffer uint8 metaBuf[CYDEV_FLS_ROW_SIZE]; cystatus UpdateMetadata(int appId,PSOC5_Metadata* metadata) { PSOC5_Metadata* pc = 0; cystatus status = CySetTemp(); if (status != CYRET_SUCCESS) { return status; } // size_t bytes = sizeof(PSOC5_Metadata); // clear buffer memset(&metaBuf[0],0,CYDEV_FLS_ROW_SIZE); // copy in metadata. See // memcpy(&metaBuf[0],metadata,bytes); // See AN60137 section A.3. Data is _not_ aligned to block start memcpy(&metabuf[CYDEV_FLS_ROW_SIZE - 64],metadata,bytes); // choose which row to update uint16 row = Bootloader_MD_ROW_NUM(appId); // Update metadata in flash status = CyWriteRowData(Bootloader_MD_FLASH_ARRAY_NUM, row, metaBuf); // CyFlushCache(); // sanity check ... pc = (PSOC5_Metadata*) &metaBuf[0]; // return status; }
Show Less
hi guy
when programing psoc chip like cy8c29466, and power it , there are a period to initialize it , it's about 150 millisecond , right ?
after this time,the generated signals inside psoc started to works .
okay,but at this period (150 ms ) what are the states of my pins ? it's low ,high, high Z , ...?
I need to know the state of it in this time (150 ms ) , i adjust it in PSoC Designer Device Editor , but it's same as i adjusted during this period ?
are there an application note explain the state of the pins during this period.
Question 2:Can I control the output of a analog pin and adjust it to what value for a period of time like i need to adjust a pin to 2.5 volt or 0 volt for a 20 second and then make this pins takes a value of a user models inside the chip ?
( i have a sine signal generated in side psoc on pin p0.1 but i want this output equals 0 for a 20 second, and after this period it's transferred to the sine wave signal output ?
I am trying to run a 16bit conversion from the Delta Signal ADC to the DFB using DMA. I have set everything up as best I can but I can not get the Filter Interrupt to fire. I have confirmed the DMA transfer is working by monitoring the DMA nrq output. I get pulses at 2khz which is the speed I am running the ADC.
I then loaded the example Filter_ADC_VDAC project and it fires the interrupt fine.
I use the DMA wizard initially in my project any it wants me to use Filter_1_STAGEA_PTR for the destination of the DMA transfer.
If I change this to Filter_1_STAGEAH_PTR like in the example project the interrupt starts to work. However, when I read the filter
Filter_1_Read16(Filter_1_CHANNEL_A);
it looks like the output is just random data. I am feeding a constant 2V to the ADC.
Does anyone know why when I set the DMA destination to Filter_1_STAGEA_PTR the interrupt no longer works?
The DMA wizard created this
CyDmaTdSetAddress(DMA_1_TD[0], LO16((uint32)ADC_AirSpeed_DEC_SAMP_PTR), LO16((uint32)Filter_1_STAGEA_PTR));
Is it wrong?
Here is the DMA config functions
uint8 DMA_1_Chan;
uint8 DMA_1_TD[1];
/* DMA Configuration for DMA_1 */
DMA_1_Chan = DMA_1_DmaInitialize(DMA_1_BYTES_PER_BURST, DMA_1_REQUEST_PER_BURST, HI16(DMA_1_SRC_BASE), HI16(DMA_1_DST_BASE));
DMA_1_TD[0] = CyDmaTdAllocate();
CyDmaTdSetConfiguration(DMA_1_TD[0], 2, DMA_INVALID_TD, DMA_1__TD_TERMOUT_EN);
CyDmaTdSetAddress(DMA_1_TD[0], LO16((uint32)ADC_AirSpeed_DEC_SAMP_PTR), LO16((uint32)Filter_1_STAGEA_PTR));
CyDmaChSetInitialTd(DMA_1_Chan, DMA_1_TD[0]);
CyDmaChEnable(DMA_1_Chan, 1);
Show LessI'm building a bootloader project that has 2 applications. The idea is to switch between application #1 and #2 at boot time.
The bootloader will be tasked with checking for new CYACD images and flashing those if present.
My understanding is that upon completion of any bootloader operations I can call Bootloader_Exit() to reboot into the selected application.
Where I am getting slightly confused is how to flash the device in the first place.
Does one take the .hex files generated by PSOC Creator and use the bootloader host to write all 3?
If this is the case, am I right in thinking that each application needs to have the correct image placement manually specified? If so does this override the 'applications are allocated an equal amount of flash space' note in the datasheet?
Or is it necessary to assemble a single contiguous image containing the bootloader and the 2 applications?
Any help much appreciated.
TAIA
Jerry.
Show LessHi there,
I got problem with interfacing Cypress SPI Master running on PSOC 5 Cortex-M3 MCU with Avalon-ST SPI Core running on MAX 10 FPGA Altera.
Any Suggests,
Show LessThe emWin library requires running GUI_Init() before calling any other GUI functions, but it takes 10 whole seconds to complete! This product cannot be released to the public until this bug is solved.
When I pause the debugger, I see the call stack is
main()
GUI_Init() <- emWin function, no source
LCD_Init() <- emWin function, no source
LCD_FillRect() <- emWin function, no source
... <- more emWin functions, no source
And the specific paused instruction is a Cypress generated function, LCD_1_Write, with an incrementing value (to fill the rectangle)
LCD_1_Write( 632341, 0)
LCD_1_Write( 632342, 0)
LCD_1_Write( 632343, 0)
etc.
Does anyone else have this problem? I don't know why it's filling the rectangle (I assume it's clearing the background, but I don't need that "help" and it shouldn't take 10 seconds to clear the screen buffers). I am using virtual screens in external RAM (480x272 LCD with 8 virtual screens).
Does anyone have any guesses?
Thanks!
Show LessHello,
To increase the overvoltage protection on an analog input pin, I would like to add external clamping diodes. Would it be ok to use the Onsemi BAV199L to add additional protection to the internal ones? Can anyone suggest a more sufficient model?
Show LessI have configured the three RX basic mailbox for which I am assigning the CAN ID (Extended ID)through code and trying to capture the data coming with these IDs in the CAN interrupt(CAN_ReceiveMsg()). It is storing some unknown data which is not at all on the bus. Also, observation is the IDs of the mailbox is getting change sometimes. Different from the ID which has been set through the code. It is taking some other CAN ID which CAN is receiving periodically on the bus.
Why it is storing unknown/junk data which is not at all on the bus from the desired basic mailbox ?
Is basic Rx mailbox can change it's ID by its own based on the messages coming on the bus?
Is using three basic mailbox is good way of design to capture data with three different extended CAN IDs and capturing data with these three IDs using ID filter in the interrupt?
Please respond.
regards,
Aditya
Show Less