RC-oscillator
Den inbyggda klockkällan i nästan varje mikrokontroller: gratis, snabb att starta och precis så exakt som ett motstånd och en kondensator kan vara.
Frekvensen bestäms av hur snabbt en kondensator laddas genom ett motstånd, och båda värdena varierar med tillverkning, spänning och temperatur. Tillverkaren trimmar därför varje chip i fabrik och lägger värdet i ett kalibreringsregister — OSCCAL på AVR, trimfält för HSI på STM32. Resultatet hamnar runt en procent vid rumstemperatur och blir sämre i kyla och värme.
Det räcker för det mesta, och chipet startar på mikrosekunder i stället för de millisekunder en kristall behöver. UART klarar några procents avvikelse mellan sändare och mottagare men inte mycket mer. USB kräver ±0,25 % — vissa STM32 löser det genom att trimma den interna oscillatorn mot de SOF-paket som värddatorn skickar varje millisekund, och slipper kristallen helt.