<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/ports/stm32/can.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/can: Use MP_OBJ_ARRAY_TYPECODE_FLAG_RW where appropriate.</title>
<updated>2018-06-18T03:42:05+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-06-18T03:42:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=338af99a7f3b8f2231be7475500a2bbf6a2bd723'/>
<id>urn:sha1:338af99a7f3b8f2231be7475500a2bbf6a2bd723</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32/irq: Define IRQ priorities directly as encoded hardware values.</title>
<updated>2018-05-02T04:41:02+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-05-02T04:41:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a03e6c1e05203bb71ebee50af2a41de404b05078'/>
<id>urn:sha1:a03e6c1e05203bb71ebee50af2a41de404b05078</id>
<content type='text'>
For a given IRQn (eg UART) there's no need to carry around both a PRI and
SUBPRI value (eg IRQ_PRI_UART, IRQ_SUBPRI_UART).  Instead, the IRQ_PRI_UART
value has been changed in this patch to be the encoded hardware value,
using NVIC_EncodePriority.  This way the NVIC_SetPriority function can be
used directly, instead of going through HAL_NVIC_SetPriority which must do
extra processing to encode the PRI+SUBPRI.

For a priority grouping of 4 (4 bits for preempt priority, 0 bits for the
sub-priority), which is used in the stm32 port, the IRQ_PRI_xxx constants
remain unchanged in their value.

This patch also "fixes" the use of raise_irq_pri() which should be passed
the encoded value (but as mentioned above the unencoded value is the same
as the encoded value for priority grouping 4, so there was no bug from this
error).
</content>
</entry>
<entry>
<title>stm32/can: Allow CAN pins to be configured per board.</title>
<updated>2018-04-11T06:35:24+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-04-11T06:27:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a7ebac2eaed7eb0da362568b9333339634f1da1d'/>
<id>urn:sha1:a7ebac2eaed7eb0da362568b9333339634f1da1d</id>
<content type='text'>
This patch allows a given board to configure which pins are used for the
CAN peripherals, in a similar way to all the other bus peripherals (I2C,
UART, SPI).  To enable CAN on a board the mpconfigboard.h file should
define (for example):

    #define MICROPY_HW_CAN1_TX (pin_B9)
    #define MICROPY_HW_CAN1_RX (pin_B8)
    #define MICROPY_HW_CAN2_TX (pin_B13)
    #define MICROPY_HW_CAN2_RX (pin_B12)

And the board config file should no longer define MICROPY_HW_ENABLE_CAN.
</content>
</entry>
<entry>
<title>stm32/can: Add "list" param to CAN.recv() to receive data inplace.</title>
<updated>2018-03-19T04:12:24+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-19T04:12:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=0abbafd42406e4367a80ad996bdd7047ad1e020d'/>
<id>urn:sha1:0abbafd42406e4367a80ad996bdd7047ad1e020d</id>
<content type='text'>
This API matches (as close as possible) how other pyb classes allow inplace
operations, such as pyb.SPI.recv(buf).
</content>
</entry>
<entry>
<title>stm32/can: Use explicit byte extraction instead of casting to word ptr.</title>
<updated>2018-03-16T12:52:13+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-16T12:48:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=06aa13c350af0f3910b2d99303548f31a85c0d9c'/>
<id>urn:sha1:06aa13c350af0f3910b2d99303548f31a85c0d9c</id>
<content type='text'>
Casting the Data array to a uint32_t* leads to strict aliasing errors on
older gcc compilers.
</content>
</entry>
<entry>
<title>stm32/can: Add CAN.info() method to retrieve error and tx/rx buf info.</title>
<updated>2018-03-16T07:28:35+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-16T07:28:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a25e6c6b650acf3af742920c1d3a024054c986cb'/>
<id>urn:sha1:a25e6c6b650acf3af742920c1d3a024054c986cb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32/can: Add CAN.state() method to get the state of the controller.</title>
<updated>2018-03-16T06:10:41+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-16T06:10:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d7e67fb1b40c40ba24e3a17e73e5f1b5b96f3914'/>
<id>urn:sha1:d7e67fb1b40c40ba24e3a17e73e5f1b5b96f3914</id>
<content type='text'>
This is useful for monitoring errors on the bus and knowing when a restart
is needed.
</content>
</entry>
<entry>
<title>stm32/can: Add CAN.restart() method so controller can leave bus-off.</title>
<updated>2018-03-15T06:29:30+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-15T06:29:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=1272c3c65d895e4694e0c707a98a739706667d23'/>
<id>urn:sha1:1272c3c65d895e4694e0c707a98a739706667d23</id>
<content type='text'>
</content>
</entry>
<entry>
<title>stm32/can: Add "auto_restart" option to constructor and init() method.</title>
<updated>2018-03-15T06:17:33+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2018-03-15T06:17:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=823ca03008908d98671393c00b018349d18b46a2'/>
<id>urn:sha1:823ca03008908d98671393c00b018349d18b46a2</id>
<content type='text'>
</content>
</entry>
</feed>
