Chopstx 1.15

NIIBE Yutaka gniibe at
Tue May 14 04:00:00 CEST 2019


Chopstx 1.15 is released.

	tag release/1.15
	Tagger: NIIBE Yutaka <gniibe at>
	Date:   Tue May 14 10:31:58 2019 +0900
	commit 4f46af7557c7bc0e4dfca756dd93e2ad8c0d9871

Change are:

    * Cortex-M4 support
    Cortex-M4 support has been added.  Not supporting use of FPU or DSP,
    yet.  Note that it's not intend to be used by Gnuk.

    * STM32L432 support
    USART and USB drivers are added.

    * New board support: ST Nucleo-32 L432
    ST Nucleo-32 L432 is a small board with ST-Link/V2-1.

    * Minor implementation change: chopstx_claim_irq
    If the interrupt is disabled (possibly by chx_intr) when
    chopstx_claim_irq is called, INTR->ready is set to 1.  This allows
    calling chopstx_claim_irq after hardware initialization which may
    cause an interrupt before the call of chopstx_claim_irq.

and then, changes for USB:

    * SYS version 4.0
    USB initialization/finalization API has been changed.  SYS routines
    only handle USB cable configuration when supported by a board.

    * USB driver change
    Enabling/disabling USB module is done by USB driver.  It's
    responsibility of board configuration to enable external transistor
    for pull-up D+-line by board/*.h.  For all boards, USB driver doesn't
    use usb_lld_sys_init or usb_lld_sys_shutdown (those routines only can
    be used for USB self powered system, which Chopstx does not support

    * Board configuration change
    For USB driver change, board-maple-mini.h, board-olimex-stm32-h103.h,
    board-stbee.h, and board-stm32-primer2.h were changed.  Pull-up is
    enabled at the time of gpio_init.

After ten years of experience, by comparing a board of STM32L432, I
finally understand the exact reason (and confusion) why some boards of
STM32F103 have a transistor to pull-up D+ line of USB.  It is required
to conform the USB specification not driving D+ line at start when a
board runs in self-powered mode.  And it can be used (for both of
self-powered and bus-powered) to disconnect USB from device side.

The latter can be done by other method, making SE0 state (by driving
both of D+ line and D- line to GND).  So, it is OK for bus-powered
system to have fixed pull-up resistor on D+ line.

Since modern MCU like STM32L432 has internal pull-up resistor support,
there is no difference among boards.

			*	*	*

I ported Chopstx to STM32L432, because of this:

   Tian Tian Xiang Shang - Another Hardware:

Version 0.0 of Tian Tian Xiang Shang (a smartcard reader implementation)
is avaiable at:;a=summary

More information about the Gnuk-users mailing list