PSoC™ 5, 3 & 1 Forum Discussions
My config:
I am using the 059 kit to program external highspeed SBI devices at 1.8V levels. I don't want to cut tracks or remove VDDIO series resistor so I am trying to use the SIO pins to lower the Voh to 1.8V. I am able to configure all of the P12 SIO pins using the Vref to 1.8V successfully and have working performance on all SIO pins except the I2C hardware dedicated pins P12[0],P12[1]. I get slow rising signals that go over the Vref level. In the documentation there is a comment about configuring the output drive to 25mA sink to configure the pin as an SIO but I have found this made no difference. I am correctly setting the drive level to Vref and I have a Vccd (1.8V SIO Only) reference in the design.
My Issue:
Are the I2Cx:SDA and I2Cx:SCL pins able to be reconfigured as standard SIO pins for other uses?
Thanks
Brian
Show LessI have a PCB with five PSoC5s on it. This means I have to have five programming connectors, and to program them all, I need to plug into each connector in turn.
Is it possible some way to program all five devices using only one connector? Perhaps I could just connect all the XRST, SWDIO and SWDCLK pins all together? Or is there some way to chain them?
Many thanks
Hugo
Show LessHello All,
I'd like to use the PSOC5LP in a new apllication where I need to design a CAN bus interface and several touch sliders.
My question is about the differences of the Capsense modules of PSOC4 vs. PSOC5. PSOC4 has a module with Version 7.0. PSOC5 is only 3.5.
Are there any big differencies in behaviour and quality of the modules or is the PSOC5 not supported anymore?
Kind regards
Andreas
Show LessHi there,
I need to be able to get control messages from the EP0.
I'm using a PSoC 5LP, and I can successfully read and Write USB messages on EP1 and EP2.
For compatibility reason I need to use the Endpoint 0 to configure the PSOC.
I have tried the following code, but is not working:
#define EP0 0
uint8_t NewUSBMessage()
{
uint8_t retVal;
retVal =0;
if (USB_bGetEPState(EP0)!= USB_OUT_BUFFER_EMPTY)
{
USB_ReadOutEP(EP0,Message,length);
retVal = 1;
}
return retVal;
}
Can somebody help me please? send me some example link, etc.
Thanks,
Francesco
Show LessI'm trying to help another user and decided to try my hand at using a Bootloader/Bootloadable project for the PSoC5LP (CY8CKIT-059) based on two example projects.
- USBFS_Bootloader - I downloaded using File/New/Project using the Target=CY8CKIT-059 and selecting "Bootloader" as the example projects.
- CE95391_USB_HID_Bootloader - I downloaded from https://www.cypress.com/documentation/code-examples/ce95391-psocr-usb-hid-bootloader
After following the instructions given in the example pdfs. I get a "successful" program of the kit. However going to "Bootloader Host" yields no acknowledgment of the VID=04B4 and PID=B71D. This is true even after holding SW1 (P2.1) while powering up through the USB port.
Apparently the VID=04B4 and PID=B71D are "installed" into my system (See snip of RegEdit screen)
However, no additional USB port shows up with this VID or PID when the USB port of the kit target is plugged in. (I do get audio notification of insertion and removal events). In the Device Manager no new USB device is displayed.
This is true whether I program in either Bootloader mentioned above.
I'm probably not setting something or forgetting something simple.
If I can get this to work, I can help others.
Len
Message was edited by:
Len
Update: Installed CySuiteUSB_3_4_7_B204.
Here is the "Descriptor Info" for this bootloader USB:
<HID_DEVICE>
FriendlyName=""
Manufacturer="Cypress Semiconductor"
Product="PSoC3 Bootloader"
SerialNumber="0001"
VendorID="04 B4"
ProductID="B7 1D"
Class="00h"
SubClass="00h"
Protocol="00h"
BcdUSB="00 00"
Usage="00 00"
UsagePage="00 01"
Version="30 01"
<INPUT>
RptByteLen="65"
Buttons="0"
Values="1"
<VALUE>
ReportID="0"
Usage="00 00"
UsagePage="00 01"
UsageMax="00 00"
BitField="00 02"
LinkCollection="00 01"
LinkUsage="00 00"
LinkUsagePage="00 01"
IsAlias="False"
IsRange="False"
IsStringRange="False"
IsDesignatorRange="False"
IsAbsolute="True"
HasNull="False"
StringIndex="0"
StringMax="0"
DesignatorIndex="0"
DesignatorMax="0"
DataIndex="0"
DataIndexMax="0"
BitField="00 02"
LinkCollection="00 01"
LinkUsage="00 00"
LinkUsagePage="00 01"
BitSize="8"
ReportCount="64"
Units="0"
UnitsExp="0"
LogicalMin="0"
LogicalMax="-1"
PhysicalMin="0"
PhysicalMax="0"
</VALUE>
</INPUT>
<OUTPUT>
RptByteLen="65"
Buttons="0"
Values="1"
<VALUE>
ReportID="0"
Usage="00 00"
UsagePage="00 01"
UsageMax="00 00"
BitField="00 02"
LinkCollection="00 01"
LinkUsage="00 00"
LinkUsagePage="00 01"
IsAlias="False"
IsRange="False"
IsStringRange="False"
IsDesignatorRange="False"
IsAbsolute="True"
HasNull="False"
StringIndex="0"
StringMax="0"
DesignatorIndex="0"
DesignatorMax="0"
DataIndex="0"
DataIndexMax="0"
BitField="00 02"
LinkCollection="00 01"
LinkUsage="00 00"
LinkUsagePage="00 01"
BitSize="8"
ReportCount="64"
Units="0"
UnitsExp="0"
LogicalMin="0"
LogicalMax="-1"
PhysicalMin="0"
PhysicalMax="0"
</VALUE>
</OUTPUT>
</HID_DEVICE>
I'm working on a project where I need 8 DC and AC (below audio range) voltage sources. The voltages are then converted to an appropriate range. The audio CODEC I wanted to use (8 out, 6 in) is expensive and I was wondering if PSoC 5LP can source 8 voltage sources? Again, DC and low frequency AC. Thank you fro your kind reply in advance!
Show LessHi, Can we embed the matlab file (MATLAB & Simulink Code Block Embedding) in PSoC? Best Regards
Hi,
I am working on the PSoC 5LP CY8C5888TPI-097 MCU galvanostat project, The project consists of a 3 Electrode system, to which
- The constant current source is applied between the Working Electrode and the Counter Electrode.
- The resultant voltage is measured between the Woking electrode and the Reference Electrode as shown in the figure.
Fig 1. Schematic diagram showing the three-electrode connection scheme between the electrochemical cell.
Fig 2 PSOC IDAC
For providing the constant current I am using IDAC and I am not finding a suitable example project on how the current source can be used between the two terminal devices with the PSoC examples. It will be really helpful if someone can guide me with how to deal with a current source in PSoC.
I came up with the following circuit connections, Is it the right way or any changes needed?
Figure. 3. one approach for the galvanostat
The attached project (UARTTest) has confounded me for days and I’m hoping that someone in the community can put fresh eyes on it and help me see the (probably obvious) error in my ways. Although part of a much larger project, I’ve isolated the troublesome bits in a simple-as-possible demonstration project.
SCENARIO:
I have a PSOC 5LP host that communicates via a single UART to a touchscreen display. The host sends commands to the display that the display confirms with one of 4 possible responses:
- “>” indicates SUCCESS.
- “!” indicates a SYNTAX ERROR
- “#” indicates a CRC ERROR
- ":" indicate human readable information (for debug).
OBJECTIVE:
For this test/demonstration I only want to SEND commands from the host, and wait for a SUCCESS response (indicated by the “>” prompt) before doing anything else.
When commands are RECEIVED asynchronously from the display as will be the case with user input, the host will dispatch each command to a unique handler that will respond by sending an instruction response (another command string) to the display, and again wait for the SUCCESS prompt before doing anything else.
DEMONSTRATION:
For testing, I use a terminal emulator (RealTerm) to emulate the display. I have attached a screenshot of a complete session to illustrate how it works— and the problem.
The simple project attached initializes a UART then:
- The host SENDS a single command string to the display and waits for a SUCCESS response.
- I (as the display) send the SUCCESS response (“>” without quotes, followed by a CR).
- The host SENDS a second command string to the display and waits for a SUCCESS response.
- I send the SUCCESS response.
- The host SENDS a third command to the display and waits for a SUCCESS response.
- I send the SUCCESS response.
Up to this point, all works well and as intended. The host has no problem sending the commands strings out via the UART, and will wait indefinitely for the SUCCESS response before doing anything else. However, if I then send a command TO THE HOST from the display, things don’t work so well. Continuing…
- I send a command— “c1” (without quotes, followed by a CR).
- The ISR is triggered and the host sends an INCOMPLETE command string in response.
What I expect to be returned is “Response to Command 1\r”. Instead, all I get is the first 5 characters (“Respo”) and nothing else.
After that happens, the program appears to be dead. Nothing else happens. The host will not respond to any other prompts or commands. Pausing code execution with the debugger, I find program apparently stuck in the while() loop that waits for the SUCCESS response. This indicates that it is waiting for a success response for the command it didn’t finish sending.
OBSERVATIONS & QUESTIONS:
1) The documentation and code comments for the UART API function UART_1_PutString() (used in my function SendTXCommandWait() to send the command strings to the display) all say that UART_1_PutString() is a blocking function and will not return until the last character is sent. However, the code seems to continue executing and enters the while loop before the entire string is sent.
2) Because the program is then waiting for the SUCCESS response, it is acting as though the entire command has been sent, although it has not. Because it has not, no success response will ever come from the display.
3) I’ve suspected some interrupt might be interrupting the sending of the command, but the only interrupt I’ve implemented is the ISR for the UART RX. That doesn’t call SendTXCommandWait() until a complete and properly terminated command string has been received from the display, and no other RX occurs until after that command would be successfully sent and received by the display, so I don’t see how it can’t be the RX interrupt and I can’t figure out what else might be disrupting the sending.
If experience is a guide, the problem is ME. I’m a little afraid to even submit this because I don’t look forward to learning what amateurish error I’m committing. And yet, I’ve spent days (and long nights) trying to figure this out with no joy. I’d be grateful for any feedback and suggestions for what might be causing this behavior-- especially if it means (and I imagine it does) that I'm about to learn a really valuable lesson.
A FEW ADDITIONAL NOTES:
- I will add retries, timeouts, etc. and have, but removed them all the have a simpler example for troubleshooting.
- I use sprintf() to prepare commands sent from the host because although this example is much simpler, in the real application most of them are dynamically created and it allows me to parameterize and format them easily as they are constructed.
- UART is configured as 115200 baud, 8N1.
- All commands whether sent by the PSOC host or the display must be terminated with a Carriage Return (0x0D).
Thank you!
Denver
Show Less