PSoC™ 5, 3 & 1 Forum Discussions
I'm trying to automate loading of firmware on a device via SWD. In order to do so, I'm running the CLI tool from a Windows CMD prompt. Everything starts fine but when I try to "Program" the device I get this error:
"Device is not in ISSP mode"
I try to set the device to program via SWD (SetProtocol 😎 but this does not seem to work. Is there some kind of trick I need to use to get this to work? The process works fine from the PSoC Programmer UI. When I try to script the process using the "runfile" command rather than typing into the CMD prompt I get the same error.
EDIT: This is with PSoC Programmer 3.24.4
Show Lesshi, i am using CY8C29466-24SXI kit, and i am trying to convert the RPM speed of motor to a frequency from the monitor "n", i have problem with the code, the output is constant and should change when i change the speed of motor
the equation should be : Freq(monitor) = [n ( speed[rpm]) * Zpol ( which is 😎 ] / 20
thanks
Show LessIm developing an app with CY8C27143
It uses all 8 digital user modules
I wanted to test adding a Comparator user module
So I just added the Comparator and generated the code for that configuration and the app stops working.
Trying to trace the fault I just unplaced the user module (Comparator) and regenerated configuration code, the app worked again.
Then i removed Comparator module totally and added a PGA UM (just for testing if analog side had a problem), generated code and same, app stops working!
Then removed one of the digital user modules, removed referent code for that UM , leaving the PGA UM in schematic and generating configuration code.
App works again!
So adding a 9th user module seems to be the fault??
Can anybody help in what i´m doing wrong or how to trace the problem?
Thanks in advance
Luis
Show LessI've been playing with the Sparkfun FreeSOC2 for about a day, and everything was going well, but now it's "stuck" and I can't enter debug.
I can program the device, but after that I get a message "The start request failed. Encountered error (SetTarget timeout)"
Tried resetting the board, power cycle etc.
How do I recover?
Show LessHello,
I want to read exactly what is on the MISO line right after it is transmitted. What is the method for doing this? For example I send 0x9700 over MOSI and then the MISO that comes back should be 0x0C04. I want to capture this 0x0C04 right when it comes in
Show LessHi 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 Less