<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/ports/stm32/Makefile, 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>WIP: after merge; before testing</title>
<updated>2018-07-11T20:45:30+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2018-07-11T20:45:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=7c219600a246d8956d0b23ea3f5d125a820e6b6a'/>
<id>urn:sha1:7c219600a246d8956d0b23ea3f5d125a820e6b6a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32/Makefile: Rebuild all qstrs when any board configuration changes.</title>
<updated>2018-06-12T03:53:43+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-06-09T05:33:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=5042d98514cb498bcc3cf22b6fcaae8ab4cb768b'/>
<id>urn:sha1:5042d98514cb498bcc3cf22b6fcaae8ab4cb768b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32: Add network driver for Wiznet5k using MACRAW mode and lwIP.</title>
<updated>2018-06-01T04:21:38+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-06-01T04:21:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=7d86ac6c0197abddd4ccff92154af326da083558'/>
<id>urn:sha1:7d86ac6c0197abddd4ccff92154af326da083558</id>
<content type='text'>
The Wiznet5k series of chips support a MACRAW mode which allows the host to
send and receive Ethernet frames directly.  This can be hooked into the
lwIP stack to provide a full "socket" implementation using this Wiznet
Ethernet device.  This patch adds support for this feature.

To enable the feature one must add the following to mpconfigboard.mk, or
mpconfigport.mk:

    MICROPY_PY_WIZNET5K = 5500

and the following to mpconfigboard.h, or mpconfigport.h:

    #define MICROPY_PY_LWIP (1)

After wiring up the module (X5=CS, X4=RST), usage on a pyboard is:

    import time, network
    nic = network.WIZNET5K(pyb.SPI(1), pyb.Pin.board.X5, pyb.Pin.board.X4)
    nic.active(1)
    while not nic.isconnected():
        time.sleep_ms(50) # needed to poll the NIC
    print(nic.ifconfig())

Then use the socket module as usual.

Compared to using the built-in TCP/IP stack on the Wiznet module, some
performance is lost in MACRAW mode: with a lot of memory allocated to lwIP
buffers, lwIP gives Around 750,000 bytes/sec max TCP download, compared
with 1M/sec when using the TCP/IP stack on the Wiznet module.
</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: Integrate lwIP as implementation of usocket module.</title>
<updated>2018-05-21T07:36:06+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-21T06:48:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=cda964198a36e8d1ce4497d90484fae4b9d661a5'/>
<id>urn:sha1:cda964198a36e8d1ce4497d90484fae4b9d661a5</id>
<content type='text'>
This patch allows to use lwIP as the implementation of the usocket module,
instead of the existing socket-multiplexer that delegates the entire TCP/IP
layer to the NIC itself.

This is disabled by default, and enabled by defining MICROPY_PY_LWIP to 1.

When enabled, the lwIP TCP/IP stack will be included in the build with
default settings for memory usage and performance (see
lwip_inc/lwipopts.h).  It is then up to a particular NIC to register itself
with lwIP using the standard lwIP netif API.
</content>
</entry>
<entry>
<title>stm32/Makefile: Use -O2 to optimise compilation of lib/libc/string0.c.</title>
<updated>2018-05-04T05:53:51+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-04T05:53:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=aea71dbde0d7bc31d9ac40ee1905c884fbf7b0de'/>
<id>urn:sha1:aea71dbde0d7bc31d9ac40ee1905c884fbf7b0de</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32/i2c: Add low-level I2C driver for 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:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=19778d0a3c8e819fd7e7408cf9081b25911f8a3c'/>
<id>urn:sha1:19778d0a3c8e819fd7e7408cf9081b25911f8a3c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32: Rename i2c.c to pyb_i2c.c.</title>
<updated>2018-04-24T06:23:36+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-04-24T06:23:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=b73adcc3d90da7fd2a66b76161b661a603403506'/>
<id>urn:sha1:b73adcc3d90da7fd2a66b76161b661a603403506</id>
<content type='text'>
i2c.c implements the legacy pyb.I2C class so rename the file to make this
explicit, and also to make room for an improved I2C driver.
</content>
</entry>
<entry>
<title>stm32: Add custom, optimised Reset_Handler code.</title>
<updated>2018-03-29T04:29:23+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-29T04:24:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d9e69681f5c100076aec5fb9a9ec00add3aa22b0'/>
<id>urn:sha1:d9e69681f5c100076aec5fb9a9ec00add3aa22b0</id>
<content type='text'>
The Reset_Handler needs to copy the data section and zero the BSS, and
these operations should be as optimised as possible to reduce start up
time.  The versions provided in this patch are about 2x faster (on a Cortex
M4) than the previous implementations.
</content>
</entry>
</feed>
