PSoC™ 4 Forum Discussions
Hello everybody,
I've been working with a PRoC BLE module (CYBLE-022001-00 ) as a HID keyboard in a very simple manner, I send a key code to the module and it sends it via Bluetooth to a Bluetooth enabled device, and this works fine for the most part.
The problem is that sometimes, let's say the module is connected to a PC, when I send the keys, some keys appear on the computer and some others don't, I imagine this happens because there was an error while sending the those keys via Bluetooth, so my question is, which event can I check to verify if the HID notification has, indeed, been received correctly by the computer?
Thanks in advance!
Show LessI'm trying to get a sample app running on my new CYBLE-212019 evaluation board using Creator v3.2 and Programmer v3.25.0.
I selected a sample project for PRoC BLE device family (device information) and it builds just fine, apparently for CYBL10563-56LQXI.
The programmer, PSoC MiniProg3, correctly identifies my device as 212019, but it complains that "The hex file does not match with the acquired device, please check the device".
Creator/Project/Device Selector offers me a bunch of parts, but none of them are 212019
How do I map the Creator device selection to my 212019? Or is the problem elsewhere?
TIA, Richard
Show LessHello PSOC enthusiasts: I am trying run one of the projects published at PSOC website called UART_BLE (https://github.com/cypresssemiconductorco/PSoC-4-BLE/blob/master/100_Projects_in_100_Days/Day020_BLE_UART/UART_to_BLE.pdf).
Since the components have upgraded since this project was last written, I updated the components as recommended by PSOC creator. Now when I run this program, I dont see message appearing on TeraTerm or Putty. The document suggests that as soon as connection is established, I should see TeraTerm publishing a set of messages.
I am attaching the project in case some one has time to look at it. Could anybody have a look at it and help me.
Show LessI'm building an application in PSoC creator 3.3 on a pioneer board with cy8c-4248-LQI-BL583. I've been able to get interrupts working for all kinds of other applications without a problem.
But when I take the ADC SAR Seq block and hook its eoc to a DMA block, tr_in, check "generate interrupt" and hook tr_out of the DMA block to an ISR, I get the error "Failed to place fixed-function blocks, see the report file for details" and sjplacer.exe failed 0xFFFFFFFF.
I tried the Cypress demo project CE97089, and it works -- but they set up the ISR using code rather than the GUI and generated code. If I attach an ISR to the tr_out pin of the DMA there, I get the exact same errors. I'd really rather set up the ISR via the GUI and the modern CY_ISR macro like the rest of my code, for readability's sake if nothing else. But it looks like it's just not possible to use the ISR block with the DMA block?
When I look at the .rpt file, it's not obvious what went wrong. It says it's having trouble placing the DMA, but there are no other DMA devices contending for slots, so I don't know why that would fail. The Analog code generation phase says :
Error: plm.M0046: E2806: Failed to place fixed-function blocks. See the report file for details.
"C:\Program Files\Cypress\PSoC Creator\3.3\PSoC Creator\bin/sjplacer.exe" --proj-name "CE97089_ADC2Buffer_DMA" --netlist-vh2 "CE97089_ADC2Buffer_DMA_p.vh2" --arch-file "C:\Program Files\Cypress\PSoC Creator\3.3\PSoC Creator\dev/arch/p4_udb2x2.ark" --rrg-file "C:\Program Files\Cypress\PSoC Creator\3.3\PSoC Creator\dev/psoc4/3/256dma/route_arch-rrg.cydata" --irq-file "C:\Program Files\Cypress\PSoC Creator\3.3\PSoC Creator\dev/psoc4/3//256dma/irqconn.cydata" --drq-file "C:\Program Files\Cypress\PSoC Creator\3.3\PSoC Creator\dev/psoc4/3//256dma/triggerconn.cydata" --dsi-conn-file "C:\Program Files\Cypress\PSoC Creator\3.3\PSoC Creator\dev/psoc4/3//256dma/dsiconn.cydata" --pins-file "pins_56-QFN.xml" --lib-file "CE97089_ADC2Buffer_DMA_p.lib" --sdc-file "CE97089_ADC2Buffer_DMA.sdc" --io-pcf "CE97089_ADC2Buffer_DMA.pci" --outdir .
<CYPRESSTAG name="Detailed placement messages">
I2659: No Constrained paths were found. The placer will run in non-timing driven mode.
I2807: The following instances could not be placed: DMA_1
DMA placement:
DMA 0: <empty>
DMA 1: <empty>
DMA 2: <empty>
DMA 3: <empty>
DMA 4: <empty>
DMA 5: <empty>
DMA 6: <empty>
DMA 7: <empty>
E2806: Failed to place fixed-function blocks. See the report file for details.
</CYPRESSTAG>
Error: plm.M0046: "C:\Program Files\Cypress\PSoC Creator\3.3\PSoC Creator\bin/sjplacer.exe" failed (0xFFFFFFFF)
Everything else in the RPT file looks normal, plenty of resources, no UDB resources used at all, etc. Help!
Show LessHi,
Please help me with the following theoretical situation: I have a PSoC4 MCU running HID profile, mostly sleeping. From time to time, an external interrupt occur (GPIO line) and the time interval in which the MCU must handle this interrupt is 150us, when running the handle code only takes 50us.
Is it possible to configure the interrupt priorities in such way that the MCU will handle the interrupt EVERY time in that specific interval ? i.e. is there a way to define a critical section in the code that overcome the BLE low level routines?
Thanks
Show LessI am originally using the default Cypress provided ARM GCC compiler for a PRoC project. In the compiler command line option, there is a customer flags: -std=c11
I believe it means it request the compiler to use C11 standard.
As my code size grow I need to use the Keil MDK compiler. I have installed the MDK and set the project to use it. However I want to set the same standard for the compiler, that is C11. How can I do that?
Thank you.
Show LessI'm working on a CY8CKIT-042-BLE-A in PSoC Creator 3.3, I was wondering if there was a way that I could tell the program not to write over a section of memory that I want to store some tunable parameters. This would let me debug the device without recalibrating it every time I reprogram it.
Show LessHi,
Are there any examples of how to set EM_EEPROM to a specific location, and then change that location after a certain amount of writes?
My EM_EEPROM is set up like this:
// EEPROM Array
static const uint8 CYCODE eepromArray[ARRAY_SIZE]= {0};
// Sets up data structure for EEPROM storage
struct eepromData
{
uint8 mode; // Running mode
uint8 program; // Program selected to run in program mode
uint8 speed; // speed of programs
uint8 brightness; // brightness of colors 0-10;
uint8 spectrum; // color based on spectrum location
uint8 white; // white level for spectrum use
uint8 channels; // stores whether there are 3 or 4 channels (RGB vs RGBW)
} dataLocal;
And written like this:
// Writes EEPROM structure into memory
void WriteEEPROM()
{
cystatus status;
// Writes EEPROM data
status = Em_EEPROM_Write((void *)(&dataLocal),(void *)(&eepromArray),ARRAY_SIZE);
}
Thank you,
Tom
Show LessHello every one. I am new to cypress kits. Besides my background is in mechanical engineering. so please bare with me. My question might frustrate many:
I have a cypress pioneer kit CY8CKIT-042-BLE. It came with a base board and two other chips called PSOC (CY8C4247LQI-BL483) and a PROC (CYBL10563-56LQXI). I have been playing that for last couple of days. Is there is a cypress module similar to CY8C4247LQI-BL483 for final chip that would in production.
I see there is cypress module called CYBLE-224110-00 EZ-BLE. I also see that there is an evaluation board to get started with that called CYBLE-224110-EVAL EZ-BLE™ PSoC XT/XR Evaluation Board (http://www.cypress.com/documentation/development-kitsboards/cyble-224110-eval-ez-ble-psoc-xtxr-evaluation-board). It also says that CYBLE-224110-EVAL EZ-BLE™ is compatible with CY8CKIT-042-BLE pioneer kit.
I want to know if I develop a code with this pioneer kit using PSOC, can I bypass checking it on evaluation board CYBLE-224110-EVAL EZ-BLE, and directly program it on CYBLE-224110-00 EZ-BLE.
Thanks in advance.
Show LessSo I've browsed to forums, watched the videos, and this great tutorial, which I've learned from valuable info from all, but I want to ensure that a non-devkit application is going to work correctly. I'm using a 222014 chip. I have the module all well, and both have VREF pads with a 1uF bypass cap attached. I'm running the bare chip on a CR2032 (3.3v), my ADC component is set to Internal 1.024 volts, bypassed, and my vref pin from the ADC is set to P3.6. Measurement code is ready, using the script in the tutorial.
So, with that setup, would I:
a) connect pad P3.6 to pad VREF and done?
b) Have a voltage divider, from the CR2032, down to 1.024V into pad P3.6...?
b.1) AND pad P3.6 to pad VREF?
c) All sorts of NOPE, and better ideas?
Show Less