mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Schnellstmöglicher Bitbang (pin ein ausschalten) beim AVR


Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Der betreff verräscht schon einiges...

Was ist das schnellstmögliche BitBanging bei einem AVR? (Attiny2313)

Und wie erreicht man es?

Ich denke mal mit Assembler oder irre ich da?

Danke schonmal

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Claudio Hediger (hedie)

>Was ist das schnellstmögliche BitBanging bei einem AVR? (Attiny2313)

Guggst du Assembler Dokumentation, siehst du 1 Takt für OUT Befehl bzw. 
2 Takte für sbi/cbi Befehle.

MfG
Falk

Autor: gunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bei 3 asm (2xout + rjmp) befehlen pro zyklus, mit 16 mhz quarz -> 
thereotisch 5,3 mhz möglich.

Autor: gunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
rjmp sind 2 takte also 4 mhz.. sorry.

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der Tiny2313 kann auch "Toggling"
Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of
DDRxn. Note that the SBI instruction can be used to toggle one single bit in a port.

avr

Autor: tschika (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der Timer den Pin toggelt, schafft man es bis zur halben 
Grundfrequenz.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avr schrieb:

> der Tiny2313 kann auch "Toggling"

Ist aber netto auch nicht schneller.

Max ist 10MHz wenn unrolled.

Ob Assembler oder C, es zählt was hinten rauskommt. Wenn man da ein Auge 
drauf hat kanns aufs Gleiche rauslaufen.

Autor: Claudio H. (hedie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm

Danke für die antworten...

Ich werds wohl so machen, das ich ne PLL hinten dran hänge... :)

Wenn die ja mal eingeschwungen ist, gibts ja keine verzögerungen mehr 
oder?

(74HCT4046)

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Es gibt nicht das
"schnellstmögliche BitBanging bei einem AVR? (Attiny2313)"
Es ist immer eine Frage der Randbedingungen.
Die schnellste Art "einen" Pin zu wechseln ist über einen Timer in 
CTC-Mode, wobei das Compareregister auf 0 gesetzt wird. Dann hast du 
CKL/2.
Du bist dabei allerdins an feste Pins gebunden.
In Software:
Wenn Tastverhältnis gleich sein soll:
      .
      .
neu: sbi Port, Bit
     nop
     cbi Port, Bit
     rjmp neu

oder:

     ldi R16,1
     ldi R17,1
neu: eor R16,R17
     out Port,R16    ;set/reset Bit0 des jeweiligen Ports
     rjmp neu


Tastverhältnis 1/4:
      .
      .
neu: sbi Port, Bit
     cbi Port, Bit
     rjmp neu

Du siehst viele Wege führen zum toggeln.

Viel Erfolg, Uwe

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@A.K.
Hab auch nicht geschrieben, daß es schneller ist.
Ist nur wirklich sinnvoll beim toggln, kein wenn gesetzt dann
löschen etc. nötig.

avr

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Claudio Hediger schrieb:
> Ich werds wohl so machen, das ich ne PLL hinten dran hänge... :)

Wenn jemand nach der maximalen Toggle-Geschwindigkeit fragt macht eine 
PLL keinen Sinn, für was auch immer.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uwe schrieb:

> Es gibt nicht das
> "schnellstmögliche BitBanging bei einem AVR? (Attiny2313)"

Eine Untergrenze für den Abstand von zwei Flankenwechseln eines Portpins 
bei Einhaltung der zulässigen Arbeitsfrequenz gibt es sehr wohl. Ob die 
Antwort etwas nützt ist eine andere Frage.

Autor: j.azz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn's  nur darum geht, eine möglichst hohe Frequenz an einem Pin zu 
haben,
die synchron mit dem Systemtakt ist, kann man sich doch den Systemtakt 
auf einen Portpin legen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.