frequenz

1avr2

Neues Mitglied
21. Jan. 2010
28
0
0
Sprachen
erst mal wieder einen schoenen guten abend ins forum,

habe wieder eine frage zur taktfreuenz. (habe auch den button fuer code einfuegen gefunden).
listing ist aus http://www.avr-asmtutorial.net. laut beschreibung sollte die led mit einer frequenz
von 300khz laufen. 1.200.000 takte / vier takte waere genau 300.000 takte. (hz).

gemessene (oszi) 5,5 muekrosekunden =T wuerden ca 180 khz ergeben. signal nicht symmetrisch.
(vmtl wegen 'rjmp'=2 takte). der frequenzzaehler (fluke) zeigt 90,5 khz.

wo sind die 300 khz geblieben. falsche rechnung ?!?
am tiny 13 habe ich nichts veraendert. (zumindest nicht bewusst). muesste auslieferungszustand sein.

gibt es eine moeglichkeit den aktuell eingestellten prozessortakt mittels studio vier zu ermitteln ?

vielen dank im vorraus

gruss bernhard.




Code:
; * Mehr Action: LED-Blinker                               *
; * (C)2005 by info@avr-asm-tutorial.net                   *
; **********************************************************
;
.INCLUDE "tn13def.inc"
;
; Schaltbild:
;                   ATMEL ATtiny13
;                     ___   ____
;            ___    1/   |_|    |8
;+5 Volt O--|___|----|Res    Vcc|----O + 5 Volt
;                    |          |
;                    |PB3    PB2|
;                    |          |6  ___
;                    |PB4    PB1|--|___|--|<|--O + 5 Volt
;                   4|          |   330   LED
;        0 Volt O----|Gnd    PB0|
;                    |__________|
;
	sbi DDRB,1 ; PB1 ist Ausgang
loop:
	cbi PORTB,1 ; Ausgang auf Null
	sbi PORTB,1 ; Ausgang auf Eins
	rjmp loop ; und von vorne
;
; End of source code
 
Hallo Bernhard,

du kannst die Fusebits auslesen, um zu kontrollieren, mit welchem Systemtakt dein ATtiny13 versorgt wird.

Vom Werk aus ist der interne RC-Oszillator mit 9,6MHz aktiviert und das Fusebit CKDIV8 programmiert, das heisst, du hast einen Systemtakt von 1,2MHz. Das entspricht einem Mascinenzyklus von 1/1,2MHz = 833ns.

SBI, CBI und rjmp benötigen jeweils 2 Maschinenzyklen. Durch das rjmp ist die High-Zeit größer als die Low-Zeit.

Fügst du zwischen CBI und SBI zwei nop (jeweils 1 MZ) ein, sind High- und Low-Zeit gleich groß, die Periodendauer ist 8MZ = 6,666us -> f = 150kHz. Auf 300kHz kommst du wegen dem rjmp nicht. Alle Angaben ohne Gewähr (es ist noch ein bisschen früh für mich ;))

Grüße,
Dirk

Code:
loop:

  cbi PORTB,1 ; 2MZ Ausgang auf Null
  nop ; 1MZ
  nop  ; 1MZ 

  sbi PORTB,1 ; 2Mz Ausgang auf Eins
  rjmp loop ; 2MZ und von vorne
 
habe die fusebits ausgelesen und eine hardcopy beigefuegt. war anscheinend auf 4.8 mhz gesetzt.
ergibt laut grober messung mit dmm ca 193 khz ungleich 300 khz.
in welchem bereich liegt denn die toleranz von dem internen rc oscillator?
kann man den mc wieder in den auslieferungszustand bringen, so eine art master-reset?

gruesse bernhard.fusebit.jpg
 
Hi Bernhard,

die Toleranz des internen RC liegt bei +/- 10% und zusätzlich ist der auch von Betriebsspannung und Temperatur abhängig - siehe hier Seite 148 :
http://www.atmel.com/dyn/resources/prod_documents/doc2535.pdf

Wenn es dir um Genauigkeit geht, kommst du um eine quarzstabile Zeitbasis nicht herum :
http://www.reichelt.de/Oszillatoren...8AAAIAACcaJpIaa09a03323f39f3e79d89f88043eac8e

Am µC selbst gibt es nicht die Möglichkeit, ihn auf Werkseinstellung zurückzusetzen. Das geht nur manuell.

Gruß
Jürgen
 
wie kann ich den tiny13 manuell auf werkseinstellung zuruecksetzen.

gruss bernhard.
 
Hi Bernhard,

wie kann ich den tiny13 manuell auf werkseinstellung zuruecksetzen.
das geht nur über einen Programmer. Also entweder ISP (AVRISPmk2 oder ähnliche) oder einen HV-Programmer (STK500). Über einen Bootloader geht das definitiv nicht. Wenn man mit Mikrocontrollern basteln will, dann gehört eigentlich ein ISP-Programmer zur Ausstattung dazu. Ohne wäre das so als wenn man beim Auto nur die Reifen aufpumpen würde aber keinen Schraubenschlüssel für nen Reifentausch dabei hat.

Ach ja ... bei der Bascom-Version 2.0.7.0 die ich grade habe läuft der AVRISPmk2 nun absolut sauber ;) letztens beim basteln mit meinem Mega128 bemerkt. Nun ist alles erste Sahne ;)

Gruß
Dino
 
hi dino,

also ich habe den avrisp mkII. reicht es wenn 9,6mhz und der clvd 8 (haekchen gesetzt) ist, um die werkseinstellung zu setzen?
noch eine frage, nachdem ich schon einen tiny13 verfust habe: kann ich die clkpr bits beliebig setzen (1-256), oder besteht auch
hier die gefahr, keinen zugriff mehr zu haben.

gruss bernhard.
 
Hi Bernhard,

nachdem ich schon einen tiny13 verfust habe: kann ich die clkpr bits beliebig setzen (1-256), oder besteht auch
hier die gefahr, keinen zugriff mehr zu haben.
also grundsätzlich: Finger weg von den Fuses RSTDISBL , DWEN , SPIEN. Wenn du die umstellst dann hast du ein massives Problem wenn du keinen HV-Programmer wie nen STK500 besitzt.

Wenn du die Taktversorgung verfusest (man ist das ein Wort ;) ) dann kannst du ihn über einen zwangsweise angelegten Hilfstakt immer noch retten. Aber bei den drei Fuses ist Ende weil du deinen Progger vom Prozessor abkabelst.

Bei den restlichen Fuses ... ließ mal ein wenig im Datenblatt und probier mal rum. Da dürfte eigentlich nichts wildes passieren. Aber schlag mich jetzt nicht wenn doch. Ich hab jetzt auch nicht alle Fuses von allen AVRs im Kopf und wo welche FFuse existiert und wo nicht. Hier im FAQ-Bereich habe ich die Fuses auch mal alle soweit möglich erklärt. Da ist auch beschrieben wie du ihn Taktmäßig wiederbeleben kannst.

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)