This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Thingy:91 GPIO configuration

Hi, 

I am trying to configure a GPIO pin P0.21(as this is exposed pin on Thingy:91) from nRF9160 on Thingy:91.

I am using nRF Connect SDK 1.4.1 with Nordic version of SES.

I tried using from zephyr documented here.

#include <drivers/gpio.h>

void main()
{ 
	gpio = device_get_binding("GPIO_0");
	gpio_pin_configure(gpio, 21, GPIO_OUTPUT_ACTIVE);
	gpio_pin_set(gpio, 21, 1);
}

But I can't see the pin going high after power bootup.

Is there anything I am missing like editing .dts file, because thingy91_nrf9160_common.dts found at \nrf\boards\arm\thingy91_nrf9160 is like this

/*
 * Copyright (c) 2019 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: LicenseRef-BSD-5-Clause-Nordic
 */

/ {
	model = "Nordic Thingy91 nRF9160";
	compatible = "nordic,thingy91-nrf9160";

	chosen {
		zephyr,console = &uart0;
		zephyr,shell-uart = &uart0;
		zephyr,uart-mcumgr = &uart0;
	};

	buttons {
		compatible = "gpio-keys";

		button0: button_0 {
			gpios = <&gpio0 26 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
			label = "Button 1";
		};
	};

	leds {
		compatible = "gpio-leds";
		red_led: led_1 {
			gpios = <&gpio0 29 0>;
			label = "RGB red channel";
		};
		green_led: led_2 {
			gpios = <&gpio0 30 0>;
			label = "RGB green channel";
		};
		blue_led: led_3 {
			gpios = <&gpio0 31 0>;
			label = "RGB blue channel";
		};
		sense_red_led: led_4 {
			gpios = <&gpio0 0 0>;
			label = "RGB red channel";
		};
		sense_green_led: led_5 {
			gpios = <&gpio0 1 0>;
			label = "RGB green channel";
		};
		sense_blue_led: led_6 {
			gpios = <&gpio0 2 0>;
			label = "RGB blue channel";
		};
	};

	aliases {
		sw0 = &button0;
		led0 = &red_led;
		led1 = &green_led;
		led2 = &blue_led;
		sense-led0 = &sense_red_led;
		sense-led1 = &sense_green_led;
		sense-led2 = &sense_blue_led;
		rgb-pwm = &pwm0;
		buzzer-pwm = &pwm1;
		nmos-pwm = &pwm2;
	};
};

&adc {
	status = "okay";
};

&gpiote {
	status = "okay";
};

&gpio0 {
	status = "okay";
};

/* PWM0 is intended for RGB LED control */
&pwm0 {
	status = "okay";
	ch0-pin = <29>;
	ch1-pin = <30>;
	ch2-pin = <31>;
};

/* PWM1 is intended for buzzer control */
&pwm1 {
	status = "okay";
	ch0-pin = <28>;
};

/* PWM2 is intended for NMOS transistor control */
&pwm2 {
	status = "okay";
	ch0-pin = <13>;
	ch1-pin = <14>;
	ch2-pin = <15>;
	ch3-pin = <16>;
};

&pwm3 {
	status = "okay";
};

&i2c2 {
	compatible = "nordic,nrf-twim";
	status = "okay";
	sda-pin = <11>;
	scl-pin = <12>;
	clock-frequency = <I2C_BITRATE_FAST>;

	bme680@76 {
		compatible = "bosch,bme680";
		label = "BME680";
		reg = <0x76>;
	};

	bh1749@38 {
			compatible = "rohm,bh1749";
			label = "BH1749";
			reg = <0x38>;
			int-gpios = <&gpio0 27 0>;
	};
};

&spi3 {
	compatible = "nordic,nrf-spim";
	status = "okay";
	sck-pin = <3>;
	mosi-pin = <4>;
	miso-pin = <5>;
	cs-gpios = <&gpio0 8 GPIO_ACTIVE_LOW>, <&gpio0 7 GPIO_ACTIVE_LOW>;

	adxl362@0 {
		compatible = "adi,adxl362";
		label = "ADXL362";
		spi-max-frequency = <8000000>;
		reg = <0>;
		int1-gpios = <&gpio0 9 0>;
	};

	adxl372@1 {
		compatible = "adi,adxl372";
		label = "ADXL372";
		spi-max-frequency = <8000000>;
		reg = <1>;
		int1-gpios = <&gpio0 6 0>;
	};
};

&timer0 {
	status = "okay";
};

&timer1 {
	status = "okay";
};

&timer2 {
	status = "okay";
};

&uart0 {
	compatible = "nordic,nrf-uarte";
	current-speed = <115200>;
	status = "okay";
	tx-pin = <23>;
	rx-pin = <24>;
	rts-pin = <22>;
	cts-pin = <25>;
};

&uart1 {
	current-speed = <1000000>;
	status = "okay";
	tx-pin = <21>;
	rx-pin = <19>;
	rts-pin = <20>;
	cts-pin = <18>;
};

&flash0 {
	/*
	 * For more information, see:
	 * http://docs.zephyrproject.org/devices/dts/flash_partitions.html
	 */
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 0x10000>;
		};
		slot0_partition: partition@10000 {
			label = "image-0";
		};
		slot0_ns_partition: partition@40000 {
			label = "image-0-nonsecure";
		};
		slot1_partition: partition@80000 {
			label = "image-1";
		};
		slot1_ns_partition: partition@b0000 {
			label = "image-1-nonsecure";
		};
		scratch_partition: partition@f0000 {
			label = "image-scratch";
			reg = <0x000f0000 0xa000>;
		};
		storage_partition: partition@fa000 {
			label = "storage";
			reg = <0x000fa000 0x00006000>;
		};
	};
};

/ {

	reserved-memory {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		sram0_s: image_s@20000000 {
			/* Secure image memory */
		};

		sram0_bsd: image_bsd@20010000 {
			/* BSD (shared) memory */
		};

		sram0_ns: image_ns@20020000 {
			/* Non-Secure image memory */
		};
	};
};

/* Include partition configuration file */
#include "thingy91_nrf9160_partition_conf.dts"

I will appreciate any insight on this.

Thanks!

Parents
  • Hello,

    Shivek said:
    but nothing on GPIO P0.21. I tried cutting the SB7 to disconnect from nRF52840, didn't make any difference. 

     I’m still not quite sure how you physically can access P0.21 on the Thingy:91. Could you elaborate and/or send me a picture of it?

    Shivek said:
    I am building my application using SESv5.10d Nordic edition.

    When adding or updating configuration files, you have to reload your project settings into SES to make them become effective before building. You can do that as shown in the picture below. I recommend you to check the build log to make sure that the overlay file has been considered during the compilation process.

    Regards,

    Markus

Reply
  • Hello,

    Shivek said:
    but nothing on GPIO P0.21. I tried cutting the SB7 to disconnect from nRF52840, didn't make any difference. 

     I’m still not quite sure how you physically can access P0.21 on the Thingy:91. Could you elaborate and/or send me a picture of it?

    Shivek said:
    I am building my application using SESv5.10d Nordic edition.

    When adding or updating configuration files, you have to reload your project settings into SES to make them become effective before building. You can do that as shown in the picture below. I recommend you to check the build log to make sure that the overlay file has been considered during the compilation process.

    Regards,

    Markus

Children
No Data
Related