<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>nRF Connect Can&amp;#39;t Communicate Properly with CY15B108QN FRAM Infineon</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/126723/nrf-connect-can-t-communicate-properly-with-cy15b108qn-fram-infineon</link><description>Hi All, 
 
 Anyone has experience in FRAM? 
 I have a project which need to integrate the FRAM CY15B108QN with nRF52840. I got a weird result by using nRF silicone, but can communicate perfectly using other sillicone (ESP32). 
 (1) (2) 
 (1) result when</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 09 Feb 2026 11:24:26 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/126723/nrf-connect-can-t-communicate-properly-with-cy15b108qn-fram-infineon" /><item><title>RE: nRF Connect Can't Communicate Properly with CY15B108QN FRAM Infineon</title><link>https://devzone.nordicsemi.com/thread/560639?ContentTypeID=1</link><pubDate>Mon, 09 Feb 2026 11:24:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4cac5ccd-bdac-40e8-b740-e01fc84c32e9</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>[quote user="zuhdalfan"]nordic,drive-mode = &amp;lt;NRF_DRIVE_H0H1&amp;gt;;[/quote]
&lt;p&gt;Hello Zuhdi,&lt;/p&gt;
&lt;p&gt;Thanks for letting me know.&lt;/p&gt;
&lt;p&gt;Adding this in the device tree&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span&gt;nordic,drive-mode = &amp;lt;NRF_DRIVE_H0H1&amp;gt;; &lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span&gt;resolved the communication issue with the CY15B108QN FRAM on nRF52840. It seems the root cause was very likely related to the default GPIO drive strength (SOS1 provides lower output device current) used by the nRF device. FRAM is a high speed (SPI clock up to 40 MHz) external SPIM devices so it can reduce timing margin and leads to sample incorrect data.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Did you try the default SPI3 pins mentioned in our board file?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF Connect Can't Communicate Properly with CY15B108QN FRAM Infineon</title><link>https://devzone.nordicsemi.com/thread/560581?ContentTypeID=1</link><pubDate>Sat, 07 Feb 2026 05:47:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:55127ddf-c3fb-4ef2-915c-43419bc4e98c</guid><dc:creator>zuhdalfan</dc:creator><description>&lt;p&gt;This issue has been solved.&lt;/p&gt;
&lt;p&gt;I only need to add this to the pinctrl:&lt;/p&gt;
&lt;p&gt;nordic,drive-mode = &amp;lt;NRF_DRIVE_H0H1&amp;gt;;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF Connect Can't Communicate Properly with CY15B108QN FRAM Infineon</title><link>https://devzone.nordicsemi.com/thread/560281?ContentTypeID=1</link><pubDate>Wed, 04 Feb 2026 02:57:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5e837774-a2f6-4bbe-a067-efb8228713e9</guid><dc:creator>zuhdalfan</dc:creator><description>&lt;p&gt;Hi, I hope you are doing well,&lt;/p&gt;
&lt;p&gt;just add a comparison when I use ESP32 with ESP-IDF. Just using simple SPI master:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#include &amp;lt;stdio.h&amp;gt;

#include &amp;quot;driver/spi_master.h&amp;quot;
#include &amp;quot;driver/gpio.h&amp;quot;
#include &amp;quot;esp_log.h&amp;quot;
#include &amp;quot;freertos/FreeRTOS.h&amp;quot;
#include &amp;quot;freertos/task.h&amp;quot;

#define PIN_NUM_MISO 19
#define PIN_NUM_MOSI 23
#define PIN_NUM_CLK 18
#define PIN_NUM_CS 5
#define PIN_NUM_WP 22

#define RDID_CMD 0x9F

static const char *TAG = &amp;quot;fram_rdid&amp;quot;;

static void log_help(void)
{
    ESP_LOGI(TAG, &amp;quot;CY15B108QN RDID test over VSPI&amp;quot;);
    ESP_LOGI(TAG, &amp;quot;Pins: SCK=GPIO%d MISO=GPIO%d MOSI=GPIO%d CS=GPIO%d&amp;quot;,
             PIN_NUM_CLK, PIN_NUM_MISO, PIN_NUM_MOSI, PIN_NUM_CS);
    ESP_LOGI(TAG, &amp;quot;WP pin: GPIO%d (held high)&amp;quot;, PIN_NUM_WP);
    ESP_LOGI(TAG, &amp;quot;SPI mode 0, ~2 MHz, full duplex&amp;quot;);
    ESP_LOGI(TAG, &amp;quot;RDID command 0x%02X, expect 3 bytes: [Manufacturer, Product MSB, Product LSB]&amp;quot;,
             RDID_CMD);
}

static esp_err_t fram_read_rdid(spi_device_handle_t dev, uint8_t rdid[3])
{
    uint8_t tx_data[4] = { RDID_CMD, 0x00, 0x00, 0x00 };
    uint8_t rx_data[4] = { 0 };
    spi_transaction_t t = { 0 };

    t.length = 8 * sizeof(tx_data);
    t.tx_buffer = tx_data;
    t.rx_buffer = rx_data;

    esp_err_t err = spi_device_transmit(dev, &amp;amp;t);
    if (err != ESP_OK) {
        return err;
    }

    rdid[0] = rx_data[1];
    rdid[1] = rx_data[2];
    rdid[2] = rx_data[3];
    return ESP_OK;
}

void app_main(void)
{
    log_help();

    gpio_config_t wp_cfg = {
        .pin_bit_mask = 1ULL &amp;lt;&amp;lt; PIN_NUM_WP,
        .mode = GPIO_MODE_OUTPUT,
        .pull_up_en = GPIO_PULLUP_DISABLE,
        .pull_down_en = GPIO_PULLDOWN_DISABLE,
        .intr_type = GPIO_INTR_DISABLE
    };
    ESP_ERROR_CHECK(gpio_config(&amp;amp;wp_cfg));
    ESP_ERROR_CHECK(gpio_set_level(PIN_NUM_WP, 1));

    spi_bus_config_t buscfg = {
        .miso_io_num = PIN_NUM_MISO,
        .mosi_io_num = PIN_NUM_MOSI,
        .sclk_io_num = PIN_NUM_CLK,
        .quadwp_io_num = -1,
        .quadhd_io_num = -1,
        .max_transfer_sz = 4
    };

    spi_device_interface_config_t devcfg = {
        .clock_speed_hz = 2 * 1000 * 1000,
        .mode = 0,
        .spics_io_num = PIN_NUM_CS,
        .queue_size = 1
    };

    ESP_ERROR_CHECK(spi_bus_initialize(SPI3_HOST, &amp;amp;buscfg, SPI_DMA_CH_AUTO));

    spi_device_handle_t dev = NULL;
    ESP_ERROR_CHECK(spi_bus_add_device(SPI3_HOST, &amp;amp;devcfg, &amp;amp;dev));

    while (true) {
        uint8_t rdid[3] = { 0 };
        esp_err_t err = fram_read_rdid(dev, rdid);
        if (err == ESP_OK) {
            ESP_LOGI(TAG, &amp;quot;RDID: 0x%02X 0x%02X 0x%02X&amp;quot;, rdid[0], rdid[1], rdid[2]);
        } else {
            ESP_LOGE(TAG, &amp;quot;RDID read failed: %s&amp;quot;, esp_err_to_name(err));
        }
        vTaskDelay(pdMS_TO_TICKS(1000));
    }
}
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The result is aligned with the CY15B108QN documentation:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;I (339) main_task: Calling app_main()
I (339) fram_rdid: CY15B108QN RDID test over VSPI
I (339) fram_rdid: Pins: SCK=GPIO18 MISO=GPIO19 MOSI=GPIO23 CS=GPIO5
I (349) fram_rdid: WP pin: GPIO22 (held high)
I (359) fram_rdid: SPI mode 0, ~2 MHz, full duplex
I (359) fram_rdid: RDID command 0x9F, expect 3 bytes: [Manufacturer, Product MSB, Product LSB]
I (369) gpio: GPIO[22]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 
I (379) fram_rdid: RDID: 0x03 0x2E 0xC2
I (1379) fram_rdid: RDID: 0x03 0x2E 0xC2
I (2379) fram_rdid: RDID: 0x03 0x2E 0xC2
I (3379) fram_rdid: RDID: 0x03 0x2E 0xC2
I (4379) fram_rdid: RDID: 0x03 0x2E 0xC2
I (5379) fram_rdid: RDID: 0x03 0x2E 0xC2
I (6379) fram_rdid: RDID: 0x03 0x2E 0xC2
I (7379) fram_rdid: RDID: 0x03 0x2E 0xC2&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I have tried also using nRF52840DK (different board) with ZephyrRTOS again but using simple SPI master, it still got the same response as the image logic analyzer (does not align with FRAM documentation).&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Please help :)&lt;/p&gt;
&lt;p&gt;Thank you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF Connect Can't Communicate Properly with CY15B108QN FRAM Infineon</title><link>https://devzone.nordicsemi.com/thread/559848?ContentTypeID=1</link><pubDate>Thu, 29 Jan 2026 03:31:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f2490e72-ff47-413c-a7eb-2c403f6e9a80</guid><dc:creator>zuhdalfan</dc:creator><description>&lt;p&gt;sure, please check this:&lt;/p&gt;
&lt;p&gt;I shared the board overlay and FRAM driver I used. I haven&amp;#39;t reach the write and read memory, just read the RDID only in the init function for testing. Because if RDID still have issue, the other functionality may also not working properly.&lt;/p&gt;
&lt;p&gt;Do you have any idea whats going on?&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/cy15b108qn.h"&gt;devzone.nordicsemi.com/.../cy15b108qn.h&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/cy15b108qn.c"&gt;devzone.nordicsemi.com/.../cy15b108qn.c&lt;/a&gt;&lt;br /&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/ubx_5F00_evkninab3_5F00_nrf52840.overlay"&gt;devzone.nordicsemi.com/.../ubx_5F00_evkninab3_5F00_nrf52840.overlay&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF Connect Can't Communicate Properly with CY15B108QN FRAM Infineon</title><link>https://devzone.nordicsemi.com/thread/559703?ContentTypeID=1</link><pubDate>Tue, 27 Jan 2026 14:48:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:28404512-0f73-4359-98a0-111031263100</guid><dc:creator>Kazi Afroza Sultana</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Can you share application file so I can look at the overlay file, main.c file?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>