<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/ports/stm32/machine_i2c.c, branch main</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=main</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2019-10-13T15:08:52+00:00</updated>
<entry>
<title>remove ports/stm32</title>
<updated>2019-10-13T15:08:52+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2019-10-13T15:08:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=fc033bd954a46156d6902392f8ae21ac2872bb1c'/>
<id>urn:sha1:fc033bd954a46156d6902392f8ae21ac2872bb1c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32: Add support for STM32F0 MCUs.</title>
<updated>2018-05-28T11:49:49+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-28T08:10:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=ea7e747979c2f27eb90f9a6ba292c500eb288dd4'/>
<id>urn:sha1:ea7e747979c2f27eb90f9a6ba292c500eb288dd4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32/machine_i2c: Use new F4 hardware I2C driver for machine.I2C class.</title>
<updated>2018-05-14T03:22:12+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-14T03:20:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=ce824bb67eb3a6a48460f24f041e6e91f8faa24c'/>
<id>urn:sha1:ce824bb67eb3a6a48460f24f041e6e91f8faa24c</id>
<content type='text'>
And remove the old one based on ST code.
</content>
</entry>
<entry>
<title>stm32/machine_i2c: Provide hardware I2C for machine.I2C on F7 MCUs.</title>
<updated>2018-04-24T13:48:04+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-04-24T07:34:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=9254f365d67ce58b4e90999fff314513a6c2413b'/>
<id>urn:sha1:9254f365d67ce58b4e90999fff314513a6c2413b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32: Rename legacy pyb.I2C helper functions to start with pyb_i2c_.</title>
<updated>2018-04-24T07:32:16+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-04-24T07:32:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=0c54d0c28824dca608364e5cb64d00f607dc1209'/>
<id>urn:sha1:0c54d0c28824dca608364e5cb64d00f607dc1209</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32: Change pin_X and pyb_pin_X identifiers to be pointers to objects.</title>
<updated>2018-03-28T05:29:50+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-28T05:13:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=2dca693c24f9bcadb1e06113848fff620d8088dd'/>
<id>urn:sha1:2dca693c24f9bcadb1e06113848fff620d8088dd</id>
<content type='text'>
Rather than pin objects themselves.  The actual object is now pin_X_obj and
defines are provided so that pin_X is &amp;pin_X_obj.  This makes it so that
code that uses pin objects doesn't need to know if they are literals or
objects (that need pointers taken) or something else.  They are just
entities that can be passed to the map_hal_pin_xxx functions.  This mirrors
how the core handles constant objects (eg mp_const_none which is
&amp;mp_const_none_obj) and allows for the possibility of different
implementations of the pin layer.

For example, prior to this patch there was the following:

    extern const pin_obj_t pin_A0;
    #define pyb_pin_X1 pin_A0
    ...
    mp_hal_pin_high(&amp;pin_A0);

and now there is:

    extern const pin_obj_t pin_A0_obj;
    #define pin_A0 (&amp;pin_A0_obj)
    #define pyb_pin_X1 pin_A0
    ...
    mp_hal_pin_high(pin_A0);

This patch should have minimal effect on board configuration files.  The
only change that may be needed is if a board has .c files that configure
pins.
</content>
</entry>
<entry>
<title>stm32: Consolidate include of genhdr/pins.h to single location in pin.h.</title>
<updated>2018-03-27T09:25:24+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-27T09:25:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6b51eb22c8200124bd1639f542f7757edb82e736'/>
<id>urn:sha1:6b51eb22c8200124bd1639f542f7757edb82e736</id>
<content type='text'>
genhdr/pins.h is an internal header file that defines all of the pin
objects and it's cleaner to have pin.h include it (where the struct's for
these objects are defined) rather than an explicit include by every user.
</content>
</entry>
<entry>
<title>stm32: Use STM32xx macros instead of MCU_SERIES_xx to select MCU type.</title>
<updated>2018-03-16T23:42:50+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-16T23:42:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e37b8ba5a55c99dbd1e69eb1c99651307b22fd3e'/>
<id>urn:sha1:e37b8ba5a55c99dbd1e69eb1c99651307b22fd3e</id>
<content type='text'>
The CMSIS files for the STM32 range provide macros to distinguish between
the different MCU series: STM32F4, STM32F7, STM32H7, STM32L4, etc.  Prefer
to use these instead of custom ones.
</content>
</entry>
<entry>
<title>stm32/i2c: On F4 MCUs report the actual I2C SCL frequency.</title>
<updated>2018-03-07T03:59:03+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-07T03:59:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=024edafea06ef92ebd2c2be7131e2a12f9dfc54b'/>
<id>urn:sha1:024edafea06ef92ebd2c2be7131e2a12f9dfc54b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32: Allow to build a board without any hardware I2C ports defined.</title>
<updated>2017-12-22T04:20:42+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2017-12-22T04:20:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=c73360bfdbecb0e2143147a7e7223c8161938456'/>
<id>urn:sha1:c73360bfdbecb0e2143147a7e7223c8161938456</id>
<content type='text'>
This patch adds in internal config value MICROPY_HW_ENABLE_HW_I2C that is
automatically configured, and enabled only if one or more hardware I2C
ports are defined in the mpconfigboard.h file.  If none are defined then
the pyb.I2C class is excluded from the build, along with all supporting
code.  The machine.I2C class will still be available for software I2C.

Disabling all hardware I2C on an F4 board saves around 10,000 bytes of code
and 200 bytes of RAM.
</content>
</entry>
</feed>
