PSoC™ 5, 3 & 1 Forum Discussions
text.format{('custom.tabs.no.results')}
SampathS_11 Can you please help me to know what is communication distance of the Power Line Communication using CY3274 Development kit and what are the corresponding baud rates for the given distance of communication?
Regards,
Abhijeet
Show LessI would like to measure temperature on my system using a thermistor. Can I connect the Vhi and Vlow to Vdd and '0' internally on PSOC to save two GPIO?
If yes, how it will affect the measurements accuracy?
Many Thanks!
Show LessI am using several CY8CKIT-059 's in my project. On one (my Master) I use the UART on the KitProg end. On the other 8 (Slaves), I do not need the UART. I removed the KitProg from the target boards and installed 5 pin m/f headers so I can program them. That works. But I cannot use the UART. Should I be able to use it if I reconnect the KitProg with the 5 pins inthe header?
On the slaves I had used the UART for debugging but I do not need it. When I removed the KitProg, I found they would not operate correctly until I removed references to the UART from my code. Is that normal?
I noticed that when I snapped the KitProg from the board, there appeared to several PCB traces in addition to the obvious 5 pins. I cannot find an accurate schematic of the boards. Are ther more than the five connections between the target an dprogrammer?
Show LessI'll start off with what I'm trying to do: I have a MAX11200 ADC that I'm interfacing with via a SPI Master in full duplex mode (using a CY8C3866PVI-021) and am attempting to get readings from. The ADC has a !RDY/DOUT line which is configured as high impedance when it is not selected via !CS. When the device is selected via !CS, the line drives high if no data is ready, and low if data is ready. Data is clocked out on the !RDY/DOUT line on each falling clock edge. This can be seen in the following image, from page 13 of the manual:
My issue occurs when I perform a register read from the ADC. When I select the device via !CS, the !RDY/DOUT line goes high to indicate that data is not ready to be sent from the device. However, because my SPI master sees a logic high signal on MISO while !CS is low and clock pulses are being sent out, it sees this as a valid transaction and stores the byte. This means that every time I send an address/command and read data back, I receive two bytes of data- 0xFF (or 0x00 if data is already ready), and then my actual data. See below for an example of this where my SPI RX buffer would contain 0xFF 0x02 instead of the desired 0x02:
What I'd like to do is either disable the MISO line on my SPI block when I'm not actually trying to read data, or find a way to set it to high impedance so that my SPI block doesn't see anything on the line. I could throw away the first byte of data that I read when parsing results, but I'd prefer to find a more robust way of handling the issue. The only buffer I can find with an enable signal is bufoe, which is meant to be used to drive output pins. I suppose I could pass the MISO pin to a bufoe, feed it out on another pin, then feed it back in on another pin which actually goes to my SPI block, but this seems roundabout and wasteful. If I do something like AND the MISO line with a control signal, I'm still stuck at either logic 1/0, which the SPI block will see as valid data.
Can anybody suggest a more sane/simple solution to ignoring the ADC's output line until I'm actually trying to read data from it? Thanks!
Show LessI've been using Creator 3.1 SP3 on a WinXP machine developing code for PSOC4200. This setup is working very well.
I've purchased Kit-059 with a 5LP. To make Creator aware of Kit-059, I need to run CY8CKIT059SetupOnlyPackage, compatible with Creator 3.1. The only setup version I could find at Cypress is for Creator 4.2. I do not wish to upgrade to Creator 4.2.
Where can I download CY8CKIT059SetupOnlyPackage for Creator 3.1? I suspect it's in an archive somewhere.
Thanks,
Bill
Show LessHello everyone,
I have recently come across PSoC 5LP. I am working on a project where I have to generate three frequencies to run the TCD1304DG CCD. The three frequencies are Master Clock (2 Mhz), Shift Gate (SH-Pulse) and Integration Clear Gate (ICG). I am able to generate 2 MHz from the master clock and I can also use the PWM function but I am unable to the specific clocks and delays given in the figure below.
This translates to the following:
- SH must go high with a delay (t2) of 500 ns after ICG goes low.
- SH must stay high for (t3) a minium of 1000 ns.
- ICG must go high with a delay (t1) of 5000 ns after SH goes low.
I have used several codes that are available online for Arduino Uno and Arduino Mega ADK but I want to use my PSoC 5LP. I would appreciate your help guys. Cheers.
Zaryab
Show LessHi,
we use 3 ppm/K external 1.024 V reference to drive P0.3 and P0.6 with 16-bit DelSig, Voltage Range = 1 V (ext ref).
However since we have a multi-channel system, which requires MUXes (high-resistant switches) inside the PSoC analog routing matrix, we are forced to use the Buffered mode, which has specs (data-sheet page 88):
- Gd: Buffered, buffer gain = 1, Range =±1.024 V, 16-bit mode: 50 ppm/K (max)
- TCVos: Offset | Buffer gain = 1, 16-bit, Range = ±1.024 V: 1 uV/K (max)
Our problem is this 50 ppm/K (max) drift, since it does not justify the use of the external reference, as it is the major contributor of the error, and the unbuffered ADC mode cannot be used due to too high impedance of the analog routing switches.
and we have measured the gain drift, that includes 3 ppm/K (max) of the Vref, on a particular sample to be (negative):
- -16.1 ppm/C (measured as V_ADC - ReferenceVoltage)
Questions:
- For the same analog routing configuration and working conditions, how much of this gain drift is expected to be different (dispersed) across different samples, and on long-term?
- Since we're using the external reference, do you see any possible way of compensating the gain drift with the external reference; as measuring it directly on some other pins is somewhat impractical (since the voltage may be at max and may saturate over, and it is not wise to add noise to the ref pins either), then the ext. Vref cannot be bypassed to some analog pins, or being internally divided, ... everything shows like it would require another external reference to sample this reference, or that internal reference is used and to sample external, however, when on same pins, bypass cap cannot be used, which would induce higher noise, and the other by-pass pins are already occupied in our case.
BR Uros
Show Less(By the way, please don’t say to look at the examples – I have they I cannot see how they cover my situations as described below.)
I am trying to communicate with an MAX3421E (USB Host controller chip) using an SPI (master) component. The bit rate is 3MHz with 8-bit values. At this stage, I'm writing this as a polled interface - at some time in the future (as the project grows) I'll probably need to move to an interrupt driven approach.
There are two situations that I need to handle:
1) I need to read/write individual registers which means that I need to write a command byte and then either a value or dummy for the register value to be written or read.
2) I need to read/write a FIFO with up to 64 values (plus a leading command byte)
In the first case, I receive a 'status' value back as I send the command and, when reading a register, I will receive the register value with the 2nd byte.
In the second case I need to send the command (I can ignore the status value in this situation) and then send or receive up to 64 values from/to memory. When writing my values to the slave, I don’t need anything back so I’m OK with overflowing the FIFO. However I do call “xxx_ClearRxBuffer” afterwards to make sure it is clear before anything else uses the SPI component.
For both cases, I'm using the "xxx_PutArray" function to write the values to the SPI component and the only functions that seem to apply to read the values are "xxx_GetRxBufferSize" and "xxx_ReadRxData".
From what I understand, I need to ensure that there are always values to send to ensure that the \SS\ line stays low for the entire transaction (however many values long)
I have tried using the SPI component both with and without the software buffer and I'm getting different issues with both approaches.
Without the software buffer (using the 4 value FIFO for both Tx and Rx), I can send the 2 values for case #1 and I can receive the status and 2nd value OK. However, for case #2, I *think* it is OK for writing multiple values to the chip's FIFO but I have no idea how to read back the values.
So Question #1: What is the correct way to read back the received values when there are more than will fit into the FIFO.
My trials show that I seem to be able to use this configuration to send my 65 values and the slave gets these OK. However I will certainly overflow the 4-value FIFO. In the situation where I’m trying to read the values back from the I will need to somehow get the values form the FIFO *while* the other values are being sent.
Therefore Question #2: how can I ensure that the \SS\ line is kept low while sending multiple values to the slave AND reading back the received values?
To try to get around the above limitation, I tried using a 65 value software buffer for both Tx and Rx. In case #1 (i.e. 2 values exchanged) I seem to need to look at both the “xxx_GetRxBufferSize” function value (which always seems to be 0) and the “xxx_ReadRxStatus” (and the xxx_STS_RX_FIFO_NOT_EMPTY bit) but that tells me a value is available – but fails to say there is a 2nd value received. It is as though the software buffer is not used for receiving as both values fit into the FIFO but I only seem to be able to read the first!
So, Question #3: how should you read fewer values (i.e. that will fit into the FIFO and not need the software buffer) when the software buffer is enabled?
Which also leads to Question #4: Is the only option to not use the \SS\ output of the device and manually handle this output pin in my code? Alternatively are there APIs that let me manipulate the \SS\ manually?
Thanks
Susan
Show Less
Once upon a time, when "mouse" meant a rodent.
A computer was not something to carry in a bag, and I was in love with my HP2626 terminal.
If you wanted to put a letter at arbitrary location on the screen, which was only 80 letter x 24(or 25) lines though, we had to use something called "Escape Sequence"
And thanks for the pre-standard era, we often needed to peek a file called "termcap" in the /etc.
Among the plenty of dialects of "Escape Sequences", the one from the DEC called "VT100" seems to be the survivor.
And even in this 21st century, not a few terminal programs are supporting archaic VT100 Escape Sequence!
Anyway, time to hack!
This is my implementation of V100 Escape Sequence.
Note: As usually I set my TeraTerm background to White, the default foreground was set to Black.
If you are using Black for the background, you need to set the foreground to White.
To do so, in the main.c comment line which does not fit your need and uncomment line which fits
int default_foreground = VT100_BLACK ; // if your terminal's background is white
// int default_foreground = VT100_WHITE ; // if your terminal's background is black
When built and started the program will show
Then a few basic math graphics will be displayed
Followed by a simple screen layout demo with colors.
moto
Show LessDear community,
As already discussed in DMA Wizard prohibits linking 8-bit SAR ADC to 8-bit VDAC there is an option to change the DMA capability file of the SAR ADC to obtain 1 byte burst. With the help of the component author guide and some videos on how to create component project libraries, I am still none the wiser on how to change the DMA capabilities of the SAR ADC. Would someone be so kind as to point me in the right direction, such that I can use a SAR ADC in combination with a VDAC? The project I want to test this with has been added.
I thank you very much in advance.
Jim
Show Less