That SAM microcontroller is interesting. The 32-bit ARM core is basically oriented toward computer use and not controller use, so the instruction set isn’t really quite right for the job. Frankly the whole chip is overly complicated. Some years ago I used a 32-bit ARM core microcontroller from another vendor on the job. I’m not …
The AVR-based Arduino boards use a Counter/Timer overflow interrupt to implement the system tick that is used in the micros(), millis(), and delay() functions. The SAMD21-based Arduino boards use the SysTick counter to implement the same functionality, but seeking out how it does it is a bit move involved. Looking at things top-down, this functions …
Very pleased to look on Amazon and see this: It is the number one new release in Digital Design, like Far Inside The Arduino got two years ago. Doesn’t really mean much though, just like the last time. What I really need are purchasers of my Arduino books to write reviews, especially if you like …
Looking at 3.3v microcontrollers like the SAMD in the newer Arduino boards, it is frequently necessary to do level conversions between 3.3v and 5v logic. Sometimes you can get away with not using a level converter, but certainly far from always! I looked at a couple of inexpensive commercial adapter boards. These are bidirectional which …
Before I potentially dive in with writing a Far Inside SAMD21 book I decided to spend some time just looking at the architecture as well as what Arduino does with it. I did find that there is a lot of code overhead. So the potential savings of coding to “bare metal” is very much reduced. …
So I just finished the Still Far Inside The Arduino book and am starting to consider a new project. The Arduino Nano 33 IoT caught my eye. While still a bit more expensive than clone Uno or Nano boards, it is the second lowest cost genuine Arduino board, second only to the Arduino Nano Every. …
My latest book has now become available on Amazon. Still Far Inside The Arduino continues the theme of Far Inside The Arduino and the Nano Every Supplement by using programming techniques and drivers more advanced than what Arduino promotes. Topics include: Distinctions among the various general purpose Arduino boards: ATmega328P based like the Arduino Uno …
Finally I finished the first draft of my next book Son of Far Inside The Arduino* along with writing and testing about 35 example programs, almost all of which had to be tested on Arduino boards using the four different AVR microcontrollers the book covers. I think I spent more time on the example programs …
OK, I was going to give examples where reenabling interrupts was necessary for smooth, error-free operation. But then I hit a snag. It turns out that interrupts cannot be reenabled simply with sei() in the ATmega4809 in the Arduino Nano Every! There is an important difference in operation compared to the other AVR microcontrollers used …
Using a timer/clock interrupt, one that occurs at a regular rate, can be useful in managing tasks, providing a pseudo-operating system with essentially no overhead. The code for each task is laid out one after another in the ISR. For tasks that we want to execute at regular intervals we arrange the task like this, …