PSoC™ 4 Forum Discussions
The function CyBle_AesCcmEncrypt has the following parameters:
Page 82 of 553 Document Number: 002-25037 Rev. **
CYBLE_API_RESULT_T CyBle_AesCcmEncrypt (uint8 *key, uint8 *nonce, uint8 *in_data, uint8 length, uint8 *out_data, uint8 *out_mic)
When we use this and implement the equivalent AES CCM on a PC, we also need additional data (other than key, nonce and data) to be set for the MIC generation to generate the same output value as out_mic. On the nRF website, this is said:
I've determined that the nRF AES CCM hardware is not a generic AES CCM device, but instead is targeting the BLE way of using AES CCM. Specifically, the "formatting function" that is used to generate blocks b_0, b_1, ... for the MIC calculation is not part of the CCM specification, but instead specified by the BLE spec (Core v5.0: Vol 6: Part E: Section 2: "CCM"). To correctly compute the MIC using software crypto libraries, it is necessary to use one byte of "adata" or "additional data". The BLE spec says that byte is used as the third byte of the block b_1 (Table 2.3 in the section mentioned before), and must be equal to the "data channel PDU header's first octet with NESN, SN and MD bits masked to 0". Since I'm not using bluetooth, I was puzzled about how this byte is determined by the nRF AES CCM hardware and used in the MIC calculation. I've now determined that it is simply the first byte of the unencrypted packet you point to with NRF_CCM->INPTR, but masked with 0xE3 (to zero the NESN, SN, and MD bits).
Our PC 'decrypt' for a sample output from CyBle_AesCcmEncrypt needs a byte[] = {1}; to work. But I'm concerned that we don't know where this additional data value comes from (other than the possible related answer from nRF). We need access to this to decode and validate the MIC.
So, where can we set/read/access this additional MIC data to be able to reliably use data generated by CyBle_AesCcmEncrypt?
Thanks, Dave
Show LessHi all,
When I use iic to make psoc4(slave) communicate with main chip(stm32f072),main chip receive iic buffer from psoc4 。
When I touch button(such as 7),received data is right,but when I release my finger ,the received data (version number is 2 but received 1 ) is wrong 。
Could you please give me some suggestion,thanks。
My iic buffer ,received data as below。
Show Less
We have a design based on the CY8C4248 and we would like to add file support. I don't see any file system listed in the component catalog window. Is emFile compatible with the device?
Blair
Show LessHello,
I am using a CY8C4248LTI-L485 chip to drive an LC circuit to generate a magnetic field. I would like to know the max current I can pull from on these GPIO pins, as there's a lot of confusion in the info I am receiving.
On the datasheet, the absolute max current is 25mA, and in the PSoC creator software, the source current on the pin configuration window is only 4mA. However, I have measured more than 55mA on a single pin.
Please let me know what is the actual current on rating on these, and if I need to short 4 GPIO pins together to drive higher currents.
Thanks!
Show LessHi everyone,
I'm trying to connect my android phone to a UART_to_BLE_peripheral Project on PRoC BLE device (CYBL10563 - 56LQXI) through Bluetooth connection.
I downloaded the Cypress app (CySmart) on my phone and i can pair it without problems with the PRoC BLE. If i pair the PRoC BLE with my phone through an other app like Serial Bluetooth Terminal (downloaded from Play Store of Google) the app says "Connection failed: no serial profile found -> use long click on device to define a custom profile" or "Connection failed: gatt status 133".
How can do to connect my phone (Android 8.0 OS) with a PRoC BLE through UART_to_BLE_peripheral Project?
I want to do pairing to communicate with a serial bluetooth console app from my android phone to my PRoC BLE device.
Anyone can help me?
I have attached the projects (UART_to_BLE_peripheral and UART_to_BLE_central) which i'm using with PSoC Creator 4.2.
Thanks,
Daniele
Show LessHello all,
I'm contemplating using CYBLE-212019-00 EZ-BLE™ Creator Module and I'm wondering if there are any manufacturing issues in using this module. Specifically, does the module require a no-clean assembly process? I'd prefer to use a clean process, but want to make sure the module does have any restrictions.
Thanks,
Show LessIs there a way to count the number of BLE Advertisement packets sent out from a broadcaster (PSoC 4 BLE or PSoC 6 BLE) in a given period of time, say before advertisement timeout?
I want to compare this number with the number of packets received by a BLE observer, over a varying range of distance.
Show LessWith capacitive sensing undergoing such a rapid growth and penetrating more and more industries, it attracts the interest of many engineers with little to none experience with it.
That’s why, we have created this guide and we would like to share it with the community, PCAP design engineers and everyone that will have to include capacitive touch sensor designs in their systems! It provides you with insight on the anatomy of a capacitive touch sensor and industry terms, including:
1) Common stackup components
2) Attributes of common materials in the stackup
Plus: A table of all the materials of a StackUp and their dielectric constants
The stackup is the part of the touch sensor that the electrodes are enclosed within. It consists of multiple layers and its functionality is to protect the electrodes and help achieve the desired sensitivity of the sensor.
Apart from the electrodes, the rest of the elements that make up a touch sensor include:
1) Front Panel Material
2) Dielectrics
3) Adhesives
4) Air gaps
The front panel material is the material that is located at the top of the stackup. These materials provide protection to the sensor and should have a transparency of more than 90% if they are placed on top of screens.
Front Panel Material Required Properties:
1) Optical (e.g. transmittance, anti-haze, antiglare etc)
2) Mechanical (anti-scratch, drop resistance, anti-shatter)
The most common front panel materials are glass and plastic, though glass is mostly preferred.
The glass is a versatile material with multiple uses within the stackup. Its most common use is as a front panel material (also known as a cover glass), but it can also be used within the stackup. The main variables to consider when selecting a cover glass are its dielectric constant and its thickness.
The characteristics of the glass that make is such a good fit for many touch sensor applications include its high dielectric constant, its excellent optical properties and the mechanical structural integrity it offers. On the other hand, plastic has a worse dielectric constant and using it as a front cover material can result in a less sensitive sensor.
Dielectrics
Dielectrics can be used as substrates or as layers that help achieve the desired sensitivity of the sensor. A substrate is the base material that carries
the electrodes.
Even though any insulating material could be used as a substrate for capacitive sensing, low loss ones such as PET are preferred. Glass can also be used as a dielectric.
The main thing to consider when selecting dielectrics is their dielectric constant.
The rule of thumb here is: dielectrics placed between the driving and receiving electrodes (when they are in different layers) should have a lower dielectric constant and a higher one when they’re placed on either side of them. This stems from the underlying science and it has to do with improving the sensor’s sensitivity.
You can read the rest of our guide here.
Show LessHi.
I encountered the problem describe like the title. I use the PSoC example name "Central and Peripheral" and call the function "CyBle_GapcConnectDevice" which return "CYBLE_ERROR_OK". But both "CYBLE_EVT_GATT_CONNECT_IND" and "CYBLE_EVT_GAP_DEVICE_CONNECTED" never show up but "CYBLE_EVT_TIMEOUT" does after 30 seconds.
I have already make sure that the device able to be connected use the Cypress dongle and the program "CySmart".
What may be the possible faults ? THANKS
Show Less