The EEPROM library (https://docs.arduino.cc/learn/built-in-libraries/eeprom) has functions for reading and writing single bytes but no function for erasing. The EEPROM in the AVR microcontrollers are capable of erasing and writing single bytes and 100,000 erase/write cycles in a location is the design maximum before the EEPROM will wear out. To maintain compatibility, the EEPROM functions in …
Today I got the new Arduino Uno R4 boards in the mail. This includes the Minima and Wifi models, but this post will just concern itself with the Minima. The R4 Minima is much less expensive than the R3, but still a bit more than a good R3 clone like the Elegoo. You can see …
The DAC (analogWrite to A0 in Arduino Nano 33 IoT, MKR, and Zero boards) isn’t specified to work to the extreme limits. Basically it doesn’t go below 50mV or above 3.25 volts. While the Arduino documentation doesn’t mention this, the datasheet does in section 37.11.5. While the DAC is 10 bits, the analogWrite function reduces …
The Analog to Digital Converter in the SAMD21 is specified to run with a clock frequency from 30 to 2,100 kHz. The Arduino Library configures the ADC clock to be the 48 MHz system clock divided by 256, or 187.5 kHz, or a clock period of 5.33 µs. The conversion time is 7 clock periods, …
The SAMD21 based Arduino boards have a 10 bit DAC, so naturally I wanted to generate a sine wave! Some years ago when I was teaching microcontrollers I had students build a DAC using a resistor ladder. The microcontroller, a 68HCS12, used a timer interrupt to advance the value to the DAC by indexing a …
Next month Amazon is raising their printing costs for printed books by Kindle Direct Publishing. The increase is very small for all of my books except the old 68HCS12 title. I decided to absorb the cost increase, although Amazon has made it easy to apply price increases. This could mean that other KDP books might …
The Seeedstudio XIAO SAMD21 is a small board with 14 pins that is highly compatible with Arduino’s SAMD21 based microcontroller boards (Nano 33 IoT, Zero, and the MKR series of boards). It contains only the microcontroller, a crystal oscillator (which the Nano 33 IoT does not have), voltage regulator and a “modern” USB-C connector for …
The ARM-based (SAMD21) Arduino Nano 33 IoT might have been rushed into production based on a somewhat deficient assignment of Timer/Counters to PWM pin functions. Arduino documentation claims 11 PWM pins: D2, D3, D5, D6, D9, D10, D11, D12, A2, A3, and A5. However the following is not documented: This means there are only really …
My earlier blog posts about FreeRTOS on the ATmega4809 (Arduino Nano Every) were for an older version of the FreeRTOS distribution, 10.3.0-9. The instructions for making the patches to the code don’t quite work for the more recent distributions like 10.5, so to use you will need to either install an older version or work …
Today I’m going to revisit the Real Time Counter (RTC) in the SAMD21 microcontroller. When running in real time clock mode (mode 2) a single register holds the date/time value with separate bit fields for year, month, day, hour, and seconds. The value can be printed out with this code: But there are some issues …