NRF_LOG is not working in my Custom Board

Hello,

I am working NRF52840 as custom board, In my custom board NRF_LOG is not working I mean Nothing is displaying on terminal like tera term or termite. If load the code in Development Board (NRF52840 DK Boards) its working fine and also I Can view the data on terminal. My problem is in my custom board, can you please help me on this. How to solve this type of issues. 

Thanks & I am waiting for your response.

  • Hi

    One more, In order to print TWI Scanner Example in my custom board, whether I have to combine TWI Scanner and UART Right??...

  • Hi,

    1. In my Custom board, onboard debugger is not there, so I am loading my code through SWD from DK board to custom board is it Correct right.

    2. For my custom UART connection, I have used P1.11(TX), P1.12(RX), P1.10(CTS), P0.30(RTS), these four I mention in program also that is in pca10056.h file,.. Is it correct rigjht.

    Ex:-

    #define RX_PIN_NUMBER NRF_GPIO_PIN_MAP(1,11)
    #define TX_PIN_NUMBER NRF_GPIO_PIN_MAP(1,12)
    #define CTS_PIN_NUMBER NRF_GPIO_PIN_MAP(1,10)
    #define RTS_PIN_NUMBER NRF_GPIO_PIN_MAP(0,30)
    #define HWFC true

    3. To display the UART data in terminal, I have used TTL/ FDTI converter, for this connection I used is,

    TX->RX

    RX->TX

    CTS->RTS

    RTS->CTS.    Is it Correct right.

    4.For TWI I2C communication, I have used P0.06(SCL), P0.07(SDA) these two connection I have mention in pca10056.h file 

    Ex:-

    #define ARDUINO_SCL_PIN NRF_GPIO_PIN_MAP(0,6) // SCL signal pin
    #define ARDUINO_SDA_PIN NRF_GPIO_PIN_MAP(0,7) // SDA signal pin Is it correct ?.

    The above points are implemented in my code, but still I am not getting any message in terminal. I have one doubt also, In TWI scanner to display the UART data in terminal whether I have to combine TWI_Scanner Program and also UART Program????

    Can you please help me on this, 

    Dont take above two threads. consider this thread and give me some suggestion, I am stuck for this so many days.

    Thanks in advance and I am waiting for your response.

    I will share my TWI_Scanner code in below atttachment.

    /**
     * Copyright (c) 2016 - 2018, Nordic Semiconductor ASA
     * 
     * All rights reserved.
     * 
     * Redistribution and use in source and binary forms, with or without modification,
     * are permitted provided that the following conditions are met:
     * 
     * 1. Redistributions of source code must retain the above copyright notice, this
     *    list of conditions and the following disclaimer.
     * 
     * 2. Redistributions in binary form, except as embedded into a Nordic
     *    Semiconductor ASA integrated circuit in a product or a software update for
     *    such product, must reproduce the above copyright notice, this list of
     *    conditions and the following disclaimer in the documentation and/or other
     *    materials provided with the distribution.
     * 
     * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
     *    contributors may be used to endorse or promote products derived from this
     *    software without specific prior written permission.
     * 
     * 4. This software, with or without modification, must only be used with a
     *    Nordic Semiconductor ASA integrated circuit.
     * 
     * 5. Any software provided in binary form under this license must not be reverse
     *    engineered, decompiled, modified and/or disassembled.
     * 
     * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
     * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
     * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
     * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
     * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
     * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     * 
     */
    /** @file
     * @defgroup tw_scanner main.c
     * @{
     * @ingroup nrf_twi_example
     * @brief TWI Sensor Example main file.
     *
     * This file contains the source code for a sample application using TWI.
     *
     */
    
    #include <stdio.h>
    #include <stdbool.h>
    #include "boards.h"
    #include "app_util_platform.h"
    #include "app_error.h"
    #include "nrf_drv_twi.h"
    #include "app_uart.h"
    #include "nrf_gpio.h"
    #include "nrf_delay.h"
    #include "app_error.h"
    #include <string.h>
    //#include "SEGGER_RTT.h"
    #include "nrf_drv_gpiote.h"
    #include "app_error.h"
    
    //#define RTS NRF_GPIO_PIN_MAP(0,30)
    
    #include "nrf_log.h"
    #include "nrf_log_ctrl.h"
    #include "nrf_log_default_backends.h"
    
    /* TWI instance ID. */
    #if TWI0_ENABLED
    #define TWI_INSTANCE_ID     0
    #elif TWI1_ENABLED
    #define TWI_INSTANCE_ID     1
    #endif
    
     /* Number of possible TWI addresses. */
     uint8_t TWI_ADDRESSES=0x68;
    
    /* TWI instance. */
    static const nrf_drv_twi_t m_twi = NRF_DRV_TWI_INSTANCE(TWI_INSTANCE_ID);
    
    
    /**
     * @brief TWI initialization.
     */
    void twi_init (void)
    {
        ret_code_t err_code;
    
        const nrf_drv_twi_config_t twi_config = {
           .scl                = ARDUINO_SCL_PIN,
           .sda                = ARDUINO_SDA_PIN,
           .frequency          = NRF_DRV_TWI_FREQ_100K,
           .interrupt_priority = APP_IRQ_PRIORITY_HIGH,
           .clear_bus_init     = false
        };
    
        err_code = nrf_drv_twi_init(&m_twi, &twi_config, NULL, NULL);
        APP_ERROR_CHECK(err_code);
    
        nrf_drv_twi_enable(&m_twi);
    }
    
    
    /**
     * @brief Function for main application entry.
     */
    int main(void)
    {
    	nrf_gpio_cfg_output(11);
    	nrf_gpio_cfg_output(30);
    	nrf_delay_ms(50);
    		nrf_gpio_pin_clear(12);
    	nrf_gpio_pin_clear(10);
    	nrf_delay_ms(50);
    //	nrf_gpio_cfg_output(11);
    //	nrf_gpio_cfg_output(10);
    //	nrf_gpio_cfg_input(12);
    	//nrf_gpio_cfg_input(RTS);
    	
        ret_code_t err_code;
        uint8_t address;
        uint8_t sample_data;
        bool detected_device = false;
    
        APP_ERROR_CHECK(NRF_LOG_INIT(NULL));
        NRF_LOG_DEFAULT_BACKENDS_INIT();
    
        NRF_LOG_INFO("TWI scanner started.");
        NRF_LOG_FLUSH();
        twi_init();
    
        for (address = 1; address <= TWI_ADDRESSES; address++)
        {
            err_code = nrf_drv_twi_rx(&m_twi, address, &sample_data, sizeof(sample_data));
            if (err_code == NRF_SUCCESS)
            {
                detected_device = true;
                NRF_LOG_INFO("TWI device detected at address 0x%x.", address);
            }
            NRF_LOG_FLUSH();
        }
    
        if (!detected_device)
        {
            NRF_LOG_INFO("No device was found.");
            NRF_LOG_FLUSH();
        }
    
        while (true)
        {
            /* Empty loop. */
        }
    }
    
    /** @} */
    

  • Hello,

    I am waiting for your reply, please help me 

  • Jansi,

    1) Yeah, you can use nRF SWD connected to the debugger to load the firmware into the chip.

    2) Routing the custom board pins to nRF DK and the routing this to the OB debugger to a virtual COM port is an overkill for your use case. Not sure what you are asking is correct here? Yes those pins are available on pca10056.h aswell and if you have configured the firmware on your custom board to use these pins as UART pins then it should work if those pins are not used for anything else.

    3) Yes, you need to connect
      TTL/FTDI TX -> Custom board RX
      TTL/FTDI RX -> Custom board TX
      TTL/FTDI CTS -> Custom board RTS
      TTL/FTDI RTS -> Custom board CTS

    If that does not work, then you need to connect logic analyzer to your custom board uart pins to see if there is any data that is being transmitted by your custom board at all?

    4) You have another case where we can discuss your TWI issue. Please do not mix many issues into one. Keep the context of this thread matching the title.

Related