Forum: FPGA, VHDL & Co. Problem mit CPLD ATF1504


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Alex (johnrambo86)


Lesenswert?

Hallo zusammen,

ich hoffe hier kennt sich noch jemand mit diesen nicht mehr ganz 
frischen CPLDs aus...
habe es gestern tatsächlich geschafft mein Programm mit ATMISP auf den 
CPLD zu flashen, laut Log alles gut:
1
log: erasing device #1.
2
log: programming device #1.
3
log: verifying device #1: ... OK ...
4
log: JTAG instructions finished successfully.
Leider verhält sich das Ganze nicht wie erwartet, die Ausgänge schalten 
genau einmal und bleiben dann hängen...
Ich habe dann erstmal den Code reduziert auf eine einzige logische 
Verknüpfung um Fehler auszuschließen aber das ändert leider nix.
So sieht der Code aus:
1
Name     2Input_Interlock.dig ;
2
PartNo   00 ;
3
Date     30.08.2022 ;
4
Revision 01 ;
5
Designer x ;
6
Company  x ;
7
Assembly None ;
8
Location unknown ;
9
Device   f1504ispplcc44 ;
10
11
PROPERTY ATMEL {TDI_pullup = ON};
12
PROPERTY ATMEL {TMS_pullup = ON};
13
14
15
/* inputs */
16
PIN 4 = I1;
17
PIN 6 = I2;
18
PIN 9 = I3;
19
PIN 12 = I4;
20
21
22
/* outputs */
23
24
PIN 20 = INTERLOCK;
25
26
/* sequential logic */
27
28
/* combinatorial logic */
29
30
!INTERLOCK = I1 # I2 # I3 # I4;


Sieht einer der Inputs einmal einen High Pegel bleibt der Ausgang low. 
Erst nach erneutem flashen ist er wieder High.
Ich wäre für jeden Tipp sehr dankbar!

von Bernd G. (Firma: Bannerträger des Fortschritts) (berndg)


Lesenswert?

Ich lese dir jetzt mal was aus dem Datenblatt vor:
"The ATF1504ASV(L) offers the option of programming
all input and I/O pins so that pin-keeper circuits can be
utilized. When any pin is driven high or low and then
subsequently left floating, it will stay at that previous
high or low level."

Ich habe ja von elektrischem Zeug auch keine Ahnung, aber vllt liegt es 
daran?

: Bearbeitet durch User
von Alex (johnrambo86)


Lesenswert?

Ok ich glaub mir ist grad ein Licht aufgegangen...
Werde morgen früh testen und Rückmeldung geben.
Vielen Dank schonmal!

von Pflaster ist nicht genüg bei fehlenden Grundlagen (Gast)


Lesenswert?

Alex schrieb:

> Sieht einer der Inputs einmal einen High Pegel bleibt der Ausgang low.
Hört sich nach Schaltungsmurks an, da fehlen Pulls und dem TO die 
Grundlagen in Sachen Beschaltung digitaler Eingänge:

https://www.electronics-tutorials.ws/de/logische/pullup-widerstaende.html
https://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen


Eine Eingangsstufe braucht halt mehr als eine dumme 
Leitungsunterbrechung.

von Alex (johnrambo86)


Lesenswert?

Hallo nochmal,
also es funktioniert jetzt soweit.
Problem waren natürlich die Eingänge die in der Luft hingen und dann 
ihren Zustand behalten hatten (für immer und Ewig durch diese Pin-Keeper 
Option?)

Ich komme aus der Automatisierungs Welt (Siemens SPSen) und da ist man 
es gewohnt dass Spannung am Eingang = logisch 1 und keine Spannung 
logisch 0 heißt. Mit "nackten" Controllern wo man sich um Pull Up/Down 
kümmern muss hatte ich bisher wenig Berührungspunkte.
Danke für den Denkanstoß.


Habe jetzt meinen eigentlichen Code reingeladen und der tut eigentlich, 
nachdem ich gemerkt habe dass man dem Kollegen einen externen Takt 
einspeisen muss??
Zumindest funktioniert es so. Hat der CPLD keinen internen Takt den man 
verwenden kann?

Nochmal Danke im vorraus.

von Falk B. (falk)


Lesenswert?

Alex schrieb:
> Zumindest funktioniert es so. Hat der CPLD keinen internen Takt den man
> verwenden kann?

Nö, das hat praktisch kein älteres CPLD oder FPGA. Ok, die gaaaanz 
modernen FPGAs vielleicht.

von Pflaster ist nicht genüg bei fehlenden Grundlagen (Gast)


Lesenswert?

Da Datenblatt: 
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-0950-CPLD-ATF1504AS(L)-Datasheet.pdf

Das mit dem "internenen Takt" ist nicht trivial, weil Takt ohnehin nicht 
trivial ist.

Falls ein CPLD/FPGA Flipflop mit CLK-Eingang hat (praktisches jedes) 
dann hat der CPLD auch ein dediziertes taktnetzwerk und -eingangspin und 
oft (FPGA) auch eine Taktaufbereitung (PLL, Synthesizer). Aber 
eigentlich nie hat es einen Takt-generator an Board, weil die interenen 
taktgeneratoren kaum Frequenzstabil sind.

--
Viele FPGA's haben inzwischen interne Pulls die mit einem IO-Constraint 
aktiviert werden können, falls die externe Schaltung unbedingt "floaten" 
lassen will. Deiner kann nur floaten (Datasheet p.7).

von Alex (johnrambo86)


Lesenswert?

Ok damit wäre für mich erstmal alles geklärt.
Vielen Dank für die Hilfe an alle!

von Alex (johnrambo86)


Lesenswert?

Hallo zusammen,
ich hätte doch noch ein paar Fragen zu dem Thema:

- Ist es möglich ein SR FlipFlop (ohne clock) zu programmieren?
Im Datenblatt steht auf jeden Fall was von SR Type FlipFlop und ich habe 
in der Hilfe von WinCupl auch die passenden Extensions gefunden:
1
.R  R input of SR-type output flip-flop
2
.S  S input of SR-type output flip-flop

Der Compiler läuft auch durch aber mit dem Hinweis:
1
unknown extension encountered: s

was mache ich falsch?
Momentan arbeite ich mit D-FlipFlops, aber wenn ich mir den externen 
Takt sparen könnte wär ich ganz froh.

Nächste Frage:
ist es möglich Signalzustände remanent zu speichern?


Vielen Dank schonmal!

von Bernd G. (Firma: Bannerträger des Fortschritts) (berndg)


Lesenswert?

Alex schrieb:
> Momentan arbeite ich mit D-FlipFlops, aber wenn ich mir den externen
> Takt sparen könnte wär ich ganz froh.

Lass das Gemurkse, das geht zwar manchmal bei einigen Schaltkreisen, ist 
aber schlechter Stil.

> ist es möglich Signalzustände remanent zu speichern?
Was meinst du damit? Wenn der Strom weg ist, wird es dunkel im 
Schaltkreis und er bekommt eine Amnesie.

von Alex (johnrambo86)


Lesenswert?

Bernd G. schrieb:
> Lass das Gemurkse, das geht zwar manchmal bei einigen Schaltkreisen, ist
> aber schlechter Stil.

Ok, wenn das so ist lass ich es. Hätte mich nur interressiert warum es 
nicht geht obwohl die Programmiersoftware die Möglichkeit bietet.
Komme wie gesagt aus der SPS Welt, da gibt es ausschließlich SR 
FlipFlops.

Bernd G. schrieb:
> Was meinst du damit? Wenn der Strom weg ist, wird es dunkel im
> Schaltkreis und er bekommt eine Amnesie.

Bei SPSen gibt es sowas, hätte ja sein können dass der CPLD Flash 
Speicher oder sowas in der Art hat, wenigstens für eine Hand voll Bits.
Sorry bin wohl verseucht von den Dingern.

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

Auf Seite 23 sind RS-Flipflops beschrieben. Seltsamerweise muss man dazu 
ein D-FF oder T-FF definieren, die haben eigentlich einen Takteingang.

Ich habe den ATF1508 mit WinCupl programmiert, allerdings war das nur 
von einem Kollegen übernommen, ich habe daran nur kleine Änderungen 
vorgenommen. Der hat aber soweit ich weiß keine RS-FF benutzt.

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


Lesenswert?

Alex schrieb:

> - Ist es möglich ein SR FlipFlop (ohne clock) zu programmieren?
> Im Datenblatt steht auf jeden Fall was von SR Type FlipFlop und ich habe
> in der Hilfe von WinCupl auch die passenden Extensions gefunden:

In der "guten, alten Zeit" als ich noch mit GALs bastelte, habe ich mir 
einfache "kombinatorische Flip-Flops" gebaut, indem ich den Ausgang 
einer Macrozelle, mit einem oder mehreren Rücksetzsignal verUNDdet, auf 
deren Eingang zurückführte, also auf einen der 7 oder 8 verODERten 
UND-Terme (disjunktive Normalform). Über die restlichen UND-Terme 
konnten dann die unterschiedlichen Setzsignale erzeugt werden.

Die Schaltungen haben stets einwandfrei funktioniert, auch wenn sich 
manch pingeliger Logikcompiler über eine angeblich unzulässige 
Rückführung eines Ausgangs auf sich selbst beschwerte (m.M. wäre eine 
Warnung nur dann angebracht, wenn ich das invertierte Ausgangssignal 
genutzt hätte).

Grüßle,
Volker

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


Lesenswert?

Volker B. schrieb:

Nachtrag: Hier ein einfaches Beispiel für ein "kombinatiorisches 
Flip-Flop"  in der Syntax meines GAL-Assemblers:
1
FF = /Reset * Set
2
   | /Reset * FF
3
;

Grüßle,
Volker

von Duke Scarring (Gast)


Lesenswert?

Alex schrieb:
> Komme wie gesagt aus der SPS Welt, da gibt es ausschließlich SR
> FlipFlops.
Ich kann mir nicht vorstellen, das es da echte SR-FF gibt (74LS118). Was 
ich mir gut vorstellen kann: das die von der SPS-Software emuliert 
werden...

Duke

von MCUA (Gast)


Lesenswert?

>Ich kann mir nicht vorstellen, das es da echte SR-FF gibt (74LS118). Was
>ich mir gut vorstellen kann: das die von der SPS-Software emuliert
>werden...
Das geht alles nur über Software und ist extrem langsam.

von Alex (johnrambo86)


Lesenswert?

MCUA schrieb:
> Das geht alles nur über Software und ist extrem langsam.

Das ist der Grund warum wir das erste mal was anderes als eine SPS 
einsetzen (müssen) (-;
Geht im Prinzip nur um eine schnelle Abschaltung bevor es zu Material 
Schäden kommt.

Werde dann wohl bei den D-FlipFlops bleiben, es funktioniert ja so...
Vielen Dank an alle!

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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.

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