I was looking for a little guidance on when and where it is best to use an external clock crystal (as opposed to the internal oscillator) in the newer ATTiny series of MCUs. My current situation is that I am designing a circuit using the ATtiny1616 to run some Lumissil IS31FL3195 LED Driver ICs. The voltage is at 3.3v and I wasn't sure if it would make any difference to use an external oscillator or not. The drivers use a 1MHz I2C bus interface, so I guessed it would be problematic if using the 32.768KHz oscillator specified in the ATTiny1616 datasheet. I figured I would run at 16 or 20 MHz, but I didn't know if there was any advantage to an external oscillator in that scenario.
All that said, I was just wondering under what circumstances it's best to use an external oscillator, and when it would be better to use the internal one.
I see no reason not to use the internal 16/20 MHz oscillator.
The disadvantage of using an external oscillator is the extra parts count, otherwise it would make sense if you needed a specific frequency to be compatible with other system components.
An external crystal can be more accurate than the internal oscillator. If the internal one is accurate enough for your needs (see the data sheet) then use it.
Some of the older AVRs with internal oscillators needed to be tuned so that the UART (A for Asynchronous) produced a baud rate that was within tolerance so that the other device could correctly exchange data reliably. However, with SPI & I2C, which are synchronous serial interfaces, the clock can be whatever you want - and it can drift - as long as it doesn't exceed the spec of the other device.