connect me 9210 i2c intro ?

hello everyone.

I recently got my hands on a Connect me 9210 Net OS development kit, but found myself a bit lost in all the informations.

it seems, that in order to use I2C on the devboard, I have to use the manufacturing flash header (mfg) on the devboard, as the i2c related pins 17/18 go to pins 2/3 of the mfg.

Then I added resistors - 4,7k (which I tested on 3.3v I2C on a handy arduino working fine), later on I found an updated version of hardware reference, which states to use 10k, I tried even the 10k resistors…

I also had to update the gpio.h for it to use the pins.
I did this by setting BSP_GPIO_MUX_I2C to BSP_GPIO_MUX_USE_PRIMARY_PATH - I made no other changes to the default gpio.h file.

NAI2CInit is a success, but I struggle working with the devices, as everything returns error-aborted

I tried to fiddle with DS2482 and DS3231, both working fine with arduino.

Later on I found out, that pins 17-18 are stated as C4-C1 in the pinout table for ME and WI-ME model, i thought that setting BSP_GPIO_MUX_SERIAL_C could have any effect, so i changed this to internal use only - without any luck.

I even tried connecting pins from the signal rail, but no luck either.

I am getting frustrated with my Digi experience, as I came to Connect me 9210 after trying three days to work with adc on rabbitcore 3750 just to find out that the adc chip on development board is dead.

I would appreciate any hints on what am I doing wrong or missing.

Thanks !

For the correct pin locations you can refer to the schematics of the development board here:
and the Pin-out table in ME9210 HRM here:
in particular this one:

Indeed this should be:

Can you also compare/check the configuration registers for NS9210 GPIOs 9 and 12 and make sure those are indeed configured to function 1:
The document NS9210 Hardware Reference describes registers responsible for the configuration of various parts of the processor is located here:

for GPIOs you are interested mainly in 2 registers:
GPIO Configuration Register #2 Address: A090_2008 (bits 8-15 for GPIO[9]) see page 43
GPIO Configuration Register #3 Address: A090_200C (bits 0-7 for GPIO[12]) see page 43
The values of the bits are explained on page 41, but the first step would be to read them in your application in both modules and compare values.

I2C registers are described on page 476
You can also look at the value of 9005 000C Configuration register

Working with registers should be as easy as described n the example below:

printf("A090_2008 : %x

", *((volatile unsigned long *)0xA0902008));
printf("A090_200C : %x
", *((volatile unsigned long *)0xA090200C));
printf("9005_000C: %x
", *((volatile unsigned long *)0x9005000C));

NAconfigureGPIOpin(9, 0x08, 1);
printf("A090_2008 : %x

", *((volatile unsigned long *)0xA0902008));

You should then try this C:
ai2capp\ example. Development board does not have a part it’s trying to drive, but if you connect a scope or I2C analyzer to the appropriate pins (MFGO and MFGI), you should see I2C signals. Make sure user push button SW2 is not pressed. You can also find those signals on header P3 (17 & 18)

Hi Leonid, thanks for your reply.

I ordered the I2C part the example is built on, imported the example, added the code You suggested, and the the results are :
A090_2008 : 1c0818
A090_200C : 1c1808
if I am reading it correctly, both pins are set to I2C communication - as on function 1.

the I2C register however does not make much sense to me, as the output is :
9005_000C: f74

the example ends with :
returned 8
Failed to access config register
Test failed
I2C test failed

I checked the wiring several times, all is exactly as written above. I am not sure if the pushbutton is two-stated, but i tried running it and clicking inbetween just to be sure if it was.

not sure what to do now :frowning:

thanks for any input

please reply to your case through the support portal

Not specific to NET+OS but for Linux:
The hardware / pins considerations should match.