PSoC™ 5, 3 & 1 Forum Discussions
Cypress Semiconductor has completed a hardware update to the Miniprog3 to address hardware issues seen with programming, ESD, and power management. The Miniprog3 *B programmer will be available through the Cypress Online Store and the Miniprog3 web page:
www.cypress.com/go/CY8CKIT-002
The Miniprog3 revision, either *A or *B, is indicated using sticker on the back of the programmers. PSoC Programmer software has also added the ability to detect which revision is connected. The following are a list of updates made to the Miniprog3 *B programmer.
Updated Hardware to Improve Power Cycle Programming:
The Miniprog3 hardware has been updated to better improve power cycle programming for all PSoC devices. It was discovered that the Miniprog3 *A programmer revision did not correctly implement the power cycle programming methodology. Due to this issue the Miniprog3 *A programmer could not correctly support power cycle programming for PSoC 3 and PSoC 5 devices. This specifically impacts customers who do not route out the XRES line to the programming connector or disable the optional XRES line on certain devices. The *B revision of the Miniprog3 will support power cycle programming for all PSoC 3 and PSoC 5 devices.
Over-current and Non-Polarized Connection Issues:
There are known electrical risks to the Miniprog3 *A revision that have been addressed with the *B update. To address the electrical issues the Miniprog3 *B programmer has added ESD over-current protection to the USB lines and has added electrical protection to the 5 and 10-pin connectors in case of a reverse polarity condition.
Improved Voltage Detection Capabilities:
The Miniprog3 *B programmer has been updated to improve the voltage detection capabilities. The Miniprog3 will measure the target voltage within an accuracy of 20 mV for a range of 1.8V – 5.0V.
Supported Software:
The Miniprog3 *B programmer is supported on the latest release of PSoC Programmer. To download the latest release, please navigate to the PSoC Programmer web page:
www.cypress.com/go/psocprogrammer
If one needs additional device support please file a tech support case so that your request can be expedited.
www.cypress.com/go/support
Cypress Semiconductor has completed a hardware update to the Miniprog3 to address hardware issues seen with programming, ESD, and power management. The Miniprog3 *B programmer will be available through the Cypress Online Store and the Miniprog3 web page:
www.cypress.com/go/CY8CKIT-002
The Miniprog3 revision, either *A or *B, is indicated using sticker on the back of the programmers. PSoC Programmer software has also added the ability to detect which revision is connected. The following are a list of updates made to the Miniprog3 *B programmer.
Updated Hardware to Improve Power Cycle Programming:
The Miniprog3 hardware has been updated to better improve power cycle programming for all PSoC devices. It was discovered that the Miniprog3 *A programmer revision did not correctly implement the power cycle programming methodology. Due to this issue the Miniprog3 *A programmer could not correctly support power cycle programming for PSoC 3 and PSoC 5 devices. This specifically impacts customers who do not route out the XRES line to the programming connector or disable the optional XRES line on certain devices. The *B revision of the Miniprog3 will support power cycle programming for all PSoC 3 and PSoC 5 devices.
Over-current and Non-Polarized Connection Issues:
There are known electrical risks to the Miniprog3 *A revision that have been addressed with the *B update. To address the electrical issues the Miniprog3 *B programmer has added ESD over-current protection to the USB lines and has added electrical protection to the 5 and 10-pin connectors in case of a reverse polarity condition.
Improved Voltage Detection Capabilities:
The Miniprog3 *B programmer has been updated to improve the voltage detection capabilities. The Miniprog3 will measure the target voltage within an accuracy of 20 mV for a range of 1.8V – 5.0V.
Supported Software:
The Miniprog3 *B programmer is supported on the latest release of PSoC Programmer. To download the latest release, please navigate to the PSoC Programmer web page:
www.cypress.com/go/psocprogrammer
If one needs additional device support please file a tech support case so that your request can be expedited.
www.cypress.com/go/support
I am trying to interface the TMP141(Datasheet,in PDF) temperature sensor that uses a 1 wire protocol,(quite similar,_not_ identical though.. to the one from Dallas Semi.) with the PSoC 3.(030)
So I wrote code to do 8-bit reads,and 16-bit reads.Heres the funny part.
While I can read 8bit registers flawlessly(i.e the expected defaults are read in consistently),the 16bit registers are giving me a headache.
If I do a 16bit read,on register address 0x01(Manufacturer ID- Expected 0x104C),all I get is 0x004C.Similarly,if I do a 16bit read on register address 0x08(Temp. Capabilities - Expected 0x014A),what I get is 0x004A.Where is half my data going?
But wait,there is more.If I do an 8bit read on a 16 bit register,like on register address 0x01(Manufacturer ID- Expected 0x104C),I do get the elusive 0x10.
It cant be an issue of the wrong drive mode(currently is Hi-Z),or pull-up resistor,since the 8bit reads come in with no issues at all.Also,since the 16bit and 8bit read functions use the same underlying Bit Read/Write functions,they cant be bad either.So whats going wrong? I am not able to locate the fault.
I'm attaching my code,but note that I use breakpoints to debug,so the main() has nothing much really.I usually place a breakpoint on the TMP141_Read16()'s return line,and watch the local register values.
Show LessInterrupts are an important part of any embedded application. They free the CPU from having to continuously poll the occurrence of a specific event and, instead, notify the CPU only when that event occurs. In system-on-chip (SoC) architectures, such as PSoC 3 and PSoC 5, interrupts are frequently used to communicate the status of the different on-chip peripherals to the CPU.
Unique Features of PSoC 3 and PSoC 5 Interrupts
PSoC 3 and PSoC 5 provide the following enhanced interrupt features that are not supported by the other traditional microcontrollers:
- Configurable Interrupt Vector Address: In PSoC 3 and PSoC 5, you can dynamically configure the interrupt vector address. The CPU execution can be directly branched to any ISR code when the interrupt occurs. In traditional microcontrollers, the interrupt vector address is fixed for each interrupt line. Typically, a JUMP instruction is placed in that fixed address to branch the CPU execution to the actual ISR code. This unique feature reduces the interrupt execution latency in PSoC 3 and PSoC 5 compared to the traditional microcontrollers.
- Flexible Interrupt Sources:In traditional microcontrollers, the interrupt source is fixed for each interrupt line. PSoC 3 and PSoC 5, give you the flexibility to choose the interrupt source for each interrupt line. This flexible architecture enables any digital signal to be configured as an interrupt source.
Interrupt Support in PSoC Creator
PSoC Creator supports interrupts by providing them as a component. The Interrupt component is available under the System tab in the Component Catalog window as shown infigure below. Each instance of the interrupt component is an interrupt line. The interrupt source should be connected to the interrupt component in the schematic.
For more information on interrupts in PSoC3 and PSoC5, please refer Application note AN54460 PSoC3 and PSoC5 Interrupts, which introduces you to the interrupt architecture, and explains the support for interrupts in the PSoC Creator Software, the development tool for PSoC 3 and PSoC 5. Advanced interrupt concepts such as handling re-entrant functions and fixed function interrupts are also explained in detail. Code examples are provided to explain the different use cases of interrupts. Please access the application note webpage for document and zip file containing the example projects.
Hello,
I'm going to use a 2,8V littium battery in order to supply the PSoC3 core with 1,8V through its own internal Analog and Digital Regulators.
In my application I want to achieve very low consumption. Therefore, I would like to use the Power management modes such sleep, hibernation etc.
I have just read the datasheet and the PSoC3 has 1 Sleep Regulator and 1 Hibernate Regulator but, unfortunately, there is no description for them in it.
Could any one tell me how do they work? For example, when PSoC3 is in sleep mode, does the Sleep Regulator into operation inmediately delivering the 1,8V? And the same for the Hibernation?
Thanks in advance.
Show Less我这两个月连续用坏了两个Mini Prog3 ,都是在烧写程序时坏的,想知道为什么,坏了的原因是VTARG 与GND 短路了,有没有什么解决的办法啊?
I would like to have a word to all those newbees who are going to start or already started with a PSoC1 kit and now try to dig into the system.
The kits for PSoC1 are cheap and versatile, they offer a great usefulness and with that software they are supplied with - really great.
Very easily one of the examples is compiled, programmed and run - and lo! It works!! Great!!!
Now for the very first own design: often there was a problem in mind to solve with a PSoC1 and now the newbee starts to engrave the solution into silicon.
The required modules are placed, the routing of the inputs and outputs are done, though a little bit complicated and not so easy to understand.
Now it comes to the moment where main() has to be filled with some C-code. The progam is compiled and programmed and
It doesn't work
Now the nowbee (you) sits and stares first at the black housing of the unwilling silicon and then onto the bright shining monitor that holds the clearly commented code indicating precisely what it should do.
But it doesn't
Well, what we need now is a way of indicating precisely what is going on inside that intransparent plasic housing, from one of the existing examples, the LCD module (did you buy a kit with an LCD? If not, only the LEDs are left.) and code is imported and on the right place some output to the LCD is made. Compiled, programmed
There is no output on the LCD
Now the newbee (you) starts to put the instruction to write something (stupid like "Here I am") to the LCD just below the LCD's initialization code and then (after a program change, compiling, programming) down 1 line and again and again and again... until you come to such a stupid newbee-error like
if (MyValue = 0)
DoSomethingUseful();
where you realize that not only the "if" is always false, but the original value of "MyValue" is spoilt and now contains zero.
This is not the only newbee-error that will trap you, there are pitfalls over and over.
So what to do? Well, I cannot prevent you from making errors (make them, but learn from them) but I can give you some hints to save time to detect them.
PSoC1 does not have the ability to be controlled with a debugger. PSoC3 and PSoC5 are! When you have a PSoC3 or 5 Kit, you can controll the software, have it run it step-by-step, look at the values of variables and even change them at your need.
You want to do that with a PSoC1? Yes, but it costs you a fortune compared to the price of your kit. The magic word is "ICE-CUBE", an in-circuit-emulator which is THE solution when you are designing for PSoC1 (if you're designing professionally, the ICE-Cube is a "must"!). I've got one and it works, I'm very pleased with it and it definitively helped me out of many pitfalls (yes, I didn't leave any of them unfallen into) making my programs error-free. This would NEVER have been possible with LCD-messages and/or blinking LEDs, the programs where too complicated.
What else can you do?
There is a kit containing a comfortable motherboard and 3 processor modules with a PSoC1, 3 and 5 for a (very!) reasonable price, but of course more expensive than any of the "first touch" kits. But it gives you the chance to test vivid parts of your program with a debugger before you use them on a PSoC1. This, together with a clean style of programming, will help you to develop even complex applications for the small and cheap PSoC1 while not limited to it.
Why do I write this? I was a newbee myself and when I started with PSoCs I was one again. Furtunately I had the money to spend and bought an ICE-Cube initially with a PSoC1 kit.
In very former times (once apon a time...) I saw people starting to learn programming with BASIC. Within 10 minutes a 14-year old kid was able to write a 5-lined program that runs. When the same kid started to write something more complicated (i.e. small games) he (or she) failed and gave up. They could not realize that the complexness of the solution had nothing to do with their own capabilities but with the restrictions of the tool "Basic" ("Basic" starts with "Bah" end ends with "sick"). Some of them I could teach PASCAL or even "C" and they built pretty good programs.
I want you not to give up, the LCD-tool is not a tool. If you cannot get your project to work in an appropiate time do not blame yourself, blame the tool. PSoCs with their extreme flexible combination of analog and digital modules (in 3 and 5 you could even build your own modules!) are a clever and easy-to-use solution. Battery powered systems are easily built with just 3 extra parts: a battery, an inductor and a diode.
When you are not able to build your project, do not hesitate to share your needs in one of the open forums where you can ask questions and WHERE YOU GET ANSWERES!
Have fun, happy coding
Bob
Hello,
Can DMA be setup between (FLASH / SRAM) memory and GPIO?
My requirement is:
1K data is stored in memory (FLASH / SRAM)
Want to flush this data (8-bit wide) on 8-bit wide GPIO on some event.
I am new to PSOC. Have gone though example aps of DMAs Mem2Mem, Mem2Peripheral, Peripheral2Peripheral.
Not able to relate my requirement of DMA to GPIO to these examples (if architecture allows to do so)
Manish
Show LessPSoC®3 and PSoC®5 devices feature a Direct Memory Access (DMA) engine, which can used for data transfer between on-chip elements without any CPU intervention. The DMA engine is part of a high performance bus known as the peripheral hub (PHUB). The PHUB is a programmable and configurable central bus backbone within PSoC3/PSoC5 devices that ties the various on-chip system elements together. It consists of multiple spokes; each spoke is connected to one or more peripheral blocks.
The DMA with the help of Transaction Descriptors (TD) can move data from a source to destination at very high speeds. The TDs can be chained together to perform complex data transfers. The following diagram illustrates a simple data transfer using DMA.
The key features of PSoC® 3 and PSoC® 5 DMA are:
- 24 DMA channels
- Each channel has one or more Transaction Descriptors (TDs) to configure channel behavior. Up to 128 total TDs can be defined
- TDs can be dynamically updated
- Eight levels of priority per channel
- Any digitally routable signal, the CPU, or another DMA channel, can trigger a transaction
- Each channel can generate up to two interrupts per transfer
- Transactions can be stalled or canceled
- Supports transaction size of infinite or 1 to 64k bytes
- TDs may be nested and/or chained for complex transactions
Please refer AN52705 - PSoC® 3 and PSoC 5 - Getting Started with DMA for information on different ways to configure the DMA channel and TD to perform data transfers. The application note also has example projects and a brief video.
Show LessInterrupts are an important part of any embedded application. They free the CPU from having to continuously poll the occurrence of a specific event and, instead, notify the CPU only when that event occurs. In system-on-chip (SoC) architectures, such as PSoC 3 and PSoC 5, interrupts are frequently used to communicate the status of the different on-chip peripherals to the CPU.
Unique Features of PSoC 3 and PSoC 5 Interrupts
PSoC 3 and PSoC 5 provide the following enhanced interrupt features that are not supported by the other traditional microcontrollers:
- Configurable Interrupt Vector Address: In PSoC 3 and PSoC 5, you can dynamically configure the interrupt vector address. The CPU execution can be directly branched to any ISR code when the interrupt occurs. In traditional microcontrollers, the interrupt vector address is fixed for each interrupt line. Typically, a JUMP instruction is placed in that fixed address to branch the CPU execution to the actual ISR code. This unique feature reduces the interrupt execution latency in PSoC 3 and PSoC 5 compared to the traditional microcontrollers.
- Flexible Interrupt Sources:In traditional microcontrollers, the interrupt source is fixed for each interrupt line. PSoC 3 and PSoC 5, give you the flexibility to choose the interrupt source for each interrupt line. This flexible architecture enables any digital signal to be configured as an interrupt source.
Interrupt Support in PSoC Creator
PSoC Creator supports interrupts by providing them as a component. The Interrupt component is available under the System tab in the Component Catalog window as shown infigure below. Each instance of the interrupt component is an interrupt line. The interrupt source should be connected to the interrupt component in the schematic.
For more information on interrupts in PSoC3 and PSoC5, please refer Application note AN54460 PSoC3 and PSoC5 Interrupts, which introduces you to the interrupt architecture, and explains the support for interrupts in the PSoC Creator Software, the development tool for PSoC 3 and PSoC 5. Advanced interrupt concepts such as handling re-entrant functions and fixed function interrupts are also explained in detail. Code examples are provided to explain the different use cases of interrupts. Please access the application note webpage for document and zip file containing the example projects.