samples: remove i2c scanner

Now part of the I2C shell and works for all boards.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
Anas Nashif 2020-01-08 17:36:20 -05:00
commit 7c9a87aea2
6 changed files with 0 additions and 115 deletions

View file

@ -1,8 +0,0 @@
# SPDX-License-Identifier: Apache-2.0
cmake_minimum_required(VERSION 3.13.1)
include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)
project(i2c_scanner)
FILE(GLOB app_sources src/*.c)
target_sources(app PRIVATE ${app_sources})

View file

@ -1,26 +0,0 @@
.. _i2c_scanner:
I2C Scanner sample
##################
Overview
********
This sample sends I2C messages without any data (i.e. stop condition
after sending just the address). If there is an ACK for the
address, it prints the address as ``FOUND``.
.. warning:: As there is no standard I2C detection command, this sample
uses arbitrary SMBus commands (namely SMBus quick write and SMBus
receive byte) to probe for devices. This sample program can confuse
your I2C bus, cause data loss, and is known to corrupt
the Atmel AT24RF08 EEPROM found on many IBM Thinkpad laptops.
See also the `i2cdetect man page
<http://manpages.ubuntu.com/manpages/bionic/man8/i2cdetect.8.html>`_
Building and Running
********************
.. zephyr-app-commands::
:zephyr-app: samples/drivers/i2c_scanner
:board: nrf52840_blip
:conf: "prj.conf overlay-nrf52.conf"
:goals: build flash

View file

@ -1,2 +0,0 @@
CONFIG_I2C_NRFX=y
CONFIG_I2C_0=y

View file

@ -1,2 +0,0 @@
CONFIG_PRINTK=y
CONFIG_I2C=y

View file

@ -1,13 +0,0 @@
sample:
name: I2C scanner
tests:
sample.drivers.i2c_scanner:
platform_whitelist: nrf52840_blip nrf51_ble400
tags: drivers
depends_on: i2c
harness: console
harness_config:
type: one_line
regex:
- "0x50 FOUND"
fixture: fixture_i2c_FRAM

View file

@ -1,64 +0,0 @@
/*
* Copyright (c) 2018 Tavish Naruka <tavishnaruka@gmail.com>
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <errno.h>
#include <zephyr.h>
#include <sys/printk.h>
#include <device.h>
#include <drivers/i2c.h>
#ifdef ARDUINO_I2C_LABEL
#define I2C_DEV ARDUINO_I2C_LABEL
#else
#define I2C_DEV "I2C_0"
#endif
/**
* @file This app scans I2C bus for any devices present
*/
void main(void)
{
struct device *i2c_dev;
u8_t cnt = 0, first = 0x04, last = 0x77;
printk("Starting i2c scanner...\n\n");
i2c_dev = device_get_binding(I2C_DEV);
if (!i2c_dev) {
printk("I2C: Device driver %s not found.\n", I2C_DEV);
return;
}
printk(" 0 1 2 3 4 5 6 7 8 9 a b c d e f\n");
for (u8_t i = 0; i <= last; i += 16) {
printk("%02x: ", i);
for (u8_t j = 0; j < 16; j++) {
if (i + j < first || i + j > last) {
printk(" ");
continue;
}
struct i2c_msg msgs[1];
u8_t dst;
/* Send the address to read from */
msgs[0].buf = &dst;
msgs[0].len = 0U;
msgs[0].flags = I2C_MSG_WRITE | I2C_MSG_STOP;
if (i2c_transfer(i2c_dev, &msgs[0], 1, i + j) == 0) {
printk("%02x ", i + j);
++cnt;
} else {
printk("-- ");
}
}
printk("\n");
}
printk("\n%u devices found on %s\n", cnt, I2C_DEV);
}