1. 10
  1.  

  2. 5

    The continuing popularity of AVR is baffling to me. Is Arduino to blame?

    1. 4

      There are better chips (even from Atmel) with proper I2C controllers, but this chip has just a simple offload unit that’s at least a little better than bit-banging in pure software.

      1. 3

        I quite liked the AVR32 chips. I even still have an active product being built with an AVR32, though I imagine it’s only a matter of time until those go EOL. I’m not planning on building a new version of it, but I imagine that a new version of it would just use some sort of ARM Cortex-M chip these days.

        I’ve never liked AVR8, though that might be because I’ve only used AVR8 through an inherited Arduino-based project that is absolutely horrific.

        1. 3

          I’m not all that baffled.

          They are cheap (especially the attiny line), relatively simple to understand and well documented (good datasheets), and have great open toolchain support, with gcc, avr-libc and yes, arduino. I personally am fond of msp430 and find they should be more popular than they are.

          It was quite odd when Microchip (of PIC fame) bought the competing Atmel. It didn’t feel right when I learned about it.

          1. 2

            I personally am fond of msp430 and find they should be more popular than they are.

            Yes, MSP430 is one of the default LLVM backends.

            In GCC the support is also pretty up-to-date: https://www.ti.com/tool/download/MSP430-GCC-OPENSOURCE

        2. 2

          First hand experience here, and it’s very very true. If you need I2C on an ATTiny or any other AVR that doesn’t have dedicated I2C hardware you should consider another chip, lest you’ll be bit banging in software.

          1. 1

            Atmel’s USI can make a reasonable UART, but definitely not up to i2c usage.

            For basic debug that is alright, but I’d otherwise try for a part with a dedicated UART.

            For i2c, definitely select a part that has dedicated i2c hardware.