Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Flohmarkt » [Hilfe!] 2708 auslesen » Themenansicht

Autor Thread - Seiten: -1-
000
03.01.2016, 10:15 Uhr
hjs



Hallo Leute,

Anfang der Achtziger hatte ich einen DCF-Empfänger gebastelt.
Den habe ich jetzt mal ausgegraben und er funktioniert. Nun möchte ich weitere
Nachforschungen anstellen, aber leider steckt dort ein S555 drin und mein EPROP
kann keine 5N.
Wäre schön, wenn mir jemand den Inhalt dieses einzigen Exemplars retten würde.

MfG
hjs
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
03.01.2016, 10:24 Uhr
Buebchen



@hjs
Hallo!
Kannst Du mir schicken, ich lese ihn aus und schicke ihn Dir sofort wieder zurück.
Wolfgang
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
03.01.2016, 10:37 Uhr
Buebchen



Besteht denn Interesse an einem Ausleseadapter für den 2708/U555?
Dann würde ich Leiterplatten produzieren lassen.
Ich habe auch noch einige Leiterplatten für den Buebchenbrenner der ebenfalls den 2708/U555 auslesen und brennen kann.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
03.01.2016, 11:34 Uhr
hjs



Danke für Dein Angebot.
Leider habe ich nichts, wo ich Deinen Brenner anschließen könnte; Hier ist der
ISA-Slot das Älteste. Allerdings ist dieser 2708 die einzigste Anwendung in meiner
gesamten Wirtschaft. Wenn da Probleme kommen, dann würde ich notfalls einige
Leiterbahnen umarbeiten und einen 2716 einsetzen. Aber ich möchte mir kein
neues Programm aus den Fingern saugen müssen.
Den S555 werde ich eintüten und zu Dir schicken.

Schönen Sonntag noch.
hjs
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
03.01.2016, 13:07 Uhr
Buebchen



Hallo!
Ich wurde per PN gefragt ob es schon einen Schaltplan für den 2708/U555 Adapter gibt. Das muss ich verneinen. Ich habe einen kommerziellen Adapter von der Firma Elnec, den ich aber nicht nachbauen würde, da er nur mit drei speziellen Brennern betrieben werden kann. Ich habe ein Konzept für einen universell einsetzbaren Adapter ausgearbeitet, der auf jedem Brenner der auch den 2716 brennen kann eingesetzt werden kann. Es wird allerdings ein 12V Steckernetzteil benötigt, da viele moderne Brenner die nötigen Ströme nicht mehr liefern können. Das betrifft vor allen Dingen die nur über USB betriebenen. Sollten sich einige Interessenten finden lege ich eine Kleinserie an Leiterplatten auf.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
03.01.2016, 13:30 Uhr
holm

Avatar von holm

...mach doch lieber ne Kleinserie 2708-Programmer...
Ich habe Sowas mit nem Atmel, wird aus einem Steckernetzteil gespeist und über ne RS232 betrieben, Up/Download als Intel Hex File. Die Software kannst Du haben..
die 26V werden aus 2 5 zu +-12V DC/DC Wandlern erzeugt die ich mal aus der Bucht gezogen habe.
Nen Schaltplan gibts freilich nicht so richtig, da müßte ich nochmal reingucken...


Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
03.01.2016, 13:42 Uhr
Buebchen



@Holm
Hallo!
Dein Vorschlag finde ich Gut! Danke!
Ich will aber erst mal abwarten wie das die Mehrheit sieht.
Welcher Atmel wird dafür benötigt? Ist damit eventuell auch ein Betrieb über einen USB-Seriell Wandler möglich?
Die Versorgungsspannungserzeugung sollte nicht das Problem sein. Die Impulserzeugung würde ich vom Buebchenbrenner übernehmen. Die kann auch den Strom für die störrischsten Eproms liefern.
Wolfgang
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
03.01.2016, 14:13 Uhr
maleuma



Hallo Buebchen,

ich finde Deine Idee aus 002 bzw. 004 gut.
Falls der Adapter auch am M030 des KC85 nutzbar wäre, würde ich mich sogar beteiligen.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
03.01.2016, 14:19 Uhr
Buebchen



@maleuma
Hallo Mario!
Der Adapter wäre sicher auch auf dem M030 einsetzbar, da er ja an allen Eprommern, die den 2716 brennen können einsetzbar sein wird.
Im Kopf habe ich ihn schon längere Zeit fertig. Die genauen Unterlagen erarbeite ich gerade. Es wird nicht besonders aufwendig und kompliziert.
Vieleicht lässt sich ja der Vorschlag von Holm und meiner kombinieren. Dazu brauche ich aber mehr Input.
Wolfgang
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
03.01.2016, 14:28 Uhr
maleuma



Na dann bin ich schon gespannt auf den Schaltplan...
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
03.01.2016, 15:53 Uhr
Buebchen



@maleuma
Hallo Mario!
Ich mache erst mal einen Schaltplan der einen groben Überblick erlaubt. Obwohl Du sicher gleich siehst worum es geht da ich die Funktionsblöcke entsprechend beschriftet habe.
Ich denke bis Morgen bin ich fertig und schicke Dir dann die Unterlagen per Mailanhang.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
03.01.2016, 15:58 Uhr
holm

Avatar von holm

Als Atmel habe ich da glaube ich einen Atmega16 oder 32 drin......atmega32 steht im Makefile.

Ein USB zu RS232 Adapter sollte normalerweise funktionieren, es gibt da eigentlich nichts Zeitkritisches und
ich benutze normalerweise auch RTS/CTS zur Flußkontrolle.
Der Prommer progammiert und liest nur 2708/U555 weil ich für andere Proms "ausreichend" Epromer habe und bisher hatte ich damit keine Probleme, was damit nicht geht ist kaputt.

Das User Interface ist recht einfach:


Quellcode:

void usage(void){
        printf("List of Commands:\r\n");
        printf(" [Aa]: Ascii Dump EPROM\r\n");
        printf(" [Cc]: CRC Check EPROM\r\n");
        printf(" [Dd]: Read EPROM to Buffer\r\n");
        printf(" [Ee]: Erase EPROM Buffer\r\n");
        printf(" [Ii]: Intel Hex Dump EPROM\r\n");
        printf(" [Mm]: Misc Dump EPROM\r\n");
        printf(" [Oo]: Program EPROM from Buffer\r\n");
        printf(" [Pp]: Program EPROM (send ihex file)\r\n");
        printf(" [Xx]: Hex Dump EPROM\r\n");
        printf(" [Ll]: Load Buffer (send ihex file)\r\n");
        printf(" [Rr]: Read Buffer\r\n");
        printf(" [Ww]: Who?\r\n");
}



..und sollte von einem A5120 genauso bedienbar sein wie von einem C64 oder Windows Rechner, mit meinem FreeBSD gehts sowieso :-)

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 03.01.2016 um 15:59 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
03.01.2016, 16:04 Uhr
Buebchen



Hallo Holm!
Würdest Du mir Deinen Adapter leihen, damit ich die Schaltung aufnehmen kann?
Dann versuche ich Deine und meine Schaltung zu verheiraten und mache Leiterplatten dafür.
Deinen Brenner schicke ich Dir schnell zurück. So aufwendig sollte er ja nicht sein, da ich die Spannungserzeugung sowieso selber entwickeln möchte.
Dann könnte ich gleich den Atmel auslesen und hätte keine Probleme mit den Fuses.
Alles Gute!
Wolfgang
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
03.01.2016, 16:26 Uhr
millenniumpilot



Hallo Holm,

ist das so etwas in der Art wie der s-huehn-Brenner?

http://s-huehn.de/elektronik/epromprog/epromprog.htm

den will ich aktuell gerade aufbauen. Würde aber, wenn Leiterplatten angefertigt werden, auch gern auf einen "Buebchen/Holm-Brenner" warten ;-)

Gruß Dirk

edit:lese gerade, Deiner kann keine 2716 mit 25V. Dann wird es doch bei mir beim Hühn bleiben müssen.

Dieser Beitrag wurde am 03.01.2016 um 16:28 Uhr von millenniumpilot editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
03.01.2016, 16:35 Uhr
holm

Avatar von holm

Hmm...das wird gar nicht nötig sein, guck mal:


Quellcode:

// Definition of serial Interface Parameters

#define BAUD    9600                    // sending at 9600 Baud
#define BITS    8                       // 7 or 8
#define PARITY  'N'                     // N or E or O
#define STOPB   1                       // 1 or 2
#define RTSCTS 1
#define NONE 0
#define FLOW    RTSCTS                  // RTSCTS or NONE

#define TxBufferSize    32
#define RxBufferSize    32
#define RecordBufSize   255


#define REL5N           PC0
#define R5N_ON          PORTC|=_BV(REL5N)
#define R5N_OFF         PORTC&=~_BV(REL5N)

#define REL5P           PC1
#define R5P_ON          PORTC|=_BV(REL5P)
#define R5P_OFF         PORTC&=~_BV(REL5P)

#define REL12P          PC6
#define R12P_ON         PORTC|=_BV(REL12P)
#define R12P_OFF        PORTC&=~_BV(REL12P)

#define REL26P          PC7
#define R26P_ON         PORTC|=_BV(REL26P)
#define R26P_OFF        PORTC&=~_BV(REL26P)

#define RXD                     PD0
#define TXD                     PD1
#define RTS                     PD2
#define CTS                     PD3
#define LEDG            PD4
#define PROGP           PD5

#define LED_G_OFF       PORTD|=_BV(LEDG)
#define LED_G_ON        PORTD&=~_BV(LEDG)

#define PROGP_ON        PORTD&=~_BV(PROGP)
#define PROGP_OFF       PORTD|=_BV(PROGP)

#define RTS_OFF         PORTD|=_BV(RTS)
#define RTS_ON          PORTD&=~_BV(RTS)


#define A9                      PD7
#define A8                      PD6
#define A7                      PA7
#define A6                      PA6
#define A5                      PA5
#define A4                      PA4
#define A3                      PA3
#define A2                      PA2
#define A1                      PA1
#define A0                      PA0

#define TICKRATE 200L           // Timertick 200Hz
volatile struct
{
  uint8_t tmr0_int: 1;
  uint8_t rx0_chars: 1;
  uint8_t rx1_chars: 1;
  uint8_t timeout: 1;
  uint8_t updated: 1;
} intbits;




..damit ist klar was womit verbunden ist. Die Relais sind IMHO kleine Dil Relais von Großbreitenbach, die hat mir 1987 ein "Mitsoldat" bei der Asche mitgebracht der da arbeitete. Die Daten sind an Port B geklemmt. Wenn Du die "Treiber" selber machen willst brauchst Du gar keinen Schaltplan.
Das benutze Quarz ist 9,832Mhz.

Die Fuses habe ich interessanter Weise diesmal nicht im Makefile eingetragen wie sonst immer, die kann ich aber auslesen aber auch reverse engeneeren, das ist eigentlich keine Raketentechnik. Ich habe mich genau ein Mal verfused, weil der Programmierstecker im Eimer war... egal. Ich kann Dir aber auch einen pogrammierten Atmega32 schenken und aus den Quellen mache ich auch kein Geheimnis und lade die bei Interesse auf meinen Webserver hoch.

Das Reverse Engeneering Deinerseits würde häßlich werden da das Ding auf eine Universalplatine gequetscht und mit CUL verdrahtet im Gehäuse der Programmierfassung eines K0420 wohnt. Da paßt nicht mal mehr die Din9 Buchse mit rein sondern bammelt am Kabel draußen herum. Ich hatte die Fassung mit dem Gehäuse mal beim Recycler vom Schrotthaufen gelesen..mit abgekniffenem Kabel..und hab halt verwendet was herum lag. (Ich weiß das Leute hier so eine Schachtel suchen, aber ich baue doch meinem Promer nicht wieder aus)
Wenn Du das trotzdem unbedingt machen willst ..von mir aus...

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
03.01.2016, 16:42 Uhr
felge1966
Default Group and Edit


@holm,

Es wäre schön, wenn du die Quellen mit den passenden Fuses auf deinen Server ablegst.

Gruß Jörg
--
http://felgentreu.spdns.org/bilder/jacob120.gif
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
03.01.2016, 17:09 Uhr
Buebchen



@Holm
Hallo!
Nach Deinem Quelltext denke ich das ich den Anschluss hinbekomme. Ein gebrannter Atmel wäre aber sehr gut damit es keine Probleme mit den Fuses gibt. Wenn Du Den Atmel aus Deinem Brenner ausliest sollten doch die Fuses stimmen? Ich habe von Atmels allerdings keine Ahnung. Wie ist das mit der Ähnlichkeit zu Scott Falck Huen?
Die Übersichtsschaltung habe ich ziemlich fertig. Müsste allerdings noch das Zusammenspiel mit dem Atmel überprüfen.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
03.01.2016, 17:20 Uhr
holm

Avatar von holm

>Wie ist das mit der Ähnlichkeit zu Scott Falck Huen?

ähh...ich glaube nicht das ich dem ähnlich sehe, wer zum Teufel ist das?


>Es wäre schön, wenn du die Quellen mit den passenden Fuses auf deinen Server ablegst.

Mache ich Felge. Ich bastele gerade an einem PG-1, da sind noch Glühprozessoren drin.
Wenn ich nachher wieder "oben" bin, lade ich das Zeuch hoch.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
03.01.2016, 17:28 Uhr
ambrosius



@013
Hallo Dirk,
der Huehn-Brenner kann aber nach der Beschreibung keine 2708 brennen, was ja der eigentliche Zweck von Holm und Buebchen sein soll.
--
viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
03.01.2016, 17:38 Uhr
millenniumpilot



stimmt, Du hast recht. Das habe ich glatt übersehen.


Nur eine dumme Idee:Aber vielleicht kann jemand, da das Prinzip des Brenners (Daten einfach per RS232 rüberschieben) wohl ähnlich ist, den Holm/Bübchen-Brenner aufbohren. Ich kann das leider nicht.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
03.01.2016, 17:46 Uhr
Buebchen



Hallo!
Mir ist gerade noch eine kleine Widrigkeit bei der Entwicklung eines Adapters aufgefallen. Der 2708/U555 darf nur mit 1msec Programierspannung gebrannt werden. Da der 2716 auch mit 50msec Impulsen gebrannt werden kann muss ich eine Schaltung einbauen die einen Programierimpuls mit maximal 1msec erzeugt auch wenn beim 2716 mit 50msec gebrannt wird weil kein kürzerer Impuls zur verfügung steht. Da muss ich mich noch informieren. Ich will ja nicht das das Handling mit der Software kollidiert weil für sie nichts passiert. Beim M030 wird es keine Schwierigkeiten geben. Bei modernen Brennern mit intelligentem Algorithmus ebenfalls nicht. Aber es gibt auch welche die nur 50msec können.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
03.01.2016, 17:53 Uhr
holm

Avatar von holm

..mit dem aufbohren ist das so eine Sache, der Atmega32 sitzt deshalb im Promer weil er 2Kbyte internes RAM hat, ein paar Zellen braucht das Programm für sich selbst und 1Kbyte ist der Puffer für de Eprom Daten.
Wenn Du das Ding aufbohren willst auf größere Proms, brauchst Du auch mehr Speicher für den Puffer ansonsten mußt Du den Eprom irgendwie Schluckweise programmieren... haarig.

Des Weiteren braucht der 2708 einige unübliche Spannungen die andere Proms nicht brauchen und programmierimpulse an einem Anschluß der acuh nicht gerade bei den anderen am selben Anschluß liegt.
Der Aufwand mehrer unterschiedlicher PIN Treiber explodiert dann sehr schnell.
Ich habe deswegen andere Epromer die 2716-bis können, gerne nehme ich den GALEP32 der allerdings nur unter Windows an einer Parallelen Schnitte läuft...aber das Rechnung-schreib-Notebook mit W2K ist eh immer eingeschaltet und hängt am internen Netz...

Ergo: aufbohren lohnt nicht, dafür bräuchte man ein anderes Konzept.
BTW: Ich habe mal in die Sourcen geguckt, ich räume da erst noch ein Bisschen auf. Da ist Zeug drin das gar nicht benutzt wird, das baue ich erst noch aus.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 03.01.2016 um 17:54 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
022
03.01.2016, 17:54 Uhr
felge1966
Default Group and Edit


@buebchen,

Dann kann es aber zu sehr schwach gebrannten Eproms kommen, da beim U555 zwar mit 1ms, aber auch mit 50 Durchläufen programmiert wird.
Es müsste also auch die Software angepasst werden.

Gruß Jörg
--
http://felgentreu.spdns.org/bilder/jacob120.gif
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
023
03.01.2016, 17:57 Uhr
holm

Avatar von holm

...das wird nix mit den gekürzten Impulsen, eben weil die Zyklen fehlen.
50 Zyklen ist schon knapp, Standard ist 100 wie es mein Promer auch macht.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
024
03.01.2016, 18:02 Uhr
Buebchen



@milleniumpilot
Hallo!
Ich denke wenn der Atmel den Holm verwendet hat mit meiner Hardware zusammenspielt sollte die Erweiterung auf mehr Adressen nicht das Problem sein.
Einschliesslich des 2708 sind vier verschiedene Brennalgorithmen nötig. Damit ist allerdings noch nicht die umschaltung der verschiedenen Pinfunktionen relisiert.
Ich werde mir aber auch die Hardware von Scott Falk-Hühn ansehen. Vieleicht ist es ja einfacher diese zu erweitern. Das kann ich aber mit den mir vorlieghenden Informationen noch nicht abschätzen. Nach meiner bisherigen Kenntnis kann bei Scott Falk-Hühn auf einer Programierfassung gearbeitet werden. Die Umschaltung der Pinfunktionen erfolgt über seine Atmelsoftware. Wenn der Adapter für den 2708/U555 auf die Programierfassung gesetzt werden kann und alle nötigen Impulse stehen zur Verfügung, wie bei dem Adapter für zum Beispiel den M030 könnte jeder nutzen was er möchte. Voraussetzung wäre allerdings das der Brenner von ihm 1msec Programierimpulse unterstützt.
Wenn nicht würde ich mich auf Holms Vorschlag beschränken und nur einen Betrieb des Adapters über ein Grundgerät am Pc ermöglichen um den 2708/U555 zu lesen und zu brennen.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
025
03.01.2016, 18:08 Uhr
Buebchen



@felge1966
Hallo!
Die intelligente Software, die mit 1msec arbeitet, brennt solange, bis beim auslesen des Bytes RAM und Eprominhalt übereinstimmt. Dann werden bei jeder! intelligenten 1msec Software weitere Sicherheitszyklen gebrannt. Das war schon bei der Brosigsoftware die vor 27 Jahren für den Z1013 geschrieben wurde so.
Das ist bis Heute so geblieben. Nur die Ultraschnellen mit 0,1msec haben noch weitere Bedingungen nötig.
Bei der Software die mit 50msec arbeitet wäre natürlich eine Softwareanpassung nötig. Damit würde aber der Aufwand für mich zu gross werden.
Wolfgang

Dieser Beitrag wurde am 03.01.2016 um 18:30 Uhr von Buebchen editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
026
03.01.2016, 18:46 Uhr
holm

Avatar von holm

Bübchen ich muß Dich korrigieren. Kein 2708 Datenblatt gibt irgend einen intelligenten Programmieralgorithmus her, dort ist es aus thermischen Gründen so das jede Zelle 100 mal mit maximal 1ms programmiert werden darf. Wenn ein Hersteller 50 Zyklen akzeptiert ... gut, aber die intelligenten Algorithmen machen die Zellen nicht "voll". Selbst beim 2716 ist das grenzwertig und erst bei größeren schreiben die Hersteller diese intelligenten Algorithmen vor.

Wenn also Jemand 2708 "intelligent" programmiert...dann macht er Unfug und sollte bitte nur seinen eigenen Kram damit programmieren. Wenn ich 2708 benutze dann habe ich auch so viel Zeit deren Spezifikationen einhalten zu können. Der Hinweis das das Jemand seit 27 Jahren so macht...naja .. ist das selbe wie "das haben wir schon immer so gemacht". Man kann aber auch "schon immer" was falsch machen.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 03.01.2016 um 18:47 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
027
03.01.2016, 18:54 Uhr
maleuma



Zum M030:

Die Originalsoftware macht 1ms-Impulse, jede Zelle so viele Impulse bis die Daten gültig sind. Wenn nach 50x 1ms-Programmierimpuls die Daten noch nicht stimmen, dann folgen noch bis zu 5x 50ms-Impulse hinterher.

Die neue Software würde ich dann speziell für den 2708 erweitern.
Aktuell macht sie bis zu 45 Impulse mit 1ms Impulsdauer und einen Sicherheitsimpuls mit 2ms hinterher. Es könnten dann auch 100 Impulse programmiert werden.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
028
03.01.2016, 19:12 Uhr
Buebchen



@maleuma
Hallo Mario!
Der Sicherheitsimpuls mit 2msec kann den 2708 eventuell schon zerschiessen. Ich habe eben noch einmal Deine Anleitung durchgelesen und bin ebenfalls auf diesen Punkt gestossen.
Besser wäre es wenn möglich 2x 1msec Impuls. Da kann ich aber den Aufwand nicht abschätzen. Besser, wenn auch 100x 1msec möglich, die Anzahl der programierten Impulse bis zur Gültigkeit mal 2.
Wenn Du aber einen Menüpunkt 2708 einfügst sollte das warscheinlich möglich sein wenn noch Freiraum im Steuereprom vorhanden ist. Ich kann damit leben, wenn ein Erweiterungsmodul für den 2708 nicht auf jedem Brenner funktioniert.Das würde dann wieder auf Holms Vorschlag mit trennbarem Steckmodul hinauslaufen.

Dieser Beitrag wurde am 03.01.2016 um 19:18 Uhr von Buebchen editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
029
03.01.2016, 19:25 Uhr
felge1966
Default Group and Edit


Aber bitte dran denken, dass die 1ms Impulse mit einer entsprechenden Ruhezeit verbunden sind. Dies wird durch den Durchlauf aller Speicherzellen in den meisten Programmiergeräten erreicht.

Gruß Jörg
--
http://felgentreu.spdns.org/bilder/jacob120.gif
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
030
03.01.2016, 19:36 Uhr
Buebchen



@felge1966
Hallo!
Mir ist bekannt das immer erst ein voller Adressdurchlauf mit 1msec Impulsen beim 2708 erfolgen muss ehe die gleiche Adresse einen weiteren 1msec Programierimpuls erhalten darf. Sonst kann sich die Wärme im Chip nicht verteilen und abbauen. Der Chip wird dann durch thermische Spannungen zerstört.
Ich hoffe, das Mario mitliest. Ich werde Ihm auf jeden Fall noch eine diesbezügliche Mail schicken.
Danke!
Wolfgang
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
031
03.01.2016, 21:41 Uhr
maleuma



@Buebchen & felge1966

ich lese mit

Bin schon etwas voran gekommen mit der Software:
- Der Typ 2708 lässt sich auswählen
- Impulsdauer und max. Anzahl der Programmierimpulse ist jetzt für jeden EPROM-Typ separat einstellbar, d.h. beim 2708 ist der Sicherheitsimpuls auf 1ms eingestellt.

Zitat:
Mir ist bekannt das immer erst ein voller Adressdurchlauf mit 1msec Impulsen beim 2708 erfolgen muss ehe die gleiche Adresse einen weiteren 1msec Programierimpuls erhalten darf.


Heißt das, der 2708 darf nur im Blockmodus programmiert werden?
Muss dann bei der Programmierung von weniger als 1K eine entsprechende zusätzliche Pause eingebaut werden?
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
032
03.01.2016, 22:45 Uhr
paulotto



ja, mußt du so machen mit der Pause. Nur ein Byte zu programmieren dauert deshalb solange wie den ganzen EPROM zu beschreiben...

Gruß,

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
033
04.01.2016, 20:51 Uhr
maleuma



Danke, dann werde ich das so machen.

Ich kann mich aber an einen Artikel in einer rfe oder mp erinnern (so ca. 1987?). In dem ging es um intelligente Programmieralgorithmen. Ich wollte dort noch einmal nachlesen, ob das auch für die 1K-EPROM's zutraf oder erst für die moderneren Typen ab 2716. Leider finde ich diesen Artikel im Moment nicht mehr.

Kann da eventuell jemand helfen?
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
034
04.01.2016, 22:00 Uhr
Buebchen



Hallo Mario!
Irgendwo existieren Beschreibungen zu der Software des Epromhandlers 2.9 für den Z1013 Brenner von Reiner Brosig.
Eventuell auf der Homepage von Volker Pohlers. Dort sind verschiedene intelligente Programieralgorithmen beschrieben. Sie sind aber alle ähnlich und unterscheiden sich im Prinzip kaum. Die Hauptsache ist die Impulsbreite des Programierimpulses von 0,1-1msec. Und die Wiederholung mit Sicherheitszyklen wenn die Daten beim Vergleich legitim sind.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
035
05.01.2016, 07:34 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

falls das hilft, siehe
http://hc-ddr.hucki.net/wiki/doku.php/z1013:software:eprommer
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
036
05.01.2016, 08:48 Uhr
Buebchen



@VolkerP
Hallo Volker!
Ich habe die Beschreibung die ich meinte doch gefunden und Mario geschickt.
Ich werde sie Dir auch als Mailanhang schicken. Sie wird leicht übersehen weil sie nicht von Reiner Brosig sondern von Dr.U.Hinz geschrieben wurde. Allerdings soweit ich weiss in Absprache mit Reiner Brosig. Es sind zehn sehr informative Seiten.
Wolfgang
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
037
05.01.2016, 10:49 Uhr
holm

Avatar von holm

Die Quellen für meinen Promer liegen unter http://www.tiffe.de/Robotron/misc/prog2708-f.tar .

Die notwendigen Fuse Bytes sind LF 0x1e, HF 0xd9

...oder für AVRdude -U lfuse:w:0x1e:m -U hfuse:w:0xd9:m

Bitte beachten: Beim Makefile handelt es sich um ein Makefile für BSD Make, nicht die Gnu Make Version,
da muß man als Linuxer sicher was ändern. Als Dosenfreak muß man natürlich ein AVR Projekt anlegen und die Sourcen und Headerfiles hinzufügen. avr-libc ist erforderlich und F_CPU=9832000L sollten beim Compilieren definiert sein, sonst macht der UART Käse.

Quellcode:

$ make clean
rm -f *~ *.out *.bin *.hex *.srec *.s *.o
$ make
avr-gcc -Os -Wall -mmcu=atmega32 -Wa,-alhn=main.s -DF_CPU=9832000L -c main.c -o main.o
avr-gcc -Os -Wall -mmcu=atmega32 -Wa,-alhn=uart.s -DF_CPU=9832000L -c uart.c -o uart.o
avr-gcc -Os -Wall -mmcu=atmega32 -Wa,-alhn=main.s -DF_CPU=9832000L  -o main.out main.o uart.o
avr-size -x main.out
   text    data     bss     dec     hex filename
0x12b8   0x1fe   0x156    5644    160c main.out
avr-objcopy -O ihex main.out main.hex
$



Ich freue mich freilich über Erweiterungen/Verbesserungen, ein Leertest könnte beispielsweise noch nachgerüstet werden (ist easy), mir hat aber bisher gereicht nach der CRC zu gucken bzw. den Inhalt zu dumpen, bei nur 1k ist das noch recht übersichtlich...

Auf Zeile 467 in main.c sind 100 Programmierzyklen a 1ms fest vereinbart, wers nicht lassen kann sollte das dort auf 50 runter drehen.

Das Programm ist keine Raketentechnik und nicht irgendwie optimal, ich wollte simpel 2708 programmieren können und das ohne Kopfstände...
Wer mit den Definitionen in den Header Files nicht klar kommt um daraus einen Schaltplan zu ermitteln soll sich bitte noch mal melden. Wie schon erwähnt arbeiten bei mir 2 Stück kleine DC/DC Wandler (VA12-12) um +36 und -12V aus den 5V Speisespannung zu erzeugen, ein µA723 macht IMHO aus den 36V die notwendigen 26V und wird direkt vom Prozessor über PD5 ein- und ausgeschaltet (siehe www.ti.com/lit/ds/symlink/lm723.pdf Seite 13). Es existieren kleine Relais für -5V(PC0), +5V(PC1), +12V(PC6) und +26V(PC7) über die alle Spannungen die zur Fassung gehen abgeschaltet werden können, Treibertransistoren sind entsprechend vorzusehen .. oder man nimmt einen ULN2003 dafür)
ansonsten gibts noch ne grüne LED an PD4 und eine Rote die bei eingeschaltetem Programmierimpuls leuchtet. Ein MAX232 oder ähnlich für die Serielle, RxD PD0; TxD PD1; RTS PD2; CTS PD3.
Daten des Proms an Port B, Adressen A0-A7 an Port A, A8 und A9 an PD6/PD7.






Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 05.01.2016 um 11:25 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
038
05.01.2016, 11:18 Uhr
Buebchen



@Holm
Hallo!
Ich habe mir den Quelltext und deine Anleitung dazu gespeichert.
Vielen Dank.
Noch bin ich aber nicht so weit. Ich hoffe, da ich mit AVRs Blutiger Laie bin dann noch Fragen an Dich stellen zu können.
Wolfgang
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
039
05.01.2016, 11:29 Uhr
holm

Avatar von holm

...wenn ich bis dahin noch nicht abgekratzt bin, warum nicht?

:-)

BTW: Das mit dem µA723 stimmt wohl für diesen Promer hier nicht, das habe ich wohl bei dem für die CY7C291 eingebaut. Hier macht das offensichtlich ein ein LM317 und ein paar Transistoren...ist aber egal, die 723 Mimik funktioniert auch gut.. Die Schutzdioden/Widerstände und Cs auf der Fassungsplatine waren schon drauf, wer das wissen will sollte in der Doku zur K0420/K0422 nachforschen...

Edit: noch mal an milleniumpilot:

Ja es ist etwas wie dieser Hühn Brenner :-) allerdings halt dediziert für nur 2708.

Ich habe mindestens 4 unterschiedliche kommerzielle Brenner für allerlei Devices hier, keiner konnte 2708 aber dafür den Rest recht gut (d.h. ich weiß gar nicht ob der ALL07 2708 kann, muß mal nachsehen).
Ich wollte also einen Brenner für 2708 und Sowas hatte ich mit reiner Hardware schon vor Jahrzehnten mal gebaut (Dateneingabe über Dipschalter in einen RAM, Anzeige mit VQD30, Ablaufsteuerung mit Zählern usw..) aber Handeingabe will man sich doch heute gar nicht mehr antuen zumal das alte Gerät den Weg allen irdischen gegangen ist.

Ich entwickle Software unter Unix (FreeBSD) denn Unix war mal zur Programmentwicklung gemacht worden und hat entsprechend leistungsfähige Tools dafür, für einen kurzen Weg zum Eprom bietet sich da eine RS232 Schnittstelle an (mit Einsteckkarten ist das Alles Blödsinn wie wir heute wissen, die lassen sich nirgends mehr einstecken). Das Ergebnis ist dieses Ding, quick & dirty. Mit ein Bisschen scripting braucht man also unter Unix nur einhebeln "make all program" und eine neue Programmversion von irgend einem Z80 oder Atmel oder sonstwas-Programm wird in den Eprom gebruzelt..weniger Streß geht nicht, auch nicht mit einer Maus mit Klickibunti. Nebenbei fällt noch ab das jeder Rechner mit Serieller Schnitte das Ding bedienen kann, also auch ein KC85 oder ein C64..

Ich hatte wenig Lust einen Universalbrenner zu bauen, denn die Algorithmen für unterschiedliche Proms/CPLD/GALs oder weiß der Teufel was wollen gepflegt/erstellt werden und je mehr Devices das Ding kann um so komplexer werden die Pin Treiber...das Alles brauche ich nicht.
Ich wollte nur U555/2708 brennen und basta.

Wenn Universell dann sowas wie der GALEPIII, die haben da ein FPGA drin das sie passend über die Parallelschnittstelle laden (parallel ist auch Käse!) also wird die Hardware bei jedem IC passend umkonfiguriert. Mehr als einen GALEPIII und den 2708 promer braucht man wohl nicht, es sei denn man möchte auch 1702 oder 3,3V Eproms brennen. Für die 1702 habe ich noch das Teil vom PBT4000 herumliegen das ich auch mal an einen Atmel klemmen werde (wenn ichs brauche) 3,3V Eproms braucht kein Schwein, Rechner mit 3,3V haben internal Flash.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 05.01.2016 um 11:56 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
040
05.01.2016, 12:43 Uhr
millenniumpilot



Hallo Holm,

danke für die ausführliche Erklärung.
Für "neumodisches Zeug" habe ich einen TL866A.
Leider kann der keine 25V (für U2716/U2732)und ein weiterer Brenner muss her.
Für die U555 und Co. wäre das dann der Dritte.
Daher meine Nachfrage ob man das nicht mixen könnte. Ich kann das nicht, ich kenne meine Grenzen ;-)

Gruß Dirk
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
041
05.01.2016, 12:53 Uhr
holm

Avatar von holm

Das ginge schon, man müßte einen Atmega64 einsetzten (wegen der 2KB notwendigem Pufferpeicher), die Programmierspannungsquelle umschaltbar machen (26,25,21V) und entsprechende Pintreiber für die in Frage kommenden Pins vorsehen(Pin 21 müßte dann wahlweise -5V, 0V, 5V und 21 oder 25V liefern können, PIN 19 +12V, 0V und 5V). Das Programm ist relativ einfach zu erweitern.. dann taucht aber nach einer Viertelstunde noch Jemand auf der unbedingt Unterstüzung für den 28(C)16 braucht oder 2732 haben will.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 05.01.2016 um 12:59 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
042
12.01.2016, 19:42 Uhr
hjs



So, großer Dank ergeht an Wolfgang.
Dank ihm habe ich jetzt ein backup meiner damaligen Bemühungen.

MfG
hjs



Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
043
12.01.2016, 19:56 Uhr
maleuma



Nur mal so zur Info:

Die Software-Erweiterung für das M030 ist (fast) fertig, allerdings noch nicht getestet wegen des noch fehlenden Adapters. Ich denke, das mit den Pausenzeiten wird kaum nötig sein, weil ich zwischen den einzelnen Brennzyklen jeweils eine Runde lese um zu prüfen ob es vielleicht schon korrekt im EPROM gebrannt ist. Ansonsten werde ich mich an den Vorschlag von der Website von volkerp [siehe 035] halten: "Es werden so viele Zyklen ausgeführt bis alle Zellen fehlerfrei beschrieben sind (max. 100); daran schließen sich halb so viele Sicherheitszyklen an, wie Programmierzyklen gebraucht wurden, jedoch mindestens 15; Zellen mit Inhalt FFH werden nicht mit programmiert."

Ob das funktioniert, wird sich zeigen wenn ich einen 2708-Adapter habe.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
044
12.01.2016, 20:01 Uhr
Buebchen



Hallo!
Ich arbeite am Adapter. Damit er möglichst klein werden kann brauche ich zum layouten etwas länger. Aber ich bin guten mutes. Durch die Zusammenarbeit mit maleuma hat sich der Aufwand inzwischen weiter verringert. Wir werden sehen!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
045
12.01.2016, 20:47 Uhr
holm

Avatar von holm

@maleuma:

Kennst Du einen Hersteller der heute noch U555/2708 baut? Nein?
Du weißt also das die nicht nachwachsen. warum denkst du also willst Du potenziell Welche abschießen?
Haben wir es so eilig das wir uns als Bastler nicht mehr an die Datenblattvorgaben halten können?

grübelnd,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
046
13.01.2016, 20:43 Uhr
maleuma



Hallo Holm,

ich will die nicht abschießen!
Durch diese Methode werden maximal so viele Impulse wie im Datenblatt verwendet. Wenn der EPROM seinen Inhalt durch weniger Programmierimpulse bekommt, dann ist das eher schonender und die Schaltkreise wären öfter programmierbar.

Beim 2708 gab es noch kein intelligentes Programmieren. Da ging man noch davon aus, dass wirklich die aufsumierten 50msec pro Adresse gebraucht wurden. Erst bei den größeren EPROMs kam das ins Spiel bis man erkannte dass das bei den kleineren wie 2708 oder 2716 ebenfalls sicher funktionierte.

Mag sein, dass es dazu unterschiedliche Ansichten gibt. Aber ich werde das testen.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Flohmarkt ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek