- Dieses Thema hat 234 Antworten sowie 29 Teilnehmer und wurde zuletzt vor vor 10 Jahren, 6 Monaten von
Anonym aktualisiert.
-
AutorBeiträge
-
21. März 2015 um 21:36 Uhr #69774
Anonym
InaktivIch habe mir eine alte Impressa Ultra gekauft, die immer die Meldung bringt „Service nötig“. Stört eigentlich nicht, nervt nur ein bisschen. Nachdem ich diesen Thread gelesen, die Seite mit der Protokoll-Erklärung genossen und noch bei Github im Quellcode gestöbert habe, hat mich der Basteltrieb gepackt. Ich habe viel mit IR-Sender, USB zu RS232 und USB zu TTL-Adaptern rumprobiert, konnte der Maschine aber keine Reaktion entlocken. Schließlich habe ich auf dem Breadboard einen ATMega168 mit den nötigen Verbindungen verstöpselt, habe nach [url=http://expert-cm.ru/images/stories/shemy_tehnich/logik_impressa_500_chema.pdf]dieser Beschreibung[/url] Kabel direkt auf die entspechenen Prozessorpins des Logikprints gelötet. Dann den Arduino-Code in Bascom übersetzt und voila — die Maschine lässt sich per µC einschalten! (cheerful)
Jetzt meine Frage: Wie ist die Syntax für den Befehl „WE:“ Es muss ja noch die Speicheradresse und der Wert übergeben werden. Diese Info habe ich nirgends gefunden. Ich gehe mal davon aus, daß in Adresse 15 eine Null geschrieben werden muß, um die Service-Meldung wegzubekommen….
Hier noch der noch sehr rudimentäre aber funktionierende Bascom Code und ein Foto…
[code]‘—————————————————————————————–
‚by hochsitzcola
‚—————————————————————————————–$regfile = „m168def.dat“ ‚ specify the used micro
$crystal = 8000000 ‚ used crystal frequency
$baud = 9600 ‚ use baud rate
$hwstack = 100 ‚ default use 32 for the hardware stack
$swstack = 100 ‚ default use 10 for the SW stack
$framesize = 100 ‚ default use 40 for the frame spaceDim I As Integer
Dim B0 As Byte
Dim B1 As Byte
Dim B2 As Byte
Dim B3 As ByteDim A(7) As Byte
A(1) = &H41 ‚Hex Code für A
A(2) = &H4E ‚Hex Code für N
A(3) = &H3A ‚Hex Code für :
A(4) = &H30 ‚Hex Code für 0
A(5) = &H31 ‚Hex Code für 1
A(6) = &H0D ‚Hex Code für CR
A(7) = &H0A ‚Hex Code für LFFor I = 1 To 7
B0 = 255
B1 = 255
B2 = 255
B3 = 255B0.2 = A(i).0
B0.5 = A(i).1
B1.2 = A(i).2
B1.5 = A(i).3
B2.2 = A(i).4
B2.5 = A(i).5
B3.2 = A(i).6
B3.5 = A(i).7Printbin B0
Waitms 1
Printbin B1
Waitms 1
Printbin B2
Waitms 1
Printbin B3
Waitms 7Next I
Do
Loop
End[/code][attachment=48]IMG_20150321_205839.jpg[/attachment]
Gruß
hochsitzcola21. März 2015 um 22:52 Uhr #66363Anonym
InaktivDie Adresse wird folgendermaßen angesprochen:
Schreiben:
WE:YY,XXXX
Lesen:
RE:YYWobei YY für die Adresse im EEPROM steht und XXXX für den zu schreiben Wert.
Bei den größeren Maschinen, wie der IMPRESSA X7 (und vielen anderen „neueren“ Maschinen) sind die Adressen 00 bis FF möglich. Die möglichen Werte sind vom Adresstyp (Speicherzelle) des EEPROM abhängig.22. März 2015 um 8:02 Uhr #66367Anonym
InaktivBei der JuraXS9 wird die Adresse sogar mit 2 Byte angegeben:
WE:YYYY,XXXX
RE:YYYYDer EEPROM Bereich geht hier aber max bis zur Adresse 03FF. Fragt man Adresse 0400 an, wird der gleiche Wert wie bei Adresse 0 ausgegeben. Es werden aso nur 10 Bit zur Adressierung benutzt, danach gibt es nen Überlauf.
Hier schon mal die Speicherbereiche, bei denen keine 0 Zurückgegeben wird:
0000 >> << 00F0 0180 >> << 0180 01A0 >> << 01F0 Leider hab ich bisher noch nicht herausgefunden, wie der Befehl RR: benutzt wird. Ich vermute, dass man damit an sich den Ram auslesen kann. Die XS9 antwortet aber nicht auf diese Anfragen...
22. März 2015 um 13:42 Uhr #69779Anonym
InaktivHm, danke für die Tipps. Ich habe jetzt versucht zu Lesen, es kommt aber immer nur eins zu eins der gesendete Befehl zurück. Das war schon beim Einschalten so, da dachte ich das gehört so, da ja die Maschine angegangen ist.
Ich habe die verschiedensten Kombinationen ausprobiert, aber keine hat geklappt (what)
A(1) = &H52 ‚Hex Code für R
A(2) = &H45 ‚Hex Code für E
A(3) = &H3A ‚Hex Code für :
A(4) = &H31 ‚Hex Code für 1
A(5) = &H35 ‚Hex Code für 5
A(6) = &H0D ‚Hex Code für CR
A(7) = &H0A ‚Hex Code für LFoder
A(1) = &H52 ‚Hex Code für R
A(2) = &H45 ‚Hex Code für E
A(3) = &H3A ‚Hex Code für :
A(4) = &H30 ‚Hex Code für 0
A(5) = &H30 ‚Hex Code für 0
A(6) = &H31 ‚Hex Code für 1
A(7) = &H35 ‚Hex Code für 5
A(8) = &H0D ‚Hex Code für CR
A(9) = &H0A ‚Hex Code für LFHat jemand eine Idee was ich falsch mache?
Schreiben hat funktioniert, ich habe die Luft angehalten und WE:15,0001 gesendet, da war die Service-Meldung nach einmal aus- und einschalten weg! (biggrin)
Gruß
hochsitzcola22. März 2015 um 20:38 Uhr #66368Anonym
InaktivAlso wenn immer 1:1 das zurück kommt, was du sendest (auch wenn du totalen Quatsch hinschickst), dann würde ich den Fehler irgendwo bei deinem Aufbau suchen. Also besteht da z.B. ein Kurzschluss zwischen RX und TX usw…
Die Maschine sendet an sich nur was zurück, wenn sie den Befehl kennt. Empfängst du auch was, wenn die Jura gar nicht mit Strom versorgt ist?
23. März 2015 um 8:12 Uhr #66369Anonym
InaktivWenn die Maschine aus ist (Stecker raus), kommt auch keine Antwort. Den Aufbau habe ich schon zig-mal geprüft und keinen Fehler gefunden….
Gruß
hochsitzcola23. März 2015 um 19:32 Uhr #66370Anonym
InaktivWas verstehst Du unter aus?
Wenn nicht der Netzstecker gezogen ist oder der Netzschalter (NICHT der Stand-By Schalter an der Front!!!) aus geschaltet wurde, antwortet die Machine IMMER. In JEDEM Fall. Du kannst sie ja auch über die Serielle Schnittstelle aufwecken!23. März 2015 um 20:05 Uhr #66371Anonym
InaktivIch kann mich den bisherigen Hinweisen nur anschließen! @hochsitzkola Da ist irgendwas faul. Die Maschine antwortet dann, wenn sie einen Befehl erkennt. Also wenn AN:01 ankommt, dann geht die Maschine an (wacht aus dem Standby auf) und antwortet entsprechend. Wenn die Maschine nichts versteht, dann kommt auch nichts zurück.
Warum überhaupt direkt auf dem Logikprint? Und warum da nicht einfach an die entsprechende serielle Schnittstelle / Service port? Oder anders gefragt: Hast du mal darüber probiert, ob dir die Maschine dann antwortet und entsprechend an oder aus geht etc?23. März 2015 um 20:12 Uhr #66374Anonym
InaktivHi Oliver,
ich habe mal eine prinzipielle Verständnisfrage: Sollten der Befehl RE:00 mit jeder Jura Maschine (in meinem Fall C5) funktionieren?
Und dann noch eine Frage zu deinem Tool coffeemaker-communication-tool.ino: Sollte man nicht den gesendeten Befehl zurückbekommen, wenn man RX und TX am Arduino (MEGA2560) miteinander verbindet?23. März 2015 um 20:15 Uhr #66375Anonym
Inaktiv@bimmel: Ich persönlich kenne nur meine Jura Impressa S95, aber ich denke ja, da sollte eigentlich jede Maschine drauf antworten.
Beschreib mir bitte mal genauer, wie du RX und TX verkabelt hast. Du hast doch nicht etwa den RX vom Mega an den TX vom Mega angeschlossen? ^^23. März 2015 um 20:21 Uhr #66376Anonym
InaktivZumindest sollte da jede Maschine mit TOPtronic Steuerung drauf antworten.
Ob es allerdings bei den GIGAs auch so ist, weiß ich nicht, die haben ja schon einige andere Komponenten. Da habe ich noch nie eine Steuerung von gesehen.23. März 2015 um 20:24 Uhr #66377Anonym
InaktivJa, ich habe mich oben missverständlich ausgedrückt, weil wir bereits von einer Jura Impressa Ultra gesprochen haben. Ich meinte also alle Jura-Maschinen. @mathias
23. März 2015 um 20:24 Uhr #66378Anonym
InaktivNein, ich habe einfach Rx und Tx mit einem jumperwire kurzgeschlossen. Das sollte doch klappen oder?
23. März 2015 um 20:28 Uhr #66379Anonym
InaktivAuch andere von EUGSTER/FRISMAG gebaute Maschinen verwenden deren Steuerungen.
SIEMENS, KRUPS, BOSCH, FRANKE, BREMER und diverse andere. Aber: nicht alle Maschinen der vorgenannten Hersteller sind von EUGSTER/FRISMAG und nicht alle EUGSTER/FRISMAG Maschinen verwenden TOPtronic Steuerungen.23. März 2015 um 20:30 Uhr #66380Anonym
InaktivNein, dann kriegst du nur dein Echo 😉 Du musst RX vom Arduino mit TX von der Maschine verbinden und umgekehrt.
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.
