Hallo,
prinzipiell mMn ist es eher so, daß das garantierte Zahlen sind. Die ICs werde aus dem Wafer gesägt, und (wahrscheinlich) getestet. Wenn sie sicher bei 20MHz laufen, werden sie als Tiny ohne V sortiert, wenn sie sicher mit 1,8V laufen als Tiny-V.
Selektion...
Wie Du korrekt abgelesen hast, gibt es für die anliegende/geforderte Taktfrequenz 'ne MindestSpannung - also die Spannung, wo Atmel garantiert, daß der Chip dann mit dieser Frequenz ordentlich läuft.
Aber Achtung: für das sichere beschreiben (teilweise auch das Lesen) des Eeprom gelten manchmal andere Werte.
Und zumindest auch bei manchen Controllern für das beschreiben des Programflash (zB beim ATtiny4/5/9/10).
Genau deswegen werden die Controller mit voreingestelltem langsamen Takt (meist um 1MHz) ausgeliefert - und da die Zielumgebung nicht unbedingt 'ne externe Taktquelle vorsehen muß, mit voreingestelltem internen Takt.
Beim Tiny45V steht im Datenblatt (6.3.2)
By default, the Internal RC Oscillator provides an approximate 8.0 MHz clock. Though voltage and temperature dependent, this clock can be very accurately calibrated by the user. See “Calibrated Internal RC Oscillator Accuracy” on page 169 and “Internal Oscillator Speed” on page 197 for more details. The device is shipped with the CKDIV8 Fuse programmed.
In Table6-6 findest Du ferner, daß der interne 8MHz-Oszillator Standardeinstellung ist (alternativ könnte der ATtiny15-Kompatibilitätsmodus 'n effektiven 1,6MHz einstellen, aber default schwingts erstmal(!!) mit 8MHz).
Diese 8MHz liegen am System Clock Prescaler an, werden also effektiv nochmal runtergeteilt. Durch welchen der 9 Möglichen diskreten Werte, legt das CLKPR (Clock Prescale Register) fest. Dieses ist ein I/O-Register, und wird beim Reset des Controllers immer mit einem bestimmten Wert beschrieben (man kann es aber zur Laufzeit des Programmes umschreiben (zB um Strom zu sparen)) - mit welchem?
Das legt die CKDIV8-Fuse fest. Ist sie gesetzt, beträgt der Wert 8 (der Controller läuft dann effektiv mit 8/8=1MHz), ist sie nich gesetzt, beträgt der Wert 1 (also 8/1=8MHz).
Am einfachsten kann man das herausbekommen, indem man 'n Timer 'n Bein zappeln läßt (zB PWM), und da 'ne bestimme Frequenz erwartet - 1Hz LED-blinken...
Am Rande: der Tiny45 (ohne V) kann mit der internen PLL auch mit internen 16MHz betaktet werden - eigentlich sollte das auch mit dem V gehen, allerdings ist der damit jenseits seiner Funktionsgarantie. Keine Ahnung, ob das schon mal wer ausprobiert hat.
Und nochwas: wegen dem Tiny4/5/9/10 im anderen Thread - der hat keine Fusebits für die ClockSource, startet immer mit effektiv 1MHz intern. Da kann man dann nicht nur den Hauptprescaler zur Laufzeit umsetzen, sondern auch die Clocksource (wobei der nur zwischen 'ner externen Clock, dem internen 8MHz Oszi und dem 128kHz-Watchdog-Oszi wählen kann. Bei nur 4 I/Os, von denen einer meist Reset ist macht ein Quarz sicher nicht viel Sinn)
EDIT: per Bootloader solltest Du aber keinen Zugriff auf die Fusebits haben. Das geht nur über HVPP und SPI-ISP (und beim Tiny4/5/9/10 über TPI/HV-TPI). Zu dWire & co. muß
@TommyB was sagen - hab ich keine Ahnung von.
Den Hauptprescaler kann die Arduino-IDE dann wie gesagt zur Laufzeit umschalten lassen...