linguini1 opened a new pull request, #17012:
URL: https://github.com/apache/nuttx/pull/17012

   ## Summary
   
   Initial I2C implementation such that I2C sending and receiving now works 
well enough to use the BMP280 driver for a BMP280 device connected to any of 
I2C0-I2C6 on the default pins. I2CTOOL also works for these interfaces.
   
   Functionality for "no stop" and "no start" options is not present. 
Implementing that is not clear from the peripheral datasheet and will be a 
challenge.
   
   ## Impact
   
   Allows users to make use of every I2C interface on the Raspberry Pi 4B for 
at least basic sensors and `i2ctool` usage (that is all I am able to test).
   
   Closes #16937.
   
   ## Testing
   
   These changes were tested on a Pi 4B with 4GB RAM.
   
   The test setup consisted of a BMP280 Adafruit breakout connected to the Pi 
4B using 3V3 power.
   
   In order to test, I connected the SDA and SCL pins of the breakout to each 
of teh I2C interfaces and did the following:
   
   * Ran the I2C tool scanner to verify that 0x77 showed as populated
   * Ran the I2C tool `get` command to check the ID register of the device read 
0x58
   * Registered the BMP280 driver to each of the interfaces and ran the BMP280 
example program to verify correct temperature and pressure output
   
   To my surprise, it's possible to use all of the I2C interfaces without 
having to configure any magic registers. I did not test all of the possible pin 
pairs for each I2C interface, but tested using the default pins pairs for all 
of them. I also tested using all of the interfaces simultaneously, which 
surprisingly worked.
   
   Here is example output from the BMP280 program and I2C tool programs:
   
   ```console
   nsh> bmp280
   Absolute pressure [hPa] = 983.099976
   Temperature [C] = 24.129999
   ```
   
   ```console
   nsh> i2c dev -b 3 00 77
   NOTE: Some devices may not appear with this scan.
   You may also try a scan with the -z flag to discover more devices using a 
zer.
        0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
   00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
   10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
   20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
   30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
   40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
   50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
   60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
   70: -- -- -- -- -- -- -- 77                         
   nsh> 
   ```
   
   More information/logs can be found in the comments of #16937.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to