Clock-Output beim ATtiny814

#7935908
Lesenswert?

Moin Leute,

laut Datenblatt des ATtiny814 kann man im Register MCLKCTRLA mit dem Bit CLKOUT die System-Clock auf den "CLKOUT pin" legen. Allerdings finde ich weder Informationen darüber, welches dieser Pin sein soll, noch wie ich einem Pin diese Funktion zuweisen kann.

Das Internet inkl. LLMs scheinen dabei ATtiny814 und ATtiny85 in einen Topf zu werfen. Der ATtiny85 hat einen ausgewiesenen CLKO-Pin, aber anscheinend nicht der ATtiny814.

Ist diese Funktion beim ATtiny814 noch nicht implementiert (aber geplant) oder was ist das Problem?

Ich möchte letztendlich herausfinden, wie genau der System-Takt ist und ihn gegebenenfalls kalibrieren.

#7935923
Lesenswert?

In der neueren ATTiny-Serie ist es nur in einigen Derivaten möglich, den CLKOUT nach außen zu routen - beim 814 augenscheinlich nicht. Solche Ungereimtheiten gibt es in vielen Controller-Familien - Features sind im Datenblatt "beworben", können aber nicht in jedem Package genutzt werden. Im Attiny3216 geht es auf PB5. Es kann auch sein, dass das noch andere Bausteine aus der Familie können. Suche im jeweiligen Datenblatt nach "CLKOUT" und Du wirst fündig.

#7935925
Lesenswert?

Harald A. schrieb:

In der neueren ATTiny-Serie ist es nur in einigen Derivaten möglich, den CLKOUT nach außen zu routen - beim 814 augenscheinlich nicht. Solche Ungereimtheiten gibt es in vielen Controller-Familien - Features sind im Datenblatt "beworben", können aber nicht in jedem Package genutzt werden. Im Attiny3216 geht es auf PB5. Es kann auch sein, dass das noch andere Bausteine aus der Familie können. Suche im jeweiligen Datenblatt nach "CLKOUT" und Du wirst fündig.

Das ist enttäuschend. Aber danke für die Klarstellung.

#7935930
Lesenswert?

Wastl schrieb:

Wenn man das richtige Package annimmt dann hat er einen Port PB5. So jedenfalls mein Datenblatt 12/2016.

Wenn man natürlich kein Package angibt kann man viel behaupten.

So wie ich das sehe, wird der ATtiny814 nur in einem einzigen Package produziert. Aber vielleicht kannst du mir da helfen. Es hilft ja nichts, wenn ich nicht in der Lage bin, Datenblätter oder die Webseite des Herstellers zu verstehen. (Datenblatt "ATtiny214/414/814" von 2017)

In welchen anderen Packages als dem 14-pin SOIC150 kommt der ATtiny814 noch, und wo finde ich diese Information?

#7935942
Lesenswert?

Peder schrieb:

laut Datenblatt des ATtiny814 kann man im Register MCLKCTRLA mit dem Bit CLKOUT die System-Clock auf den "CLKOUT pin" legen.

Wäre mal interessant, ob man dieses Bit ändern kann. Den passenden Pin dazu gibt es jedenfalls nicht. Vermutlich ein C&P Fehler.

Die Qualität von Datenblättern kennt seit Jahren nur eine Richtung: abwärts.

#7935955
Lesenswert?

Hallo, Wastl schrieb im Beitrag #7935926:

Wenn man das richtige Package annimmt dann hat er einen Port PB5.

Peder hat gezielt vom ATtiny814 gesprochen und den gibt es nur im 14-Pin-Gehäuse (siehe Datenblatt Seite 12, 15 und Tabelle auf Seite 19). Und hier fehlt der Pin PB5.

rhf

: Bearbeitet durch User
#7935979
Lesenswert?

Harald A. schrieb:

Peder schrieb:

Ich möchte letztendlich herausfinden, wie genau der System-Takt ist und ihn gegebenenfalls kalibrieren.

Wenn das der einzige Anwendungsfall ist gebe doch eine PWM aus und messe die. Den Faktor kannst Du ja leicht reinrechnen.

Könnte ich mal versuchen. Ich habe das gestern mal mit einem einfachen Timer gemacht und alle 100.000 mal einen Pin geflippt. Aber ein direktes Messen wäre mir tatsächlich lieber.

#7936174
Lesenswert?

Mairian schrieb:

Was ist mit PA7?

MCLKCTRLA.CLKOUT = 1; setzen (z. B. CLKCTRL.MCLKCTRLA |= CLKCTRL_CLKOUT_bm;)

Pin PA7 als Ausgang konfigurieren (falls nötig).

Der 814 hat keinen Pin PB5 und damit kein CLKOUT. Diese Pinfunktion ist auch nicht umroutbar.

Dieses Bit

1
CLKCTRL.MCLKCTRLA |= CLKCTRL_CLKOUT_bm

schaltet erstmal überhaupt an PB5 den Takt ein. Hat mit PA7 nichts zu tun und ist auch nicht möglich.

: Bearbeitet durch User
#7936184
Lesenswert?

Peder schrieb:

Der ATtiny814 hat keinen PB5.

Je nach Package liegt der CLKOUT lt. DB auf Pin 11, 9 oder 6. Beim SOIC14 ist er nicht herausgeführt (Note S.78, Tab. 5-1 S.19)

"Note:  The availability of the TOSC1, TOSC2 and the CLKOUT pin depends on the pin count of the device ..."

https://ww1.microchip.com/downloads/aemDocuments/documents/MCU08/ProductDocuments/DataSheets/ATtiny417-814-816-817-DataSheet-DS40002288A.pdf

Peder schrieb:

Ich möchte letztendlich herausfinden, wie genau der System-Takt ist und ihn gegebenenfalls kalibrieren.

Das ist dasselbe. Eine Kalibrierung stellt genau die Abweichung gegenüber einem Normal fest, sonst nichts.

: Bearbeitet durch User
#7936227
Lesenswert?

Hallo,

ich weiß nicht was ihr mit eurem Package habt. Den 814, den der TO meint, gibt es nur im 14 Pin SOIC. Siehe 38.1. Der Rest geht aus 5.1 hervor. Damit ist für den 14 Pin Typ kein PB5 verfügbar. Sobald man irgendeinen anderen Typ mit mehr Pins nimmt, spielt es keine Rolle welchen man hat. Dann hat man immer PB5 dabei. Nur hat der TO nun einmal den 814. Deswegen ist das Thema mit Packages irreführend.

: Bearbeitet durch User
#7936235
Lesenswert?

Veit D. schrieb:

Den 814, den der TO meint, gibt es nur im 14 Pin SOIC.

Die Übersicht wer wieviel Pins besitzt, zeigt die Figure 2-1 auf S.12 (tinyAVR® 1-series Overview). Da muss der TO nur 1 und 1 zusammenzählen.

Um die Taktfrequenz zu bestimmen, braucht man nun wirlich nicht unbedingt den CLKOUT. Da tut es auch ein passend konfigurierter Timer.

: Bearbeitet durch User
#7936411
Lesenswert?

Nur der Vollständigkeit halber: Ich habe das CLKOUT-Bit im MCLKCTRLA-Register mal eingeschaltet, und es passiert auf keinem einzigen Pin etwas (alle als Ausgang geschaltet). Im Debugger kann ich sehen, dass das Bit auch im uC gesetzt ist, aber es bleibt eben ohne Funktion.

Zum Messen der Taktfrequenz funktioniert PWM tatsächlich wirklich gut. Gegenüber der Timer-Methode verzichtet dieser Mechanismus schließlich auf einen Interrupt und das manuelle Schalten von Pins, was die Messung verfälscht.

Vielleicht bin ich da etwas zu naiv, aber bisher habe ich immer volles Vertrauen in die Datenblätter gehabt. Ja – dass ich mir fehlende Infos mühsam aus AppNotes oder dem Internet zusammenklauben muss, hab ich irgendwann gelernt, aber dass irreführende Angaben in den Datenblättern stehen, enttäuscht mich schon.

Danke euch!

#7936425
Lesenswert?

Peder schrieb:

Vielleicht bin ich da etwas zu naiv, aber bisher habe ich immer volles Vertrauen in die Datenblätter gehabt

Microchip neigt zu Copy/Paste Fehlern. Das hat an dem Tag angefangen, als sie die schwarz/weißen Tabellen und Diagramme in Atmel Datenblättern bunt machten. Man sieht, wie die Prioritäten gesetzt wurden.

: Bearbeitet durch User
#7936429
Lesenswert?

Peder schrieb:

Zum Messen der Taktfrequenz funktioniert PWM tatsächlich wirklich gut. Gegenüber der Timer-Methode verzichtet dieser Mechanismus schließlich auf einen Interrupt und das manuelle Schalten von Pins, was die Messung verfälscht.

👍

Vielleicht bin ich da etwas zu naiv, aber bisher habe ich immer volles Vertrauen in die Datenblätter gehabt. Ja – dass ich mir fehlende Infos mühsam aus AppNotes oder dem Internet zusammenklauben muss, hab ich irgendwann gelernt, aber dass irreführende Angaben in den Datenblättern stehen, enttäuscht mich schon.

Datenblätter dienen zwei Zwecken:

  1. Vorteile deutlich hervorheben (Erste Seite)
  2. Nachteile so gut es geht zu verwischen und tarnen (Folgeseiten)
#7936434
Lesenswert?

Peder schrieb:

Nur der Vollständigkeit halber: Ich habe das CLKOUT-Bit im MCLKCTRLA-Register mal eingeschaltet, und es passiert auf keinem einzigen Pin etwas (alle als Ausgang geschaltet).

Dann ist das Datenblatt offensichtlich korrekt: Bei den 14-Pin Varianten - und dazu gehört dein ATtiny814 - ist der CLKOUT (zumindest extern) nicht verfügbar. q.e.d.

#7936455
Lesenswert?

Hallo, Nemopuk schrieb im Beitrag #7936452:

Sorry, aber wenn in 3 Kapiteln ein CLKOUT Pin genannt und detailliert beschrieben wird, dann muss der auch existieren.

Er existiert doch auch, ist eben bei diesem Gehäuse nicht herausgeführt. Und das ist doch dem Datenblatt genau zu entnehmen.

rhf

#7936457
Lesenswert?

Siehe hier ("41 Data Sheet Revision History - 41.2 Appendix - Obsolete Revision History - 41.2.2 ATtiny214/414/814 - DS40001912")

https://onlinedocs.microchip.com/oxy/GUID-EE7956F6-534E-4B4F-AD10-214BF9914B5A-en-US-5/GUID-9784A1A4-B5D3-43F4-860A-903A14B77CF5.html

"CLKCTRL: Removed unsupported CLKOUT in block diagram, signal description and MCLKCTRLA register"

Man hat also scheinbar irgendwann daran gedacht.

#7936547
Lesenswert?

Volker B. schrieb:

Es ist schon eine große Leistung, ein acht Jahre altes, mit "Datasheet Preliminary" gekennzeichnetes Datenblatt zu verwenden!

Der TO bezog sich offensichtlich auf dieses Datenblatt. Du kannst dich ja bei Google beschweren, dass sie dieses Datenblatt bevorzugt finden.

Volker B. schrieb:

Glaubst Du wirklich, dass alle Menschen unfehlbar sind und deshalb Fehler niemals korrigiert werden müssen?

Habe ich nicht behauptet. Aber interessant, daß es jetzt doch ein Fehler ist.

: Bearbeitet durch User
#7938374
Lesenswert?

1
            ATtiny814
2

3
       VDD 1|‾‾‾‾‾‾‾|14 GND 
4
       PA4 2|       |13 PA3
5
       PA5 3|       |12 PA2 
6
       PA6 4|       |11 PA1  
7
       PA7 5|       |10 UPDI
8
       PB3 6|       | 9 PB0 -----> OUT (f/2)
9
       PB2 7|_______| 8 PB1
10
1
// 2MHz System Clock, 1MHz Output
2

3
#include <avr/io.h>
4

5
int main(void)
6
{
7
  PORTB.DIRSET = PIN0_bm;
8
  _PROTECTED_WRITE(CLKCTRL.MCLKCTRLB, CLKCTRL_PDIV_10X_gc | CLKCTRL_PEN_bm);
9
  TCA0.SINGLE.CTRLB = TCA_SINGLE_CMP0EN_bm | TCA_SINGLE_WGMODE_FRQ_gc;
10
  TCA0.SINGLE.CTRLA = TCA_SINGLE_ENABLE_bm;
11
  
12
  while(1)
13
  {
14
  }
15
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren