Skip to content

Latest commit

 

History

History

gpio_counter

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

UP Squared GPIO Counter

Overview

This sample provides an example of how to configure GPIO input and output to the UP Squared board.

The sample enables a pin as GPIO input (active high) that triggers the increment of a counter (range is 0x0 to 0xf). The counter increments for each change from 0 to 1 on HAT Pin 16 (BIOS Pin 19). The value of the counter is represented on GPIO output (active high) as a 4-bit value (bin 0, 1, 2, 3 -> HAT Pin 35, 37, 38, 40).

Element Mapping (by column)
Bit (bin) n/a 3 2 1 0
HAT Pin 16 40 39 37 35
BIOS Pin 19 38 27 15 14
Direction IN OUT OUT OUT OUT
Active H H H H H

For example, a counter value of 0xc (hex) is represented in 0b1100 (binary) on the GPIO output pins.

Requirements

The application requires an UP Squared board connected to the PC through USB for serial console. The BIOS settings must be updated as specified in the source code comments for HAT Configurations (see table above).

References

Building and Running

Build the sample in the following way:

.. zephyr-app-commands::
   :zephyr-app: samples/boards/up_squared/gpio_counter
   :board: up_squared
   :goals: build

Prepare the boot device (USB storage drive) as described for the :ref:`UP Squared <up_squared>` board. Insert the USB boot device containing the prepared software binary of the sample.

Connect the board to a host computer and open a serial connection for serial console interface:

$ minicom -D <tty_device> -b 115200

Replace <tty_device> with the port where the UP Squared board can be found. For example, under Linux, /dev/ttyUSB0. The -b option sets baud rate.

Power On the board. The board will boot then enter GRUB boot loader unless BIOS option is selected. Enter the BIOS configuration menu, modify the required HAT configurations (above) and then select to save the BIOS settings and reset.

The board will reboot and then enter GRUB boot loader. Select to boot Zephyr and the board will start to execute the sample. Apply input to trigger the increment of the value of the counter.

There are several ways to observe the sample behavior in addition to serial console display of the counter value. For example, the input signal can be implemented with an analog button on a breakout breadboard, or with a basic pulse provided by a GPIO output (active High) pin of another GPIO device (eg Arduino Uno). The Up Squared GPIO output signals can each be connected to a simple LED circuit on a breakout breadboard to illuminate the 4-bit counter value, as shown in the example below:

 o----> to Up Squared
 |      GPIO Output Pin
_|_
\ /
---
 |
 R1
 |
 +---> GND