Page 1 of 1

Initial forays into the Nuvoton environment.

Posted: 29 Jun 2022, 23:32
by nanoController
Just some brief notes on my experiences, as a newb in Nuvoton.
I've been exploring this platform as a potential option for migrating away from Microchip/AVR. Stock levels and prices are horrendous for the latter, and indeed for most/all alternatives.

When examining the various options in micro-controllers (uC), I look for ease of migration, as a first priority. I want to know how much effort it takes to get my code up and running in the new environment. Lots of vendors offer lots of uC, and my h/w needs are met by most/all of them.

As such, when I hit the Nuvoton web site, I did not look at the product links; I'd already encountered some uC names/models elsewhere. So, instead, I looked for documentation, sample-code/HAL, and tool-links. But, documents are organized deep under the Products links, which is only _one_ place where they should be. I made the mistake of using web search, and looking for a Documentation link, instead of going deep under the Products links. The TRMs, data-sheets etc are all under the latter.

To get an idea of stock levels, digikey and techDesign.com provide some clue. Mouser does not carry Nuvoton, at the moment.
For purchase, the latter two are augmented by Nuvoton Direct, which, along with techDesign, seems to ship from Taiwan.

As I noted elsewhere, development is supported on only Windows, despite a Linux version of Eclipse being available.

Evaluation boards are available from the aforementioned vendors, for various uCs. I've yet to receive mine, but will post my experience with it.
Nu-Maker seems to be the prefix/name for the eval. boards, at least for the m031/m032 which I'm interested in.

Nu-Link is the h/w module (aka programmer, possibly debugger/OCD) that sits between the Windows development-host and the target uC. There are variants (Nu-Link, Nu-Link Pro, and a Nu-Link2) though it is unclear what the differences are between them. I did not come across a detailed list of which uC each supports, so I've bought blindly!

For a toolchain, the usual candidates of ARM GCC and (regular) GCC are available. (There was a third option I don't recall. Was it for _local_ compilation?!!!) Since an Eclipse version is provided for Linux (Nu-Eclipse), i can at least _compile_ on Linux. I'll see whether I can _write_ to the target from Linux, though I know that only Windows is supported.

To select between the variants of eg m031, the diagram on the 'home page' of each uC is very illustrative eg
https://www.nuvoton.com/products/microc ... 31-series/
IIRC the data-sheet also explains what the meanings of the various letterings are. For deeper info, the TRM must be examined, of course.

IIRC this was of some use,
https://www.nuvoton.com/selection-guide/
though it does not show stock-levels or prices. By the time I used it, I'd already decided which uC I was going to use!

Final comment: There is very little info available online, in English, with respect to Nuvoton uCs. Even this forum seems to be posted-to by only/mainly _staff_! I don't understand how, after a dozen years, there can be so little! This rings alarm bells, of course--not so much because I fear the uCs have not matured, but for lack of support. (Typically, I'd worry about the compiler, but not here.) Instead, the absence of online fora/forums/info means that any obstacle encountered (of which, for any uC, there will be many) will have no-one to discuss it with, and no record of others having encountered it before! No avrfreaks.net, which is an indispensable resource for AVRs.

Retrospect, after half a year

Posted: 21 Dec 2022, 10:04
by nanoController
Last week or so, I resumed the work on this. IOW, 6 months later.
There really is no reason why development does not (appear to) work on Linux: compilation and burning (and, i expect, printing on serial) are possible on linux. Only the code generator, PinView, PinConfigure, ClockConfigure, etc are dependent upon Windows; but those are not tools used on a daily basis. It should be possible to use them once (or every once in a while), then spend most of one's development time on Linux.
.
As it stands, some trivial bugs constitute obstacles to Linux. Nuvoton could easily fix these. Namely, 'Search Project' being needed to find helloWorld.elf; printf() not working on serial. And there are some files whose cases are wrong on linux: M031Series.h being misnamed m031Series.h, and system_M031Series.h being misnamed system_m031Series.h .

Nuvoton forum's many failures

Posted: 21 Dec 2022, 10:11
by nanoController
The trivial problems are augmented by the absence of an English forum. The current one is broken (by a few bugs), including a broken registration system. The foremost appeal of AVR is not its architecture, but its forum. Ditto Arduino. An ecosystem of contributors is an invaluable asset. This alone is an absence that continues to make me afraid of moving to nuvoton.

Re: Initial forays into the Nuvoton environment.

Posted: 12 Jan 2023, 22:50
by philculverhouse
I use the M487 within the Mbed 6 environment. Its workable. Sadly USB FS is not available, nor real-time debugging. But the code examples are useful.

I am trying to use the FS USB interface to communicate with a temperature controller (ie. the M487 acting as a host) and I cannot get comms working.

Phil