Atmega4809 CCL für was?

#5813536
Lesenswert?

Anselm 6. schrieb:
> Was kann man sinnvolles mit dieser CCL anfangen?

Ich habe da einen Datenstrom der ziemlich schnell herein kommt, so alle 
2µs ein Byte (alle 250 nS ein Bit).

Der Datenstrom kommt in ein 8 Bit Schieberegister, was die Sache etwas 
entschärft.

Der Datenstrom tritt spontan auf, wenn 8 Bit gelesen sind, dann kommt 
ein Signal für 250 nS.


Klar geht das auch ohne CCL!

Allerdings darf man sich dann nicht sehr spielen …

Eine Interrupt Routine in C geschrieben braucht zur Initialisierung 
schon zu lange bei einem 16MHz getakteten AVR.

Ohne C, nur in Assembler geht es gerade noch.
Aber da darf kein Anderer Interrupt laufen!

Am besten geht es noch mit Polling des IO.
Aber dann tut der AVR nur noch pollen …

============

Lange Rede kurzer Sinn …

Es gibt zwei Lösungsansätze die beide im Einsatz sind:

- ein kleiner Tiny2313, der nur pollt und die Daten buffert

- eine Hardware (8 Flipflops) die ein Byte cashed



Und nun gibt es eine dritte Lösung, das CCL des Atmega4809.
#5813555
Lesenswert?

Lowkick schrieb:
> Gehe bitte etwas näher auf die Lösung ein. Welche Teile übernimmt das
> CCL?

So wie ich das verstanden habe, entspricht es genau der "alten" Lösung 
2, nur dass man sich die 8 Flip-Flops spart.

Neun IO, 8 Daten vom Schieberegister, der neunte IO übernimmt die Daten 
vom Schieberegister wenn das Signal kommt.

Der AVR hat nun 2 µs Zeit, das virtuelle Port zu lesen, anstatt von nur 
250 nS. Er kann sich also nun etwas mehr Zeit lassen.

----------

Mir persönlich gefällt die Lösung mit dem zusätzlichen ATTiny etwas 
besser.
Der konnte sogar mehrere Bytes buffern.
Aber es ist halt eine Kostenfrage.

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