SAMD51 Glue Logic und Event System erzeugen nur Spikes

Gast #6800119
Lesenswert?

Hallo

ich hab mit Atmel Start eine SAMD51 wie folgt konfiguriert:
1
PA06 --> External Interrupt 6 --> Event Channel 1 --> LUT-0 Eingang 1 --> PA19

Die LUT Tabelle hab ich so konfiguriert dass das Signal am Eingang 
einfach auf den Ausgang kopiert wird.

Wenn ich nun ein Rechteck Signal an PA06 anlege, bekomme ich nur Spikes 
bei der steigenden Flanke des Eingangssignals. Sieht also so aus als 
wäre ein Flanken Detektor aktiv.

Um das zu kontrollieren habe ich den Event Channel 1 zusätzlich auf Port 
Event 1 gelegt und diesen mit PA18 verbunden:
1
PA06 --> External Interrupt 6 --> Event Channel 1 --> Port Event 1 --> PA18
2
                                                  +-> LUT-0 Eingang 0 --> PA19

an PA18 kommt das Rechtecksignal wie erwartet.
an PA19 nur Spikes. heir würde ich das gleiche Signal erwarten

file:/C:/p4/develope/SBS/HutschieneBridge/Project/MyProject.atstart

was mache ich falsch?
Angehängte Dateien:
Beitrag #6800212 wurde von einem Moderator gelöscht.
Gast #6800453
Lesenswert?

Jörg W. schrieb:
> Schätzungsweise ein "Atmel Start"-Projekt. Müsste man sogar hier
> importieren können:
>
> https://start.atmel.com/

Bingo

Umstritten hin oder her.
Auch das Datenblatt hab ich gelesen.
Gerade das Kapitel über Digital Glue Logic ist naja.
Ich habe zum ersten mal mit dem SAMD51 und der Glue Logic zu tun.
Über ein Flankendekoder ließt man nichts.

im Anhang hab ich mal ein Foto.
Gelb ist das Eingangssignal,
Blau das Ausgangssignal an PA19
Rot das Signal an PA18

Blume
Angehängte Dateien:
Gast #6800502
Lesenswert?

Alexander S. schrieb:
> Ich seh grad das ist kein Bug sondern ein Feature...
>
> Das Event-System kennt prinzipiell nur "Strobes" sprich Impulse zum
> Signalisieren.

Das stimmt so nicht ganz. Wenn ich das Event direkt auf ein PortPin 
route funktioniert das wunderbar. (Siehe Oszillogramm)
der Edge Decoder sitzt direkt vor der LUT aber nur wenn als Eingang ein 
Event gewählt ist.

> Was hattest du den vorgehabt?

ich muss ein "alte" H-Brücken Schaltung mit einem anderen IC 
realisieren.
Eingang: PWM, DIR, Break


nun wollte ich die bisherigen Eingangssignale über Events, LUTs und 
alles was sonst noch da ist so an das IC anlegen das sich die Schaltung 
wie die bisherige verhält.
Gast #6800509
Lesenswert?

Nachtrag:
Leider ist die Schaltung schon fertig. und mein Auftraggeber hat die 
PIN's nicht optimal verteilt. deshalb wollte ich die Eingangs Pins mit 
Hilfe der Events an die LUT routen. das geht aber wohl dann nicht.
wegen diesem Edge detector.

:-(
(Firma: @home) #6800538
Lesenswert?

Blume schrieb:
> aber ich finde nirgends was um diesen "default" Flankendekoder
> abzuschalten.

In meiner Doku (Revision A - 07/2017) steht
"Writing the LUTCTRLx.INSELy=ASYNCEVENT will disable the edge detector."

und auch "Figure 41-6. Event Input Selection" zeigt den Bypass vom 
Flankendekoder.

Interessant, war (oder ist noch) vorgesehen?
Gast #6800575
Lesenswert?

Apollo M. schrieb:
> In meiner Doku (Revision A - 07/2017) steht
> "Writing the LUTCTRLx.INSELy=ASYNCEVENT will disable the edge detector."

* in Revision C wurde das entfernt.
* In Atmel Start kann man das AsyncEvent nicht anwählen.
* Bei der Beschreibung von INSEL tauch das aber noch auf.
Angehängte Dateien:
Gast #6801066
Lesenswert?

Jörg W. schrieb:
> Ist natürlich genauso umstritten wie andere "Wir machen das für
> Sie!"-Meta-Code-Generatoren. Man lernt nichts über die Details, wie die
> zugrunde liegende Hardware wirklich angesprochen wird.

Das ist der eine Aspekt und Atmel hat das echt perfektioniert da 
möglichst viel zu verstecken.

Das andere ist, START ist schlicht verbugt.
Interessanterweise kümmert sich da irgendwer drum und updated das immer 
noch, obwohl das eigentlich längst nicht mehr Online sein sollte.

Takterzeugung.
Ich habe gerade ein neues Projekt für einen ATSAMD51J19A angelegt.
Per Default steht der Clock-Configurator auf XOSC1 mit 12MHz.
Dazu ist für XOSC1 auch noch die niedrigste Start-Up Time von 31µs 
konfiguriert.

Inzwischen kann man sogar eine DPLL direkt mit dem XOSC Takt füttern, 
hat auch nur Jahre gedauert bis das ging.
Da fehlt "nur" der Hinweis, was der Wert für den Clock-Divider bedeutet, 
also ohne das x = 2*(div +1) ist das nicht so direkt zu verstehen.
Mit Fractional = 0, Integer = 59 und Clock Divider = 2 kommt man auch in 
START endlich mal auf 120MHz ohne den XOSC Takt durch eine GCLOCK 
Einheit teilen zu müssen.

Dafür funktioniert die DFLL48M komischerweise gerade nicht richtig, die 
lässt sich nur aus einer GCLOCK Einheit mit Takt versorgen.

Äh ja.
Also wenn die Ihre eigenen Controller schon nicht richtig mit Takt 
versorgen können und die Benutzung ein Blindflug ist, dann verzichte ich 
lieber auf START.
Moderator Persönliche Seite #6801071
Lesenswert?

Bob schrieb:
> Also wenn die Ihre eigenen Controller schon nicht richtig mit Takt
> versorgen können und die Benutzung ein Blindflug ist, dann verzichte ich
> lieber auf START.

Meine Vermutung: gerade der ganze Takt-Zirkus ist schlicht derart 
komplex bei diesen SAMD & Co. (weil er halt auch unheimlich flexibel 
ist), dass die Vereinfachungen a la START schwierig zu realisieren sind, 
ohne dass man am Ende doch noch in eine Fratzenfalle rennt.

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