Thales' cellular IoT products business is now part of Telit Cinterion, find out more.

You are here

BGS5 - I2C restarts | Telit Cinterion IoT Developer Community

December 18, 2017 - 10:48am, 5047 views


We have been experimenting with getting I2C running between the BGS5 and an Arduino, however whenever we try to transmit a packet, the module immediately restarts -- the USB disconnects, and shortly after the ^SYSLOADING and ^SYSSTART URCs are received again.

The AT commands we are testing with are:

AT^SSPI=            (Connect with default parameters)

CONNECT           (Connected, OK so far)

<a3001>              (Send example byte 0x01 to address 30)

(No response, module instantly reboots)

I've also tried the example in the AT Command Set reference document, that behaves in the same way.

Hardware wise, I've tried three different configurations:

  • Leaving the I2CDAT and I2CCLK pins disconnected entirely.
  • Connecting I2CDAT and I2CCLK to V180 with 2k pullup resistors (so sink current should be ~1mA, within the 4mA limit specified in the hardware document)
  • Connecting I2CDAT and I2CCLK to a level shifter (still with the pullup to V180 on the low side), and the high side to a 5V Arduino running a sample I2C slave application, which just echoes the received I2C data to the screen.

In all instances the module restarts as soon as the test byte is sent.

Placing an oscilloscope on the I2CDAT and I2CCLK lines, both lines remain high at all *****. No attempt appears to be made to drive either line low when sending the frame.

I have a feeling it is a software / configuraton problem, as if the reboot was due to the slave not responding, or some other electrical issue, would it not be visible to see on the scope the module at least trying to send the address byte first before restarting?

Other possibly relevant info:

  • Both ASC0 and ASC1 are in use (Serial/Interface/Allocation = 1) - is it possible to use I2C when both serial ports are used?
  • No other userware is running (other than the JRC)
  • Firmware version is 01.100 and A-Revision is 00.000.21
  • V180 is also used to hold EMERG_RST high via another 2k2 pullup. I've had the scope on this pin also and it doesn't appear to drop.
  • Tried with two separate modules with the same result.
  • AT^SCFG? output:

^SCFG: "Call/ECC","0"
^SCFG: "GPRS/AutoAttach","enabled"
^SCFG: "Gpio/mode/ASC1","std"
^SCFG: "Gpio/mode/DAI","gpio"
^SCFG: "Gpio/mode/DCD0","gpio"
^SCFG: "Gpio/mode/DSR0","gpio"
^SCFG: "Gpio/mode/DTR0","gpio"
^SCFG: "Gpio/mode/FSR","gpio"
^SCFG: "Gpio/mode/PULSE","gpio"
^SCFG: "Gpio/mode/PWM","gpio"
^SCFG: "Gpio/mode/RING0","std"
^SCFG: "Gpio/mode/SPI","rsv"
^SCFG: "Gpio/mode/SYNC","gpio"
^SCFG: "Ident/Manufacturer","Cinterion"
^SCFG: "Ident/Product","BGS5"
^SCFG: "MEShutdown/Fso","0"
^SCFG: "MEopMode/SoR","on"
^SCFG: "Radio/Band","15"
^SCFG: "Radio/OutputPowerReduction","4"
^SCFG: "Serial/Interface/Allocation","1","1"
^SCFG: "Serial/USB/DDD","0","0","0409","1E2D","0059","Cinterion Wireless Modules","Cinterion BGx USB Com Port",""
^SCFG: "Tcp/IRT","3"
^SCFG: "Tcp/MR","10"
^SCFG: "Tcp/OT","6000"
^SCFG: "Tcp/WithURCs","on"
^SCFG: "Trace/Syslog/Otap","0"
^SCFG: "URC/Ringline","local"
^SCFG: "URC/Ringline/ActiveTime","2"
^SCFG: "Userware/Autostart","1"
^SCFG: "Userware/Autostart/Delay","50"
^SCFG: "Userware/Passwd",
^SCFG: "Userware/Stdout","usb1",,,,"off"
^SCFG: "Userware/Watchdog","1"

Does anyone have an idea what would be causing the restarts in this case?

Thanks in advance,