Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Apr 2021 11:17:03 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        Mark Murray <markm@freebsd.org>
Cc:        freebsd-arm <freebsd-arm@freebsd.org>
Subject:   Re: I2C/IIC working on RPI4 8GB?
Message-ID:  <A10EA46D-6FE5-4FCD-895C-5A08A974D6DB@yahoo.com>
In-Reply-To: <486E3EA3-EBAE-492E-B12E-E72E3E3E7B6A@FreeBSD.org>
References:  <1C2DD11C-B1F6-4C2A-9AB0-5F1553520FF5@FreeBSD.org> <20210426161138.a8f44b6e1134f73a411be57d@bidouilliste.com> <CF4C4332-BB2F-47E9-B879-8EEA0E53E848@FreeBSD.org> <C4828BF2-E8B7-45D1-B0F8-5E72AF84D565@yahoo.com> <47A634E3-4938-4AFC-9341-E480CEBF67FB@FreeBSD.org> <20210428101945.67417ef8eba251dcbcb38078@bidouilliste.com> <ED9ABBBE-9B5A-4B51-806C-F91AABE39731@FreeBSD.org> <486E3EA3-EBAE-492E-B12E-E72E3E3E7B6A@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help


On 2021-Apr-29, at 09:57, Mark Murray <markm at freebsd.org> wrote:

> On 28 Apr 2021, at 22:07, Mark Murray <markm at FreeBSD.org> wrote:
>>=20
>> On 28 Apr 2021, at 09:19, Emmanuel Vadot <manu@bidouilliste.com> =
wrote:
>>=20
>>> According to this document is this just to detect that the slave =
hold
>>> the scl line too long so I don't think that this is the problem =
here.
>>> If you have a scope or a logic analyzer I suggest you start by using
>>> it to confirm that when you scan with i2c -s you see something.
>>=20
>> As it turns out, my logic analyser arrived today.
>=20
> I got an oscilloscope onto pins 3 and 5 (GPIO2 and GPIO3), and "i2c =
-s" does not a jot on them.
>=20
> I don't know if this helps, but the gpioctl utility thinks the pins =
are both inputs:

Looking around, I see:

https://github.com/raspberrypi/hats/blob/master/designguide.md

says:

QUOTE
The default state for all Bank 0 pins will be inputs with either a pull =
up or pull down. The default pull state can be found in the BCM2835 =
peripherals specificaion section 6.2 table 6-31 (see the "Pull" column). =
It will require positive software configuration to change the state of =
these pins.

The one exception to this rule is ID_SC and ID_SD. GPIO0 (ID_SD) and =
GPIO1 (ID_SC) will be switched to ALT0 (I2C-0) mode and probed for an =
EEPROM at boot time. These pins will revert to inputs once the probe =
sequence has completed.
END QUOTE

https://github.com/raspberrypi/hats has some other documents
as well.

If this note is redundant for you, sorry.

> [root@grasshopper ~]# gpioctl -f /dev/gpioc0 -l -v
> pin 00:	1	pin 0<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 01:	1	pin 1<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 02:	1	pin 2<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 03:	1	pin 3<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 04:	1	pin 4<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 05:	1	pin 5<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 06:	1	pin 6<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 07:	0	pin 7<OUT>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 08:	0	pin 8<OUT>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 09:	0	pin 9<>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 10:	0	pin 10<>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 11:	0	pin 11<>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 12:	0	pin 12<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 13:	0	pin 13<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 14:	1	pin 14<>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 15:	1	pin 15<>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 16:	0	pin 16<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 17:	0	pin 17<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 18:	0	pin 18<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 19:	0	pin 19<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 20:	0	pin 20<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 21:	0	pin 21<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 22:	0	pin 22<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 23:	0	pin 23<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 24:	0	pin 24<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 25:	0	pin 25<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 26:	0	pin 26<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 27:	0	pin 27<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 28:	1	pin 28<>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 29:	0	pin 29<>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 30:	1	pin 30<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 31:	1	pin 31<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 32:	0	pin 32<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 33:	0	pin 33<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 34:	1	pin 34<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 35:	1	pin 35<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 36:	1	pin 36<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 37:	1	pin 37<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 38:	1	pin 38<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 39:	1	pin 39<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 40:	0	pin 40<>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 41:	0	pin 41<>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 42:	0	pin 42<OUT>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 43:	1	pin 43<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 44:	1	pin 44<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 45:	1	pin 45<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 46:	0	pin 46<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 47:	0	pin 47<IN>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 48:	0	pin 48<>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 49:	0	pin 49<PU>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 50:	0	pin 50<PU>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 51:	0	pin 51<PU>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 52:	0	pin 52<PU>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>
> pin 53:	0	pin 53<PU>, =
caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB>




=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A10EA46D-6FE5-4FCD-895C-5A08A974D6DB>