Creative Commons images are CC BY-NC-SA 3.0

14.95

added to your
shopping cart

quantity
In stock 37 in stock
14.95 1+ units
13.46 10+ units
11.96 100+ units

Description: This is a breakout board for the SC16IS750, a handy chip used to convert I2C or SPI serial signals to a single-channel, high-performance UART. As an application example: we use this chip on our WiFly Shield to allow an Arduino to communicate with the WiFly RN-131G module - which is normally controlled via a UART - using an SPI interface. This allows for greater communication speeds and frees up the Arduino's UART for other purposes.

Power applied to the 'VIN' pin is sent through a 3.3V LDO regulator before powering the IC. The input pins of the SC16IS750 are 5.5V tolerant, so this board should work with both 3.3V and 5V controllers. Also populated on the board is a 14.7456MHz crystal, to serve as a clock input to the chip, and other supporting components.

This board breaks out all pins of the SC16IS750 to two breadboard friendly 11-pin, 0.1" pitch headers.

Dimensions: 1.10x0.90" (27.9x22.9mm)

Documents:

Replaces: BOB-09745. The reason for the replacement is the 12.288MHz crystal on BOB-09745 did not allow for the full range of baud rates. The 14.7456MHz crystal on this board increases the functionality to include all of the common baud rates from 9600 up to 921600.

Comments 29 comments

  • I created a basic sketch to setup and test (using NewSoftSerial) this board with just an Arduino. Now you don’t have to go wading through the WiFly library. Also, unlike the WiFly library, it uses the the native Arduino SPI code, so you’ll need a new-ish version of the IDE. Enjoy!
    SC16IS750_Test.zip

  • Sparkfun, on the next batch, will you fix the PCB? As stated earlier, there is no connection between \IRQ (interrupt pin) and the output header. The connection is present in the schematic, but missing in the PCB. This pin is essential to let the micro know when to read data without resorting to polling.
    Other than that problem (I got around it using a jumper wire), this item is great for adding additional serial ports. In the near future I’ll be releasing some code for Arduino using the I2C port.

    • Hi Rob,
      How exactly did you solder the jumpwire? One end at the /IRQ pin I suppose and the other?

      • Sorry, I never actually got it to work. I thought I had soldered it correctly, connecting the jumper between the pull-up resistor and the /IRQ header, however upon further testing it was not connected properly. Further attempts to fix the jumper resulted in the destruction of the pcb trace connected to the /IRQ pin on the chip. Unfortunately I do not have the proper equipment to solder directly to the chip pins.

  • I’ve been trying to get this board to work without much luck. SI toggles just fine but SO remains high and I always readback 0xff from any register.

    As a starting point, I just hooked up ground, 3v3 (on VIN), /SPI (to ground) and pulled SPI bus lines to my Aardvark SPI adapter and my Beagle I2C/SPI bus analyzer.

    The SC16IS750 doesn’t seem to be alive at all. I know it’s not the analyzer/bus-master because if I short SI/SO the analyzer sees the data just fine.

    Any hints ?

  • Would anyone happen to have a Raspberry Pi driver/example for this board?

  • So does this only work SPI/I2C > UART or does it also work as UART > SPI/I2C? I’d like to control an SPI LCD with a UART. Would this allow me to do that?

    • Unfortunately no. This thing is only an SPI slave, not a master, which would be required to work in reverse, unless by some weird chance your lcd can be a master.

  • does the input voltage have to be 5.5 or can i power it from 3.3 volts ?

  • There’s another gotcha to this part. The data sheet well hides a crucial part of what you write to the subaddress register. See http://forum.sparkfun.com/viewtopic.php?f=14&t=25019

  • I’m trying to get this board working with the transparent terminal sketch

    I’ve fixed the ocillator issue in the code 0x50->0c60 and I’ve tried with two boards – one with the IRQ jumper and one without. In either case, the data gets garbled in transmission. There is a pattern to it. For example for an input of ‘1’ I get ‘g’, 3->f, 5->e, 7->d, 9->c, a->O, c->N. I haven’t found the pattern for even input values.

    Anyone have ideas/suggestions?

    • inmcm’s test program works fine. I only have problems wiring up to a UART on the PC. I’ve tried multiple PCs, cables, and terminal emulators. STUMPED!!!

  • Just to help everyone out, this board works perfectly fine once a short jumper wire is soldered between the IRQ pin connected to the header JP4.5, and the /IRQ net on the chip side of the pull-up resistor R2. Just make sure that R2 is not disconnected from its pad when soldering on the jumper wire.

    • I agree the fix is easy… if you have a small enough wire, ironing tip and soldering skills.

      What actually bugs me is that there was not a single reply from SparkFun on this issue… I would have probably been ok with a simply apology, though I think SF should offer a free replacement service for this board no matter where you bought it (directly or through a retailer). Simply ignoring the issue isn’t what I consider “customer service”.

  • If anyone was worried about being able to go below the 9600 baud floor mentioned above, don’t be. With that crystal you should be able to go all the way down to about 4 baud (not quite DC, but pretty darn close). The spec sheet says we get a 16-bit divisor, with an optional divide-by-4 prescaler. It gives the formula:

    divisor=(XTAL1 crystal input frequency/prescaler)/(desired baud rate * 16)

    (14.7456E6/4)/(4*16) = 57600

  • I bought this at a reseller and didn’t look here until I noticed the IRQ problem myself. It should have been easily spotted during QA that there is nothing going to that pin.

    I think it’s quite a big f-up… and of course now that I soldered break-away headers to the board I can’t give it back :(

  • I can see the error with the IRQ in the schematic. On the chip the net connected to pin 11 is named /IRQ, however the net connected to pin 5 of the header is named IRQ. Eagle didn’t connect the two pins because the nets are mislabeled.

  • can we use this product to read the data from the OS4000T compass in a I2C bus?

  • Sparkfun, In your Schematic you use the net name /IRQ on the chip side, but use IRQ on the header side. Please fix.
    For others who need a work around, it looks like you can solder a jumper wire from the right hand side of the resistor to the /IRQ Pin.
    to put it another way, as you look at the /IRQ header, solder to the resistor on the side between the resistor and the IC.

  • Are there any plans to modify the board to connect the /IRQ terminal on JP4 to IC1?

  • Just found out the hard way and here is a problem: There is no connection between JP4 pin 5 (IRQ) and pin 11 of IC1. Hope it help other.

  • Does anyone have any insight on how to write a Linux tty driver that interfaces to the SC1616IS750? I have a gumstix, and it would be great if I could talk to the UART as a tty device.
    Thanks,
    Paul

  • Can this chip do 31250 bps? I am planning an Arduino project that needs two independent MIDI interfaces; I know the ATMega1280 can do this but I’d rather stick with the good ol' 328.

  • For some of the beginners on this technology, please refer to the following link on details on the I2C (or IIC) - this link gives a fairly good description on what-is-it and how-can-you-work-with-it.
    http://www.i2c-bus.org/
    Cheers

  • The datasheet appears to be a copy of the schematic. Copyover problem?


Related Products