Forum: Mikrocontroller und Digitale Elektronik Frage zu CCL-Einheit in neueren AVR-Controllern


von Roland F. (rhf)


Lesenswert?

Hallo,
ich habe im Datenblatt des ATtiny 1606 gelesen das dieser Controller 
eine "CCL"-Einheit enthält. So wie ich es verstehe handelt es sich dabei 
um eine Art Mini-FPGA-Baustein, der unabhängig von der CPU des 
Controllers, bestimmte logische Verknüpfungen durchführen kann.
Hat jemand von euch so eine CCL-Einheit verwendet und kann mal 
beschreiben welches Problem er damit gelöst hat?

rhf

von c-hater (Gast)


Lesenswert?

Roland F. schrieb:

> ich habe im Datenblatt des ATtiny 1606 gelesen das dieser Controller
> eine "CCL"-Einheit enthält. So wie ich es verstehe handelt es sich dabei
> um eine Art Mini-FPGA-Baustein, der unabhängig von der CPU des
> Controllers, bestimmte logische Verknüpfungen durchführen kann.

Und noch etwas mehr. Neben den LUTs, die für die logischen Verknüpfungen 
von bis zu drei Eingangssignalen zuständig sind, gibt es auch noch für 
jedes LUT-Paar einen sog. "Sequencer", mit dem man noch mehr fummeln 
kann, also insbesondere Sachen, die über boolsche Logik hinausgehen.

> Hat jemand von euch so eine CCL-Einheit verwendet und kann mal
> beschreiben welches Problem er damit gelöst hat?

Nicht mit einem Tiny, aber mit einem AVR128DA64. Das Prinzip ist aber 
dasselbe. Benutzt habe ich dabei allerdings nur die boolsche Logik von 
drei LUTs. Die Sache ist ein bidirektionaler Multiplexer/Demultiplexer 
zwischen zwei COM-Ports auf der einen Seite und einem COM-Port auf der 
anderen Seite und der AVR selber hat mit der ganzen Sache nach der 
Initialisierung der CCL nix mehr zu tun. Er stellt dann diesbezüglich 
bloß noch die logische Funktion bereit, ohne jede weitere eigene 
Intervention.

Witzigerweise steckte diese Funktionalität ursprünglich tatsächlich in 
einem (heute nicht mehr lieferbaren oder zumindest nicht mehr 
bezahlbaren) FPGA...

Da steckte noch mehr drin, nämlich ein SPI-Portexpander. Nur mit dieser 
Funktionalität beschäftigt sich jetzt der AVR. Zeit hat er ja genug 
dafür, da er sich um dieses COM-Port-Multiplexing nicht mehr weiter 
kümmern muss...

von Georg M. (g_m)


Lesenswert?


von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Roland F. schrieb:
> Hallo,
> ich habe im Datenblatt des ATtiny 1606 gelesen das dieser Controller
> eine "CCL"-Einheit enthält.
(...)
> Hat jemand von euch so eine CCL-Einheit verwendet und kann mal
> beschreiben welches Problem er damit gelöst hat?

Mit der etwas ältern XCL-Unit des xmega32E5 habe ich ein D-Flipflop 
implementiert, dass mit bei der Implementierung eines reziproken 
Frequenzmessers die Zähler freigibt.

Bevor Du aber mit dem CCL experimentierst, solltes Du unbedingt das 
Errate-Sheet lesen.

Zitat:

"CCL - Configurable Custom Logic
2.3.1 Connecting LUTs in Linked Mode Require OUTEN Set to ‘1’
Connecting the LUTs in linked mode require LUTnCTRLA.OUTEN set to ‘1’ 
for the LUT providing the input source."

"Work around
Use an event channel to link the LUTs or do not use the corresponding 
I/O pin for other purposes."

Und besonders lustig:

"D-latch is Not Functional
The CCL D-latch is not functional."

"Work around
None"

Grüßle,
Volker

von Richard (Gast)


Lesenswert?

@ c-hater (schrieb im Beitrag #7243417)

Magst Du

> dieses COM-Port-Multiplexing

hier mal genauer ausführen?

von Veit D. (devil-elec)


Lesenswert?

Roland F. schrieb:

> Hat jemand von euch so eine CCL-Einheit verwendet und kann mal
> beschreiben welches Problem er damit gelöst hat?

Eine Hardwareverriegelung ohne weitere externe Logik.

von Roland F. (rhf)


Lesenswert?

Hallo,
danke für eure Antworten:

c-hater schrieb:
> Er stellt dann diesbezüglich bloß noch die logische Funktion
> bereit, ohne jede weitere eigene Intervention.

Ja, man braucht keine Software schreiben und testen (bis eben auf die 
Initialisierung) und braucht auch keine externe Hardware. Beeindruckend.

Georg M. schrieb:
> Getting Started with CCL

Das Applikationspapier kannte ich noch nicht. Die aufgeführten Beispiele 
machen das Ganze klarer.

Volker B. schrieb:
> Bevor Du aber mit dem CCL experimentierst, solltes Du unbedingt das
> Errate-Sheet lesen.
> ...
> Und besonders lustig:
>
> "D-latch is Not Functional
> The CCL D-latch is not functional."
>
> "Work around None"

Tja, ist wohl alles noch etwas neu, aber das wird schon. :-)

rhf

von S. Landolt (Gast)


Lesenswert?

> welches Problem ... gelöst

Vielleicht dieses:
Beitrag "AVR128DB28: TCB0 liefert kein Signal an PA2"

von c-hater (Gast)


Lesenswert?

Richard schrieb:

> Magst Du
>
>> dieses COM-Port-Multiplexing
>
> hier mal genauer ausführen?

Simple Sache. Es gibt einen Host-Controller, der nur eine UART hat, aber 
mit zwei Peers reden muss. Er tut das abwechselnd. Um das tun zu können, 
braucht er halt so einen MUX/DEMUX. Er steuert das Ding über TX und ein 
"PEERSELECT"-Signal, welches steuert, bei welchem Peer sein TX-Signal 
sichtbar wird.
Und sein RX wird halt je nach "PEERSELECT" entweder von dem TX des einen 
einen oder des anderen Peer bespaßt.

Das war's. Der springende Punkt im Zshg. mit CCL ist: Nachdem die CCL 
einmal initialisiert ist, hat der AVR mit dem ganzen Kram nix mehr zu 
schaffen. Weder werden irgendwelche UARTs des AVR benutzt, noch muss er 
er sich in Software damit beschäftigen, irgendwelche Bytes zwischen 
seinen UARTs hin- und herzuschaufeln.

von Richard (Gast)


Lesenswert?

c-hater schrieb:
> Die Sache ist ein bidirektionaler Multiplexer/Demultiplexer
> zwischen zwei COM-Ports auf der einen Seite und einem COM-Port auf der
> anderen Seite

> Es gibt einen Host-Controller, der nur eine UART hat, aber
> mit zwei Peers reden muss. Er tut das abwechselnd. Um das tun zu können,
> braucht er halt so einen MUX/DEMUX. Er steuert das Ding über TX und ein
> "PEERSELECT"-Signal, welches steuert, bei welchem Peer sein TX-Signal
> sichtbar wird.
> Und sein RX wird halt je nach "PEERSELECT" entweder von dem TX des einen
> einen oder des anderen Peer bespaßt.

> Simple Sache.

Zu simpel und allgemein erklärt daß ich mir nichts drunter vorstellen 
kann.
Soll dieser Multiplexer/Demultiplexer ein eigenständiges Gerät sein oder 
wie meinst Du das? In diesem Fall hätte ich ganz einfach einen 3-UART 
AVR verwendet. Jetzt sagst Du aber

> Weder werden irgendwelche UARTs des AVR benutzt

und das Umswitchen von einem Eingang abwechselnd auf zwei Ausgänge (und 
umgekehrt) wird einzig und allein mit der CCL-Einheit bewerkstelligt?
Wie genau nun geschieht das?

von c-hater (Gast)


Lesenswert?

Richard schrieb:

> Zu simpel und allgemein erklärt daß ich mir nichts drunter vorstellen
> kann.

Das tut mir sehr leid für dich.

> Soll dieser Multiplexer/Demultiplexer ein eigenständiges Gerät sein

Nein. Das ist ein Teil der Funktionalität, die früher(tm) in einer 
bestimmten bestehenden uralten Schaltung durch einen FPGA bereitgestellt 
wurde. Der AVR ersetzt nun einfach nur diesen FPGA, ansonsten bleibt die 
bestehende Schaltung unverändert.

> In diesem Fall hätte ich ganz einfach einen 3-UART
> AVR verwendet.

Der AVR128DA64 hat sogar SECHS UARTs. Er wäre aber für die restliche 
Funktionalität des ehemaligen FPGA zu langsam geworden, wenn den 
UART-Kram in Software abhandeln müsste, hätte also den FPGA nicht 
ersetzen können. Dadurch, dass dieser Teil an die CCL delegiert wurde, 
kann er es aber.

> und das Umswitchen von einem Eingang abwechselnd auf zwei Ausgänge (und
> umgekehrt) wird einzig und allein mit der CCL-Einheit bewerkstelligt?

Genau.

> Wie genau nun geschieht das?

Durch geeignete Programmierung der CCL, so dass diese die nötige 
logische Funktionalität umsetzt (und ein paar äußere Verbindungen 
zwischen den Eingängen der drei beteiligten LUTs).

von Richard (Gast)


Lesenswert?

c-hater schrieb:
> Durch geeignete Programmierung der CCL

Danke. Informationswert = Null.

von Walter T. (nicolas)


Lesenswert?

Könnte man mit dem CCL direkt einen IQ-Mischer in einer MCU realisieren?

von Mcn (Gast)


Lesenswert?

Roland F. schrieb:
> Hallo,
> ich habe im Datenblatt des ATtiny 1606 gelesen das dieser Controller
> eine "CCL"-Einheit enthält. So wie ich es verstehe handelt es sich dabei
> um eine Art Mini-FPGA-Baustein,

Eine LUT macht noch keinen FPGA, Das ganze schaut eher nach einer 
Min-PLA o.ä. , wie das Teil im alten C64, nur noch viel kleiner.

http://skoe.de/docs/c64-dissected/pla/c64_pla_dissected_a4ds.pdf


Naja, rettet vielleicht mal einem PCB-Designer den Arsch, weil er den 
passenden 74xxx vergessen hat und die Softwarelösung auf Bitop 
Operationen wegen der leidlichen Ausmaskierer zu langsam ist.

von c-hater (Gast)


Lesenswert?

Richard schrieb:
> c-hater schrieb:
>> Durch geeignete Programmierung der CCL
>
> Danke. Informationswert = Null.

Du meinst: du bekommst keine fertige Lösung?!

Nö, der Kunde hat dafür bezahlt. Und wenn du die willst, wirst du 
genauso löhnen müssen. So ist das halt im Kapitalismus.

von c-hater (Gast)


Lesenswert?

Mcn schrieb:

> Eine LUT macht noch keinen FPGA

Das sicher nicht. Aber wenn es ein paar mehr sind, kann man u.U. einen 
ersetzen.

von Mcn (Gast)


Lesenswert?

c-hater schrieb:
> Mcn schrieb:
>
>> Eine LUT macht noch keinen FPGA
>
> Das sicher nicht. Aber wenn es ein paar mehr sind, kann man u.U. einen
> ersetzen.

Eher nicht, selbst die kleinen FPGA's laufen mit 100+MHz und liefern 
genug LUT's mit, um nebenher einen 8 oder 32 bit Prozessor darin zu 
bauen. Beispielsweise den 8bit Picoblaze, der mit ca 200 LUT's daher 
kommt.

https://www1.hs-bremerhaven.de/kmueller/VHDL/ug129.pdf

Und selbst der kleinste Spartan 7 (/6) kommt mit ca 7000 LUT's daher.

Also lieber einen kleinen FPGA einsetzen als mit 100 µC einen ersetzen 
zu wollen.

https://docs.xilinx.com/v/u/en-US/7-series-product-selection-guide

DiesesCCL mit einem FPGA zu vergleichen ist leider ein neuer Höhepunkt 
der Marketing-Idiotie.

von Richard (Gast)


Lesenswert?

c-hater schrieb:
> Du meinst: du bekommst keine fertige Lösung?!

Nein. Ich meine, Du hast gar keine.
Wie sich nämlich mit den 3 CCL Funktionalitäten Logic Gate, State 
Decoder und SR Latch ein autonomer Multiplexer für serielle Signale 
realisieren lassen soll ist schon mehr als schleierhaft!

Grundsätzlich lässt sich das alles besser in Software realisieren- die 
CCL scheint mir höchstens für seltene Spezialfälle zu taugen zumal deren 
festgelegte Pin-I/O noch zusätzlich einschränkt.

von S. Landolt (Gast)


Lesenswert?

an Richard:

Besonders viel ist mir bislang zu CCL auch nicht eingefallen, aber dies
> zumal deren festgelegte Pin-I/O noch zusätzlich einschränkt
lässt sich mit dem Event-System umgehen.

von Richard (Gast)


Lesenswert?

S. Landolt schrieb:
> lässt sich mit dem Event-System umgehen.

Vielleicht finden sich ja so doch noch einige Probleme zur gegebenen 
Lösung :)

von S. Landolt (Gast)


Lesenswert?

Nun ja, die Ausgangsfrage war
> CCL-Einheit verwendet und ... welches Problem er damit gelöst ...
worauf u.a. c-hater geantwortet hat.

Wenn jetzt die Frage "Was ist der Sinn von CCL" lautet ... - möchte ich 
lieber nicht antworten, da nicht kompetent.

von Richard (Gast)


Lesenswert?

S. Landolt schrieb:
> da nicht kompetent

Etwas mehr Zutrauen!
Es ist doch nur eine

c-hater schrieb:
> Simple Sache

:)

von Lothar (Gast)


Lesenswert?

Diese CCL sind als günstiger Ersatz für die nicht mehr verfügbaren CPLD 
gedacht.

Zuerst gab es CCL bei Silabs dann bei den neueren PIC und wurden dann in 
die neueren AVR übernommen.

Hier ein Vergleich wie WS2812B Led Driver implementiert wird auf AVR PIC 
Silabs:

https://siliconlabs.force.com/community/s/share/a5U8Y000000bxnDUAQ/ws2812b-led-driver-on-efm8bb51-microcontroller

von Veit D. (devil-elec)


Lesenswert?

Mcn schrieb:

> Dieses CCL mit einem FPGA zu vergleichen ist leider ein neuer Höhepunkt
> der Marketing-Idiotie.

Der Unsinn stammt aber von c-hater und nicht vom Hersteller.

Und was man mit der CCL machen kann ist nur eine Frage der eigenen 
Phantasie was man mit paar Logikgattern machen könnte. Bevor man 
irgendwelche Kabel zieht kann man Ereignisse logisch verknüpfen. Es gibt 
auch eine App Note 2434 für einen Hardwareencoder. Dann ist zwar alles 
belegt, aber ein größeres Beispiel.

von Fabian N. (flyget)


Lesenswert?

Wir haben das Abholen von Daten per SPI aus zwei AD-wandlern realisiert, 
die einen integrieren FIR Filter haben. Das Problem war,dass die Daten 
"gestückelt" abgeholt werden sollen, um keine Digitalsignale während der 
analogen Wandlung zu haben. Nun werden die 24Bit, byteweise abgeholt, 
immer dann, wenn die Wandler gerade fertig sind mit ihrer Wandlung.
Das ganze findet auf einem atsamd51 statt.
Könnte man sicher auch analog aufbauen, aber warum, wenn es integriert 
is.

von Uwe D. (monkye)


Lesenswert?

Richard schrieb:
> S. Landolt schrieb:
>> da nicht kompetent
>
> Etwas mehr Zutrauen!
> Es ist doch nur eine
>
> c-hater schrieb:
>> Simple Sache
>
> :)

Einfach Google oder eine andere Suchmaschine Deines Misstrauens 
verwenden: https://ww1.microchip.com/downloads/en/Appnotes/00002387B.pdf

von Mcn (Gast)


Lesenswert?


von Richard (Gast)


Lesenswert?

Uwe D. schrieb:
> Einfach Google oder eine andere Suchmaschine Deines Misstrauens
> verwenden: https://ww1.microchip.com/downloads/en/Appnotes/00002387B.pdf

Über Sinn und Zweck eines "core independent nightlight" lässt sich 
sicher streiten- das ist "core dependent" im (Rechen)Aufwand ja nun 
wirklich nicht der Rede wert und mit wenig Code erledigt. Hier stellt 
sich vielmehr die Frage lohnt es dafür wirklich, sich in das etwas 
vertrackte CCL einzuarbeiten. Allzuviele Entwickler dürften das bislang 
nicht getan haben wenn hier solche Fragen aufkommen- das Dokument ist ja 
schon von 2017. Die richtige Killeranwendung hab ich jedenfalls noch 
nicht gesehen.

von c-hater (Gast)


Lesenswert?

Richard schrieb:

> Nein. Ich meine, Du hast gar keine.

Was du meinst, leitet sich wohl nur von deiner mangelnden Kompetenz ab.

> Wie sich nämlich mit den 3 CCL Funktionalitäten Logic Gate, State
> Decoder und SR Latch ein autonomer Multiplexer für serielle Signale
> realisieren lassen soll ist schon mehr als schleierhaft!

Wie schon bemerkt, braucht man dafür genau drei LUTs und ein paar äußere 
Verbindungen zwischen deren Eingangspins (ebenfalls genau drei). Das ist 
reine boolsche Logik.

> Grundsätzlich lässt sich das alles besser in Software realisieren

Nein, das konkrete Beispiel zeigt einen Fall, wo das nicht so ist. 
Beweist also mindestens, dass das "grundsätzlich" in deiner Behauptung 
falsch sein muss.

von Richard (Gast)


Lesenswert?

c-hater schrieb:
> Was du meinst, leitet sich wohl nur von deiner mangelnden Kompetenz ab.

Bislang ist die Deinige bei diesem Thema nicht belegt.

c-hater schrieb:
> das konkrete Beispiel zeigt einen Fall

Welches? Von Dir kam da noch nichts.

von S. Landolt (Gast)


Lesenswert?

Richard schrieb:
> etwas vertrackte CCL einzuarbeiten

Wenn Sie eine konkrete Frage zu CCL haben, dann stellen Sie sie, und wir 
werden versuchen, sie zu beantworten.
  Wenn Sie aber über Sinn&Unsinn von CCL diskutieren wollen, so ist das 
so wenig nutzbringend wie C vs. Assembler, 5 V vs. 3.3 V, SMD vs. THT 
&c.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

richtig, alle Controller dieser Welt haben verschiedene Hardwareinheiten 
onboard. Nur weil man davon etwas nicht nutzt oder nicht versteht muss 
das nicht schlecht sein.

von Wilhelm M. (wimalopaan)


Lesenswert?

Walter T. schrieb:
> Könnte man mit dem CCL direkt einen IQ-Mischer in einer MCU realisieren?

Nein, die CCL sind / beinhalten keine Analog-Schalter.

von Richard (Gast)


Lesenswert?

S. Landolt schrieb:
> Wenn Sie aber über Sinn&Unsinn von CCL diskutieren wollen

Am sinnvollen Beispiel! Denn darum geht es doch.
Wozu ist diese CCL nun wirklich zu gebrauchen?!

Eine wünschenswerte Anwendung hätte ich durchaus.
Bei einem Projekt wird ein 8x16 Punkmatrix-Modul angesteuert.
Der dazu nötige Interrupt zur Ansteuerung der 8 Reihen (Mosfets) und 16 
Spalten * 3Farben = 8*48 Leds (3*16 Channel Driver IC, SPI) benötigt 800 
Hz für ein halbwegs ruhiges Bild. Das fordert den AVR neben anderen 
Aufgaben recht ordentlich. Wär toll das irgendwie core-independent 
hinzubekommen.

von S. Landolt (Gast)


Lesenswert?

Hmm - da sehe ich ad hoc keinen Einsatz für CCL; bin allerdings wenig 
erfahren, was LED-Matrizen betrifft. An der SPI-Kommunikation wird sich 
wohl nichts verbessern lassen.

Aber allgemein gefragt: 800 Hz, das entspricht bei 24 MHz (z.B. ein 
AVR-Dx) 30 kTakten - das erscheint mir recht üppig, wo entsteht da der 
Engpass?

von Richard (Gast)


Lesenswert?

S. Landolt schrieb:
> Hmm - da sehe ich ad hoc keinen Einsatz für CCL; bin allerdings wenig
> erfahren, was LED-Matrizen betrifft. An der SPI-Kommunikation wird sich
> wohl nichts verbessern lassen.

Die Rede war von einem 800Hz Timer-Interrupt der das Ganze steuert und 
das regelmäßige Beschicken der Spaltentreiber via SPI(Interrupt) 
veranlasst.
Irgendwie muß die Bildinformation aber vom Speicher aufs Display kommen, 
mangels DMA seh ich da mit der CCL-Einheit allein keine Möglichkeit das 
core-independent hinzubekommen.

S. Landolt schrieb:
> Aber allgemein gefragt: 800 Hz, das entspricht bei 24 MHz (z.B. ein
> AVR-Dx) 30 kTakten - das erscheint mir recht üppig, wo entsteht da der
> Engpass?

Der AVR-DB läuft mit 16MHz, etwas Spielraum nach oben möchte ich mir 
noch freihalten. Es sind noch weitere Interrupts (RTC,UART) im Spiel und 
das Hauptprogramm möchte ebenso zügig vorankommen. Von einem richtigen 
Engpass würde ich noch nicht sprechen - aber das soll jetzt hier kein 
Thema sein.

von S. Landolt (Gast)


Lesenswert?

> mangels DMA seh ich da mit der CCL-Einheit ...
Tja, und sie ist eben auch kein Ersatz für DMA.

> muß die Bildinformation aber vom Speicher aufs Display
> kommen ... AVR-DB läuft mit 16MHz
Das kann doch aber nicht mehr als wenige Hundert der zur Verfügung 
stehenden Zwanzigtausend Takte verbrauchen, oder?

> aber das soll jetzt hier kein Thema sein
Dann verabschiede ich mich fürs erste in diesen trüben 
Sonntagnachmittag.

von c-hater (Gast)


Lesenswert?

Richard schrieb:

> Eine wünschenswerte Anwendung hätte ich durchaus.
> Bei einem Projekt wird ein 8x16 Punkmatrix-Modul angesteuert.
> Der dazu nötige Interrupt zur Ansteuerung der 8 Reihen (Mosfets) und 16
> Spalten * 3Farben = 8*48 Leds (3*16 Channel Driver IC, SPI) benötigt 800
> Hz für ein halbwegs ruhiges Bild. Das fordert den AVR neben anderen
> Aufgaben recht ordentlich. Wär toll das irgendwie core-independent
> hinzubekommen.

Also grundsätzlich sehe ich in dieser Anwendung nix, wobei die CCL 
irgendwie helfen könnte.

So what, es gibt auch noch andere Anwendungen für µC, als LEDs funzeln 
zu lassen...

Und übrigens: wenn diese Ansteuerung bei 800Hz Framerate einen 
AVR128@24Mhz ernsthaft belastet, dann stimmt mit dem Code irgendwas 
nicht. Immerhin stehen in jeder Framezeit 30000 Takte zur Verfügung. Und 
der AVR hat in der Zeit nur 48mal die Aufgabe, zwei Bytes auszugeben. 
Für die Ausgabe dieser  zwei Bytes stehen also 625 Takte zur Verfügung. 
Mit der Ablaufverwaltung des Lesezeigers in den Framebuffer dauert sowas 
bei sinnvoller Programmierung und Organisation eben dieses Buffers was 
um die 18 Takte, dazu kommt dann noch das Signalspiel mit dem 
LED-Driver. Vermutlich SPI und es ist nur CS anzusteuern, also weitere 
zwei Takte. Sind wir bei 20. Dazu noch der unvermeidliche Interuptframe, 
sind wir bei 28 Takten. Sprich: sowas lastet die genannte MCU zu weniger 
als 5% aus.

Braucht dein Code nenneswert mehr, machst du irgendwas falsch.

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Richard schrieb:

> Irgendwie muß die Bildinformation aber vom Speicher aufs Display kommen,
> mangels DMA seh ich da mit der CCL-Einheit allein keine Möglichkeit das
> core-independent hinzubekommen.

Warum nimmst Du dann keinen AVR mit DMA bzw. DMAC (Direct Memory Access 
Controller), wie z.B. den ATxmega16A4U?

Grüßle,
Volker

Nachtrag: Auch der ATXMega32A4-AU, der im Markt-Bereich angeboten wird, 
besitzt einen DMAC -- aber unbedingt die zugh. Errata angucken. Diese 
MCU strotzt nur so vor Fehlern!

: Bearbeitet durch User
von Richard (Gast)


Lesenswert?

c-hater schrieb:
> Also grundsätzlich sehe ich in dieser Anwendung nix, wobei die CCL
> irgendwie helfen könnte.

Genau. Was die Frage weiter offenlässt wo die CCL nun ihre großen 
Erfolge feiert.

> Und übrigens: wenn diese Ansteuerung bei 800Hz Framerate einen
> AVR128@24Mhz ernsthaft belastet

Also speziell nochmal für Dich: Es sind 16MHz und meine Anwendung ist 
hier kein Thema. Passender wäre wenn Du Dein Beispiel von oben endlich 
im Detail vorstellen würdest damit andere auch was über die CCL lernen 
können.

Volker B. schrieb:
> Warum nimmst Du dann keinen AVR mit DMA

Weil ich aus diversen Gründen einen AVR-DB nehme, ganz einfach.
Der langt- es wär nur die Frage gewesen ob die CCL hier eine Hilfe wäre.

> Auch der ATXMega32A4-AU, der im Markt-Bereich angeboten wird,
> besitzt einen DMAC -- aber unbedingt die zugh. Errata angucken. Diese
> MCU strotzt nur so vor Fehlern!

Immer die A4U Variante nehmen!

von Lothar (Gast)


Lesenswert?

Richard schrieb:
> Am sinnvollen Beispiel! Denn darum geht es doch.
> Wozu ist diese CCL nun wirklich zu gebrauchen?!

Der WS2812B Led Driver ist kein sinnvolles Beispiel?

Abgesehen davon, der Sinn eines CPLD ist doch schnelle Logik, also im 
nsec Bereich, wo ein Interrupt zu viel Latenz hat. Und genau das geht 
mit den CCL doch.

Ein "Ersatz" für ein FPGA ist CCL jedenfalls nicht.

von S. Landolt (Gast)


Angehängte Dateien:

Lesenswert?

> was über die CCL lernen

Also gut, auf vielfachen Wunsch eines einzelnen Mitglieds - aber nicht 
zuviel erwarten, ist wie bereits von mir ganz oben angeführt, nur die 
Beseitigung eines Mangels bei den TCB. Sicher nichts

> wo die CCL nun ihre großen Erfolge feiert

Und Verbesserungsvorschläge wären mehr als willkommen, ich würde gerne 
auch dazulernen.

von c-hater (Gast)


Lesenswert?

Richard schrieb:

> Genau. Was die Frage weiter offenlässt wo die CCL nun ihre großen
> Erfolge feiert.

Da, wofür sie geeignet ist.

> Also speziell nochmal für Dich: Es sind 16MHz

OMG. Dann darfst du meine Angaben zu den verfügbaren Takten durch 1,5 
teilen und die Angabe zu der Auslastung, die sowas verursachen darf, mit 
1,5 multiplizieren.
An der grundsätzliche Aussage ändert sich dadurch rein garnix. 
Interessant wäre mal: wieviel Prozent braucht denn deine Implementierung 
nun, so dass es "kritisch" wird?
Zeig' sie doch einfach mal...

> Passender wäre wenn Du Dein Beispiel von oben endlich
> im Detail vorstellen würdest

Das darf ich nicht. Ist halt im Kundenauftrag entstanden. Es sollte aber 
mit den gegeben Hinweisen absolut trivial sein, das selber zu bauen. 
Wenn man halt so einen 1:2 COM-Port MUX/DEMUX braucht...

von Richard (Gast)


Lesenswert?

Lothar schrieb:
> Der WS2812B Led Driver ist kein sinnvolles Beispiel?

Das mag so sein, ohne jetzt die Einzelheiten dieser Ansteuerung zu 
kennen.
Die CCL als Manipulator eines Bitstroms!

S. Landolt schrieb:
> Beseitigung eines Mangels bei den TCB

Immerhin. Danke für den Code.
Die CCL quasi als Timer-Erweiterung!

von c-hater (Gast)


Lesenswert?

Richard schrieb:

> Die CCL quasi als Timer-Erweiterung!

Das ist nur EINE mögliche Anwendung.

von Richard (Gast)


Lesenswert?

c-hater schrieb:
> absolut trivial
> Das darf ich nicht.

Ich darf auch nicht :)

von Lothar (Gast)


Lesenswert?

Richard schrieb:
> Das mag so sein, ohne jetzt die Einzelheiten dieser Ansteuerung zu
> kennen

Die Implementierung mit CCL angesehen?

Lothar schrieb:
> Hier ein Vergleich wie WS2812B Led Driver implementiert wird auf AVR PIC
> Silabs:
>
> 
https://siliconlabs.force.com/community/s/share/a5U8Y000000bxnDUAQ/ws2812b-led-driver-on-efm8bb51-microcontroller

von S. Landolt (Gast)


Angehängte Dateien:

Lesenswert?

an Richard:
War halt doch schon fast ein Jahr her, und jetzt fiel es gleich ins 
Auge: hier eine Variante mit einfacherer Ansteuerung des JK-Flip-Flops.

von Richard (Gast)


Lesenswert?

S. Landolt schrieb:
> an Richard:
> War halt doch schon fast ein Jahr her, und jetzt fiel es gleich ins
> Auge: hier eine Variante mit einfacherer Ansteuerung des JK-Flip-Flops.

Der Fall mit dem TCB Timer hat Dir offensichtlich keine Ruhe gelassen.
Das wär jetzt was für die Code Rubrik für die CCL-Tüftler.
Muß aber ehrlich sagen, ich tu mich bislang sehr schwer damit.
Auch mangels eigenen Bedarfs.

von Uwe D. (monkye)


Lesenswert?

Richard schrieb:
> Uwe D. schrieb:
>> Einfach Google oder eine andere Suchmaschine Deines Misstrauens
>> verwenden: https://ww1.microchip.com/downloads/en/Appnotes/00002387B.pdf
>
> Über Sinn und Zweck eines "core independent nightlight" lässt sich
> sicher streiten- das ist "core dependent" im (Rechen)Aufwand ja nun
> wirklich nicht der Rede wert und mit wenig Code erledigt. Hier stellt
> sich vielmehr die Frage lohnt es dafür wirklich, sich in das etwas
> vertrackte CCL einzuarbeiten. Allzuviele Entwickler dürften das bislang
> nicht getan haben wenn hier solche Fragen aufkommen- das Dokument ist ja
> schon von 2017. Die richtige Killeranwendung hab ich jedenfalls noch
> nicht gesehen.

https://forum.arduino.cc/t/nano-every-atmega4809-am-anfang-stand-der-anfang/701185/13 
Post #13 - und natürlich kann man alles mit Code das Gleiche erreichen. 
Nur sorgt die CCL dafür, dass der übermüdete/unkonzentrierte/unwissende 
Entwickler keinen Kurzschluss baut…

So, das genügt. Kannst ja mal selbst den möglichen Nutzen prüfen anstatt 
die Zeit damit zu verplempern, warum CCL nur Grütze ist…

von Richard (Gast)


Lesenswert?

Uwe D. schrieb:
> Nur sorgt die CCL dafür, dass der übermüdete/unkonzentrierte/unwissende
> Entwickler keinen Kurzschluss baut…

Aber bitte zuerst die Bugs studieren. :)


Volker B. schrieb:
> Bevor Du aber mit dem CCL experimentierst, solltes Du unbedingt das
> Errate-Sheet lesen.
>
> Zitat:
>
> "CCL - Configurable Custom Logic
> 2.3.1 Connecting LUTs in Linked Mode Require OUTEN Set to ‘1’
> Connecting the LUTs in linked mode require LUTnCTRLA.OUTEN set to ‘1’
> for the LUT providing the input source."
>
> "Work around
> Use an event channel to link the LUTs or do not use the corresponding
> I/O pin for other purposes."
>
> Und besonders lustig:
>
> "D-latch is Not Functional
> The CCL D-latch is not functional."
>
> "Work around
> None"

von Wilhelm M. (wimalopaan)


Lesenswert?

Roland F. schrieb:
> Hallo,
> ich habe im Datenblatt des ATtiny 1606 gelesen das dieser Controller
> eine "CCL"-Einheit enthält. So wie ich es verstehe handelt es sich dabei
> um eine Art Mini-FPGA-Baustein, der unabhängig von der CPU des
> Controllers, bestimmte logische Verknüpfungen durchführen kann.
> Hat jemand von euch so eine CCL-Einheit verwendet und kann mal
> beschreiben welches Problem er damit gelöst hat?

Uart in Half-Duplex mit wahlweise normalen / invertierten Pegeln

von Richard (Gast)


Lesenswert?

Wilhelm M. schrieb:
> Uart in Half-Duplex mit wahlweise normalen / invertierten Pegeln

Wer braucht sowas bitte?

Uwe D. schrieb:
> warum CCL nur Grütze ist

Da hast Du was mißverstanden.
Wir sind hier auf der Suche nach sinnvollen Anwendungen .

von Wilhelm M. (wimalopaan)


Lesenswert?

Richard schrieb:
> Wilhelm M. schrieb:
>> Uart in Half-Duplex mit wahlweise normalen / invertierten Pegeln
>
> Wer braucht sowas bitte?

Ich (und z.B. viele andere, die im RC-Bereich unterwegs sind) ;-)

von Richard (Gast)


Lesenswert?

Wilhelm M. schrieb:
> Ich (und z.B. viele andere, die im RC-Bereich unterwegs sind) ;-)

Na schön.
Wenn es nach mir ginge wär bei der UART Abrüstung angesagt.
Baudrate für fix 8N1 konfigurieren und ab geht die Post auf RX/TX.

von Wilhelm M. (wimalopaan)


Lesenswert?

Richard schrieb:
> Wenn es nach mir ginge wär bei der UART Abrüstung angesagt.
> Baudrate für fix 8N1 konfigurieren und ab geht die Post auf RX/TX.

Das ist doch schon super einfach, was willst Du da abrüsten???

von Richard (Gast)


Lesenswert?

Wilhelm M. schrieb:
> Das ist doch schon super einfach, was willst Du da abrüsten???

Du machst wohl Scherze.
Schau Dir die vielen Modi an.
Weg damit.
Alles nur Tribut einer Entwicklung in der Entwickler und Firmen aller 
Welt unbedingt eigene Süppchen kochen wollten.
Die CCL steht hier in der gleichen Tradition.
Was für Kopfstände um beispielsweise einen Takt auszugeben- wie oben in 
S.Landolts Code zu besichtigen. Die nötigen Konfigurationen über 3 Ecken 
mögen intellektuelle Tüftlergemüter befriedigen, sind aber kein Beitrag 
die Dinge einfach und übersichtlich und damit fehlerarm zu halten.

von Unglaublich (Gast)


Lesenswert?

Richard schrieb:
> Du machst wohl Scherze.
> Schau Dir die vielen Modi an.
> Weg damit.

Du solltest vielleicht besser Arduino & Co. nutzen.

von Wilhelm M. (wimalopaan)


Lesenswert?

Richard schrieb:
> Du machst wohl Scherze.
> Schau Dir die vielen Modi an.
> Weg damit.

Was machst Du denn bei 9E2? Dann bist Du wahrscheinlich der erste, der 
wieder jammert.

von Richard (Gast)


Lesenswert?

Unglaublich schrieb:
> Du solltest vielleicht besser Arduino & Co. nutzen.

Und Dir sei gesagt, bei "unglaublichen" Sachen lernt man meist was Neues 
:)

Wilhelm M. schrieb:
> Was machst Du denn bei 9E2? Dann bist Du wahrscheinlich der erste, der
> wieder jammert.

Sicher nicht. Man könnte "9E2" Exoten ja vielleicht auch aus seiner 
Auswahl ausklammern?! Standards sind angesagt.

von Wilhelm M. (wimalopaan)


Lesenswert?

Richard schrieb:
> Unglaublich schrieb:
>> Du solltest vielleicht besser Arduino & Co. nutzen.
>
> Und Dir sei gesagt, bei "unglaublichen" Sachen lernt man meist was Neues
> :)
>
> Wilhelm M. schrieb:
>> Was machst Du denn bei 9E2? Dann bist Du wahrscheinlich der erste, der
>> wieder jammert.
>
> Sicher nicht. Man könnte "9E2" Exoten ja vielleicht auch aus seiner
> Auswahl ausklammern?!

Jetzt erkläre bitte mal, was daran kompliziert ist, die Baud-Rate und 
den 8-bit-Modus zu setzen (die restlichen reset-defaults passen ja für 
8N1).

Richard schrieb:
> Standards sind angesagt.

Wahrscheinlich sollte 8N1@9600 nun der Standard sein? Sorry, aber µCs 
sind nicht nur für Hobbybastler gemacht.

von Richard (Gast)


Lesenswert?

Wilhelm M. schrieb:
> Wahrscheinlich sollte 8N1@9600 nun der Standard sein?

Die Konfiguration der Baudrate hatte ich doch ausdrücklich erwähnt.
Das langt dann aber vollkommen. Auch als Beitrag zu möglichen Fehlern 
übrigens. Jene Minderheit der das als welchem Grunde auch immer nicht 
langt darf das ja gerne anders sehen. Damit können wir das an dieser 
Stelle bewenden lassen.

von Unglaublich (Gast)


Lesenswert?

Richard schrieb:
> Standards sind angesagt.

Dann kannst Du Dich ja schonmal an 5N1.5 gewöhnen:

https://de.wikipedia.org/wiki/Baudot-Code#Der_Baudot-Murray-Code_(CCITT-2)

Richard schrieb:
> Jene Minderheit der das als welchem Grunde auch immer nicht
> langt

Was die Mehrheit braucht, entscheidest Du? Also entweder Narzisst oder 
Troll.

von Richard (Gast)


Lesenswert?

Unglaublich schrieb:
> Was die Mehrheit braucht, entscheidest Du?

Dir scheint die Übersicht zu fehlen was bei serieller Kommunikation 
gängig ist und was nicht. Ansonsten darfst auch Du bitte wieder zum 
eigentlichen CCL Thema zurückfinden (so denn mit eigenen Kenntnissen 
ausgestattet).

von Veit D. (devil-elec)


Lesenswert?

Richard, deine Frage bzw. Diskussion ist vollkommen sinnfrei. Wenn man 
irgendein Problem zu lösen hat und man grübelt darüber und man kommt 
vielleicht zu dem Gedanken das die CCL der Problemlösung dienen könnte, 
dann beschäftigt man sich damit und gut ist.
Nicht jeder benötigt für jede Aufgabe jede verfügbare Hardwareeinheit. 
Sind die nicht benutzten Hardwareeinheiten deswegen Unfug? Ich denke 
nicht.
Deine negative Einstellung gegenüber der CCL ist absolut unproduktiv und 
unprofessionell. Auf die gezeigten Bsp. gehst du nämlich nicht ein. Das 
zeigt mir du willst es gar nicht wissen. Auf ein lang und breit 
dokumentiertes Bsp. kommt als Einzigste Reaktion von dir "Aber bitte 
zuerst die Bugs studieren.". Was hat das Bsp. mit Bugs zu tun? Das zeigt 
mir auch nur wieder du willst dich damit nicht befassen. Du möchtest nur 
sinnfrei diskutieren und stänkern. Deswegen bin ich hier raus. Mach was 
du willst.

von Wilhelm M. (wimalopaan)


Lesenswert?

Richard schrieb:
> Wilhelm M. schrieb:
>> Wahrscheinlich sollte 8N1@9600 nun der Standard sein?
>
> Die Konfiguration der Baudrate hatte ich doch ausdrücklich erwähnt.

Ja, aber nicht, was daran kompliziert sein soll, den 8-Bit Modus 
einzustellen.

> Das langt dann aber vollkommen.

Nein.
> Auch als Beitrag zu möglichen Fehlern
> übrigens.

Fehler kann man überall machen (vor allem, wenn man nur die 
CPP-Konstanten aus den Atmel-Headern verwendet).

> Jene Minderheit der das als welchem Grunde auch immer nicht
> langt darf das ja gerne anders sehen.

Minderheit?

von Richard (Gast)


Lesenswert?

Veit D. schrieb:
> Das zeigt mir auch nur wieder du willst dich damit nicht befassen.

Ich befasse mich gerne mit sinnvollen Beispielen. Ausbeute bislang: 
Äußerst mager. Aber wen wundert's.

von Wilhelm M. (wimalopaan)


Lesenswert?

Richard schrieb:
> Veit D. schrieb:
>> Das zeigt mir auch nur wieder du willst dich damit nicht befassen.
>
> Ich befasse mich gerne mit sinnvollen Beispielen. Ausbeute bislang:
> Äußerst mager. Aber wen wundert's.

Wenn Du in dem bisher gesagten keine sinnvollen Beispiele siehst, dann 
ist das einzig Dein Problem.

von Cyblord -. (cyblord)


Lesenswert?

Richard schrieb:
> Wenn es nach mir ginge wär bei der UART Abrüstung angesagt.
> Baudrate für fix 8N1 konfigurieren und ab geht die Post auf RX/TX.

Wieso füttert ihr diesen Troll eigentlich so hartnäckig? Auslachen und 
ignorieren.

von Richard (Gast)


Lesenswert?

Cyblord -. schrieb:
> Wieso füttert ihr diesen Troll eigentlich so hartnäckig? Auslachen und
> ignorieren.

Puh. Jetzt hast Du's mir aber gegeben!
Hast zwar selber keinen (CCL)Plan aber Hauptsache rumkrakeelt. Wie ich 
sehe regt das den Ideenfluss zum Thema aber auch nicht weiter an...

von Uwe D. (monkye)


Lesenswert?

Für Leute mit Interesse, wobei man sicher noch einiges verbessern kann: 
https://hackaday.com/tag/configurable-custom-logic/

von Axel R. (axlr)


Lesenswert?

Uwe D. schrieb:
> 
https://forum.arduino.cc/t/nano-every-atmega4809-am-anfang-stand-der-anfang/701185/13
> Post #13 - und natürlich kann man alles mit Code das Gleiche erreichen.

https://europe1.discourse-cdn.com/arduino/original/4X/a/2/6/a264bb28c4b464a3e2d0d8655e63b655f38a63ee.png

PWM-Verteilungslogik fürn RC-Car-Fahrt(en)steller.
Ist ja mal was für richtige Nerds, oder? Weis nicht recht, da löte ich 
dann doch lieber n CMOS-IC in die Ecke, als mir das anzutun. Gut - gibt 
es jetzt ja vorgekaut - aber wäre ich Leben nicht von selbst drauf 
gekommen, wie man das nun syntaktisch in GlueLogic umsetzt.

von Jan V. (janv)


Lesenswert?

"But we haven’t seen any practical example of the CCL peripheral in an 
Atmel chip up until now"

von Old (Gast)


Lesenswert?


von Jan V. (janv)


Lesenswert?

"a set of frequency dividers that blink three LEDs with up to a 90 MHz 
input signal"

Wer braucht sowas bitte?
Oder das Beispiel der Schalter-Entprellung. Das ist alles simpel und 
sparsam in Software machbar.

Uwe D. schrieb:
> Nur sorgt
> die CCL dafür, dass der übermüdete/unkonzentrierte/unwissende Entwickler
> keinen Kurzschluss baut…

Die kann genausogut fürs Gegenteil sorgen weil der Entwickler das Teil 
nicht durchblickt.

: Bearbeitet durch User
von der_eine (Gast)


Lesenswert?

Roland F. schrieb:
> Hallo,
> ich habe im Datenblatt des ATtiny 1606 gelesen das dieser Controller
> eine "CCL"-Einheit enthält. So wie ich es verstehe handelt es sich dabei
> um eine Art Mini-FPGA-Baustein, der unabhängig von der CPU des
> Controllers, bestimmte logische Verknüpfungen durchführen kann.
Richtig. Das entscheidende ist hier "Mini"

> Hat jemand von euch so eine CCL-Einheit verwendet und kann mal
> beschreiben welches Problem er damit gelöst hat?
Durch die CCL-Einheit ist es uns möglich Pins umzumappen, bei welchen 
sich ansonsten die Perepherie-Einheiten "auf die Füße Treten" würden. 
Ein Beispiel ist beim Attiny214 wenn man den ADC0-Out verwenden möchte, 
und gleichzeitig WOB aktiviert haben will. Beides liegt auf PA6. Leitet 
man ein Signal durch die CCL, dann kann man ein Signal beispielsweise 
auf PA7 umlegen.
Ist kein Mega-Tolles Beispiel, und wäre von Atmel auch anders lösbar 
gewesen. Für uns war es aber auf alle Fälle "die Rettung".
>
> rhf

P.S. kleiner Tipp: Die CCL funktioniert in einigen Punkten nicht so wie 
im Datenblatt beschrieben. Es lohnt sich ein Blick in die Erratas (ist 
sowieso immer eine gute Idee).

von Jan V. (janv)


Lesenswert?

der_eine schrieb:
> Ist kein Mega-Tolles Beispiel

Das Um-Mappen wär schon eine Anwendung.
Aber nur weil man bei der Planung zuvor nachlässig war.

Viel sinnvoller als solche halbgaren Erweiterungen, und zwar für jede 
Anwendung, wär das Drehen an der allgemeinen Taktschraube gewesen.
Logische Funktionen lassen sich immer in Software abbilden.

von Wilhelm M. (wimalopaan)


Lesenswert?

Jan V. schrieb:
> der_eine schrieb:
>> Ist kein Mega-Tolles Beispiel
>
> Das Um-Mappen wär schon eine Anwendung.
> Aber nur weil man bei der Planung zuvor nachlässig war.

Nein, s.a. mein Beispiel von oben mit einem half-duplex UART, den man 
zwischen invertiertem und nicht-invertierten Modus umschalten kann. Hier 
braucht man die CCL (und eine externe Diode), weil der eingebaute UART 
zwar die RX-Signale invertieren kann, aber nur einen 
OpenDrain-TX-Ausgang besitzt, der einem im invertierten Modus nichts 
nutzt.

von Jan V. (janv)


Lesenswert?

Wilhelm M. schrieb:
> aber nur einen OpenDrain-TX-Ausgang besitzt, der einem im invertierten
> Modus nichts nutzt.

Mit externem Pull-Widerstand auch nicht?

: Bearbeitet durch User
von der_eine (Gast)


Lesenswert?

Jan V. schrieb:
> Das Um-Mappen wär schon eine Anwendung.
> Aber nur weil man bei der Planung zuvor nachlässig war.


Jan V. schrieb:
> Das Um-Mappen wär schon eine Anwendung.
> Aber nur weil man bei der Planung zuvor nachlässig war.
Was heißt da nachlässig? Wenn man WOB und AC0-Out gleichzeitig braucht, 
dann geht daß nicht anders (ja, EVENT-OUT würde auch gehen, wurde aber 
noch für was anderes benötigt).

> Logische Funktionen lassen sich immer in Software abbilden.
Aber Software kommt immer Verzögert und kann durch Interrupts etc. 
blockiert werden. Wäre für uns nicht machbar gewesen, und damit die 
Controllerfamilie für unseren Zweck nicht tauglich gewesen.

Gruß

von Jan V. (janv)


Lesenswert?

der_eine schrieb:
> Wäre für uns nicht machbar gewesen,

Will ich Euch auch nicht einreden ohne das Projekt genau zu kennen.
Die ganz einfach freie Zuordnung aller Funktionalitäten zu allen IO-Pins 
wär dafür aber die eigentlich passende Lösung. Dafür hätte man die CCL 
Chipfläche besser nutzen können. So ist die CCL eher eine lückenfüllende 
Krücke. Immerhin habt Ihr dafür eine Einsatzmöglichkeit gefunden. 
Gratulation.

: Bearbeitet durch User
von Uwe D. (monkye)


Lesenswert?

Axel R. schrieb:
> Uwe D. schrieb:
>>
> 
https://forum.arduino.cc/t/nano-every-atmega4809-am-anfang-stand-der-anfang/701185/13
>> Post #13 - und natürlich kann man alles mit Code das Gleiche erreichen.
>
> 
https://europe1.discourse-cdn.com/arduino/original/4X/a/2/6/a264bb28c4b464a3e2d0d8655e63b655f38a63ee.png
>
> PWM-Verteilungslogik fürn RC-Car-Fahrt(en)steller.
> Ist ja mal was für richtige Nerds, oder? Weis nicht recht, da löte ich
> dann doch lieber n CMOS-IC in die Ecke, als mir das anzutun. Gut - gibt

Nö, da spare ich auf jeden Fall den Chip. (Genau wie ich jeden externen 
OPV oder Timer o.ä. einsparen würde, wenn das geht.)

von Uwe D. (monkye)


Lesenswert?

Jan V. schrieb:
> "a set of frequency dividers that blink three LEDs with up to a 90 MHz
> input signal"
>
> Wer braucht sowas bitte?
> Oder das Beispiel der Schalter-Entprellung. Das ist alles simpel und
> sparsam in Software machbar.

Wenn der Platz im Speicher knapp ist, dann per Hardware.
Du musst auch nix blinken lassen, kannst aber Platz sparen und ohne 
externe Teile zeitlich entspannter agieren…

Offensichtlich sind Deine Anwendungen immer ohne Ressourcen Limits.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

c-hater schrieb:
> Das darf ich nicht. Ist halt im Kundenauftrag entstanden. Es sollte aber
> mit den gegeben Hinweisen absolut trivial sein, das selber zu bauen.
> Wenn man halt so einen 1:2 COM-Port MUX/DEMUX braucht...

Welche Hinweise?
Aber erst erkläre mal bitte, wie du ein inkommendes Signal auf einen
von 2 Ports umrouten willst, nur mit CCL, ohne CPU.

von Old (Gast)


Lesenswert?

Der eigentliche Clou dabei ist, dass man 90MHz mit dem niedrig 
getakteten AVR verarbeiten kann. LEDs dann blinken zu lassen, ist ja nur 
eine simple Beispielanwendung.

von Jan V. (janv)


Lesenswert?

Uwe D. schrieb:
> Wenn der Platz im Speicher knapp ist, dann per Hardware

Ich denke das ist ein sehr seltener Grund.

Old schrieb:
> Der eigentliche Clou dabei ist, dass man 90MHz mit dem niedrig
> getakteten AVR verarbeiten kann.

Wofür bitte?
Das ist mir zu theoretisch.

Und man muß ja immer auch eins im Hinterkopf behalten: Viel 
leistungsstärkere 32-Bit MCUs arbeiten bei/mit höheren Frequenzen und 
sind nicht oder kaum teurer.

: Bearbeitet durch User
von Lothar (Gast)


Lesenswert?

Jan V. schrieb:
> Viel leistungsstärkere 32-Bit MCUs arbeiten bei/mit
> höheren Frequenzen und sind nicht oder kaum teurer.

Im Vergleich zu AVR

Aber es gibt ja PIC und EFM mit 4 CCL für unter $1

von Jan V. (janv)


Lesenswert?

Lothar schrieb:
> Aber es gibt ja PIC und EFM mit 4 CCL für unter $1

Fehlt trotzdem noch die konkrete Anwendung.
Wofür also sollte ein 8Bitter 90MHz teilen wollen? Ist ja alles gut und 
schön was machbar wäre.

: Bearbeitet durch User
von Lothar (Gast)


Lesenswert?

Wie bereits geschrieben ist die Anwendung von CCL in der Industrie - 
nicht für Bastler - Glue Logic

Dafür gibt es diese Möglichkeiten:

- 74xx-Chips: braucht Platz, teuer
- CPLD: gibt es nicht mehr
- kleine FPGA: teuer, nicht-deterministisches Timing
- billig uC der die Logik im main loop macht: muss programmiert werden, 
eventuell nicht schnell genug
- billig uC mit CCL: muss nicht programmiert werden, nur mit dem CCL 
Tool konfiguriert, uC macht nichts = kaum Stromverbrauch, 
deterministisch im nsec Bereich

Anstatt also weiter CPLD zu produzieren, werden uC mit zusätzlich CCL 
ausgestattet, und der uC wird dann gar nicht genutzt.

Hier ein Beispiel, das ist ein QFN20 in Stückzahlen 50 Cent und hat 4 
CCL

https://www.mouser.de/ProductDetail/Silicon-Labs/EFM8BB51F8G-C-QFN20?qs=7D1LtPJG0i3GGYLLlbsrGQ%3D%3D

von Jan V. (janv)


Lesenswert?

Lothar schrieb:
> Wie bereits geschrieben ist die Anwendung von CCL in der Industrie -
> nicht für Bastler - Glue Logic

Das entschuldigt die Nichtnennung konkreter Anwendungen ebenso wenig.

> Anstatt also weiter CPLD zu produzieren, werden uC mit zusätzlich CCL
> ausgestattet, und der uC wird dann gar nicht genutzt.

Was *im Falle der AVR* zu belegen wäre. Konkret natürlich. Also ich kann 
mir das nicht vorstellen.

: Bearbeitet durch User
von Dreikäsehochreibe (Gast)


Lesenswert?

Lothar schrieb:
> - CPLD: gibt es nicht mehr

Doch, jede Menge bswp Coolrunner2, auch PAL's gibt es noch.

- 74xx-Chips: braucht Platz, teuer
Nö die gibt es auch als SMD für apple und nen Ei

>Anstatt also weiter CPLD zu produzieren, werden uC mit zusätzlich CCL
>ausgestattet, und der uC wird dann gar nicht genutzt.

Mumpitz²

von Jan V. (janv)


Angehängte Dateien:

Lesenswert?

So eine EFM Pinfunktions-Crossbar würd ich mir für AVR viel lieber 
wünschen als diese beschränkte CCL.

Dreikäsehochreibe schrieb:
> Mumpitz²

Wenn das nämlich wirklich so wäre dann hätten die günstigeren AVR 
Varianten keine abgespeckten CCL LUT/Funktionalitäten, das wär dann 
nicht ganz logisch.

: Bearbeitet durch User
von Uwe D. (monkye)


Lesenswert?

Naja - Du blendest hier aus, dass PIC und AVR hausintern im Wettbewerb 
stehen. Mit Logik hat das wenig zu tun.

von Hmmm (Gast)


Lesenswert?

Jan V. schrieb:
> Fehlt trotzdem noch die konkrete Anwendung.
> Wofür also sollte ein 8Bitter 90MHz teilen wollen?

Konkretes Beispiel, wo mangels CCL extern geteilt werden musste: 
Automatischer Antennentuner mit Messung der Sendefrequenz.

von Jan V. (janv)


Lesenswert?

Hmmm schrieb:
> Konkretes Beispiel, wo mangels CCL extern geteilt werden musste:
> Automatischer Antennentuner mit Messung der Sendefrequenz.

Danke.

von Jan V. (janv)


Lesenswert?

Uwe D. schrieb:
> Du blendest hier aus, dass PIC und AVR hausintern im Wettbewerb stehen.

Wollen wir doch mal festhalten daß mit den günstigeren Preisen 
günstigerer AVR Derivate der Funktionsumfang im Allgemeinen und der der 
CCL im speziellen eingeschränkt wird.
Wenn MCUs nur mit und wegen der CCL eingesetzt würden (jener Mumpitz²) 
würde man die CCL ja nicht just bei den Varianten beschneiden die gerade 
wegen ihres niedrigen Preises am ehesten als CPLD bzw. diskrete Logik- 
Ersatz geeignet wären... Das meinte ich mit nicht ganz logisch.

: Bearbeitet durch User
von Old (Gast)


Lesenswert?

Hmmm schrieb:
> Jan V. schrieb:
>> Fehlt trotzdem noch die konkrete Anwendung.
>> Wofür also sollte ein 8Bitter 90MHz teilen wollen?
>
> Konkretes Beispiel, wo mangels CCL extern geteilt werden musste:
> Automatischer Antennentuner mit Messung der Sendefrequenz.

Genau das z.B. Die zu den AVRs vergleichbaren PICs können selber bis 
50…60MHz zählen/teilen, während die AVRs bestenfalls nur 2…3…6MHz 
beherrschen.

von c-hater (Gast)


Lesenswert?

Jan V. schrieb:

> Wollen wir doch mal festhalten daß mit den günstigeren Preisen
> günstigerer AVR Derivate der Funktionsumfang im Allgemeinen und der der
> CCL im speziellen eingeschränkt wird.

Die Möglichkeiten der CCL korrelieren (aus technischen Gründen der 
Implementierung) im Wesentlichen mit der Anzahl der Pins (eigentlich: 
der Byte-Ports, deren Anzahl aber logischerweise stark von der Pinzahl 
abhängt). Der Preis der AVR-Controller korreliert im Wesentlichen 
ebenfalls mit der Anzahl der Pins.

Das ist das ganze Geheimnis hinter dem von dir gefundenen Zusammenhang. 
Keine Illuminaten-Verschwörung...

von Jan V. (janv)


Lesenswert?

Old schrieb:
> während die AVRs bestenfalls nur 2…3…6MHz beherrschen

Meinst Du damit z.B. TCA Event-Counting?

c-hater schrieb:
> Keine Illuminaten-Verschwörung

Nein, aber Lothar's Mumpitz.

Beitrag #7265670 wurde von einem Moderator gelöscht.
von Rudolph R. (rudolph)


Lesenswert?

So ganz neu ist das mit CCL in Atmel Chips übrigens nicht, die ATSAMC2x 
haben das seit 2015 und die ATSAMD5x/ATSAME5x seit 2017.
Und so ist das jetzt auch in den PIC32CM zu finden die Clones von den 
ATSAMC2x sind.
Die neuere AVR DA Version von CCL kann allerdings mehr, zum Beispiel hat 
die 2 LUTs mehr.

von c-hater (Gast)


Lesenswert?

Rudolph R. schrieb:

> Die neuere AVR DA Version von CCL kann allerdings mehr, zum Beispiel hat
> die 2 LUTs mehr.

Das kann man so allgemein nicht sagen. Es hängt bei allen neueren AVR8 
(auch bei den DA/DB) stark von Pinzahl ab, was die CCL kann.

Viele andere Features übrigens ebenfalls.

Sieht man sehr schön z.B. hier (siehe Anhang). Allein schon die 
grundlegende Gestaltung der Tabelle stellt das vollkommen klar.

von c-hater (Gast)


Angehängte Dateien:

Lesenswert?

c-hater schrieb:

> Sieht man sehr schön z.B. hier (siehe Anhang).

Mist, Anhang vergessen.

von Lothar (Gast)


Lesenswert?

Jan V. schrieb:
> Nein, aber Lothar's Mumpitz

Wir machen das so es kostet fast nichts und es funktioniert und damit 
sind Deine Einwände hinfällig :-)

Im Übrigen hab ich schon gesehen, dass auch in Schaltschränken, anstatt 
für eine Logik sechs Relais einzubauen, sowas hier für die Logik 
programmiert und eingebaut wurde. Kostet nicht mehr und nimmt weniger 
Platz weg:

https://www.controllino.com/product/controllino-mini-pure/

von Jan V. (janv)


Lesenswert?

Lothar schrieb:
> Wir machen das so es kostet fast nichts

Jan V. schrieb:
> Was *im Falle der AVR* zu belegen wäre.

von asd (Gast)


Lesenswert?

Es gibt Bus-Protokolle (GPIB oder die alte 
Centronics-Druckerschnittstelle) bei denen man quasi sofort auf eine 
Flanke reagieren muss um den Status zu setzen dass man noch Zeit braucht 
bis das nächste Datenwort kommen darf. Per Interrupt zu reagieren wäre 
zu langsam. Für diesem Fall braucht man entweder externe Logik-Gatter 
oder eben das CCL.

von WF88 (Gast)


Lesenswert?

Jan V. schrieb:
> Lothar schrieb:
>
>> Aber es gibt ja PIC und EFM mit 4 CCL für unter $1
>
> Fehlt trotzdem noch die konkrete Anwendung.
> Wofür also sollte ein 8Bitter 90MHz teilen wollen? Ist ja alles gut und
> schön was machbar wäre.

Mir schwebt da ein current mode boost converter zum Laden von Akkus vor. 
Die Regelung und Steuerung in einem AVR.

von Ron T. (Gast)


Lesenswert?

asd schrieb:
> die alte
> Centronics-Druckerschnittstelle

> Per Interrupt zu reagieren wäre
> zu langsam

Ganz zufälligerweise hab ich selber genau das eine
mit dem anderen betrieben, noch zu Z80 Zeiten. Es geht also.
Heute bringt der AVR noch ein mehrfaches an Rechenleistung
mit. Entscheidend ist ja meist nicht die sofortige Reaktion sondern
daß z.B. eine Flanke nicht verloren geht. In Form eines Interrupt-Flags 
ist das gesichert. Die CCL dürfte all ihrer Unabhängigkeit zum Trotz 
meistens doch nur Teil der Lösung sein, bei der das Mitwirken des 
Controllers kraft seiner Software erforderlich bleibt.

von c-hater (Gast)


Lesenswert?

Ron T. schrieb:

> Entscheidend ist ja meist nicht die sofortige Reaktion sondern
> daß z.B. eine Flanke nicht verloren geht.

Das ist richtig.

> In Form eines Interrupt-Flags
> ist das gesichert.

Das ist nicht unbedingt richtig. Bei den PinChange-Interrupts eines AVR8 
z.B. dann nicht, wenn mehr als ein Pin ihn auslösen können. Es können 
sich bis zu 8 Pins so ein Ding teilen. Und zumindest bei den 
"klassischen" AVR8 gibt es keine Möglichkeit, festzustellen, welcher es 
nun war, der das Flag gesetzt hat, jedenfalls dann nicht, wenn es mehr 
als einer gewesen sein könnte. OK, die Dinger haben natürlich auch keine 
CCL, die hilft hier also nicht weiter. Wenn sie eine hätten, könnte sie 
aber weiter helfen...

> Die CCL dürfte all ihrer Unabhängigkeit zum Trotz
> meistens doch nur Teil der Lösung sein, bei der das Mitwirken des
> Controllers kraft seiner Software erforderlich bleibt.

Das ist in den meisten Fällen sehr wahrscheinlich tatsächlich so. Aber 
es gibt halt auch Ausnahmen, wo ein Problem komplett in der CCL 
abhandelbar ist. Siehe mein Beispiel mit dem COM-Port-Mux/Demux.

Beitrag #7266153 wurde von einem Moderator gelöscht.
von Ron T. (Gast)


Lesenswert?

c-hater schrieb:
> Bei den PinChange-Interrupts eines AVR8
> z.B. dann nicht, wenn mehr als ein Pin ihn auslösen können. Es können
> sich bis zu 8 Pins so ein Ding teilen

Kapazitäten sind begrenzt.
Das ist bei allen Kapazitäten so.

c-hater schrieb:
> usnahmen, wo ein Problem komplett in der CCL
> abhandelbar ist. Siehe mein Beispiel mit dem COM-Port-Mux/Demux.

Der Beleg steht noch aus.
Das haben hier nun schon mehrere bemängelt.

von Euro (Gast)


Lesenswert?

Mit der CCL lässt sich z.B. TxD über die LUT auf eine höhere 
Timerfrequenz (>1MHz) modulieren.
Praktisch angewendet mit einem Tiny1614 in einem 360°-Sensor, dessen 
Kopf über einen Royer-Konverter versorgt wurde und der über ein zweites 
konzentrisches Spulenpaar die Daten abgab (da will man naturgemäß etwas 
von der Royer-Frequenz weg).

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

c-hater schrieb:
> Siehe mein Beispiel mit dem COM-Port-Mux/Demux.

Und zum zweten Mal:
Welches Beispiel?
Wo?

von Richard (Gast)


Lesenswert?

Marc V. schrieb:
> Wo?

Nirgendwo. Gibts nicht. Passende Ausrede kam doch schon.
Aus den Fingern gesogen wie so vieles im Forum.

Euro schrieb:
> Mit der CCL lässt sich z.B. TxD über die LUT auf eine höhere
> Timerfrequenz (>1MHz) modulieren.

Schon seeeehr speziell aber danke fürs Beispiel.

von Euro (Gast)


Lesenswert?

Richard schrieb:
> Schon seeeehr speziell aber danke fürs Beispiel.
Ich will nicht lügen. Mit dem ATMega habe ich früher TxD und SystemClock 
extern über zwei FETs zur Sendespule hin verknüpft. Jetzt braucht es 
"nur" noch Einen.
Einen Pin spart die Sache übrigens nicht, da in der UART das TxD-Enabled 
gleichzeitig Logik und Pin-Funktion schaltet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.