Sample app for ESP8266 controlling the SC16IS752 I2C UART IC
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
brzo_i2c
.gitignore
LICENSE
Makefile
README
pin_map.c
pin_map.h
user_config.h
user_main.c

README

Simple program to control the NXP SC16IS752 dual UART with I2C/SPI interface

This program:
- Uses the I2C interface
- Registers an interrupt handler to listen for interrupts from the device
- Soft resets the device
- Initialises the device at adress 0x48 (A0 and A1 pulled to VDD)
- Blinks GPIOs 0 and 1
- Sends "Hello World" at 2400,8,N,1
- Waits a while for received data - and if received outputs it to console
- Performs a hard reset of the device, by pulling the RESET pin low
- Outputs some stats
- Starts again

This was verified using an otb-iot v0.5 based on an ESP-12F board, driving an SC16IS752 with a 1.8432MHz crystal.  Other SC16IS7XX devices may also work, in particular:
- SC16IS752
- SC16IS762
- SC16IS750
- SC16IS760

It's unlikely to work with the SC16IS740 as that device has no GPIOs.

To build and install run:

  make flash && make con74

to flash the module and then connect to it over the console interface.

If you don't have an ESP8266 build environment and are using linux, use the piersfinlayson/esp8266-build container.  To use it run docker as follows:

  docker run --rm --name esp8266-build-usb -ti -v ~/container-data/builds:/home/esp/builds --device /dev/ttyUSB0:/dev/ttyUSB0 piersfinlayson/esp8266-build

Here ~/container-data/builds is a directory on the host containing the sc16is752-esp repo, and the ESP8266 device is connected to /dev/ttyUSB0 on the host.  Then run:

  cd sc16is752-esp

Followed by the build commands above.

The baud rate of the ESP8266 is assumed to be 74,880 (using the default 26KHz crystal).