motox, I really do not clearly understand how your obvious sentences are applicable to my situation or to a separate question about measuring of range of tuning.
Calibrating the internal RC over a range of temperature and voltage is not an easy task and a climatic chamber is not something available on every corner.
That does not stop Microchip from writing that "
Precision 16 MHz Internal Oscillator Block:- Factory calibrated to
± 1%"
That assumes that for some tasks a ±1% is enough to be considered as precise. Do you see difference between ±1% and +1%..+3%? What if device is supposed to be used at "room temperature" from say 20°C to 30°C?
Measuring the calibration curves for every device is out of question.
Out of what question? Why? I thought calibration by definition is meant exactly for every device. If reasonable for particular project of course. Out of my question - definitely.
I would definitely buy the crystal.
For what exact task? Or for every task absolutely?
I have the tiny single layer PCB (laser printed, iron transfered) with two ICs (TQFN 3x3mm and SSOP28 10x8mm) and three 0805 capacitors and it works without a crystal. For that particular project I was initially biased to be minimalistic as possible and to find out if it is enough or not. In other case I'd use a little pic32mm with 4 times more flash and hardware I2S for the same price for IC but requiring a bit more complex PCB.
Another (maybe freak) target I was encouraged to was to check out how can I perform an I2S mono playback with some logic handling in parallel (buttons, debouncing, delays, LEDs) by using 8-bit uC. The answer - it is possible, while not well scalable. Having 8-bit hardware multiplier I even made u-law decoder (on the fly) for DPCM samples having only two commands between btg SCK.
If you cannot get that specific crystal value, you can use another good quality clock source just to use it to calibrate the internal RC periodically.
As a cheap alternative to true PLL with compromised jitter and even more compromised precision (±0.1%)? Why not - would work for some tasks.
The method of cycle-skip the clock is not applicable for an uncalibrated RC clock source, because you don't know how much the internal RC has drifted over time.
I do not know how exactly MAX98357 works inside. For example it starts to playback at officially unsupported 22.05kHz rate if BCLK is somehow not clean due to "cycle-skip". And supported rates are stated by manufacturer not in ranges but by list of precise values. In that situation I consider as a good thing to give it 16kHz ±1% instead of +1%..+3%. And not for musical precision (6% of semitone, 1% is too rough for absolute pitch humans).
My particular task was not a music playback. Though during playback I do not hear a tone drift (actually it is about 0.03% for the first second after sleep). Remember tape recorder - we lived with pitch shift in some degree without notice. Or old heavily used videotapes - fast drift is not audible on voices but clearly distinguishable on music background.