target nanoSPEC

Begonnen von wrdmstr inc., 03. Juli 2023, 10:58

⏪ vorheriges - nächstes ⏩

marvin

Interessant ist hier nur der nanoSpec selbst.

Die Batterie ist wohl leer und damit ist das Teil erstmal ein Briefbeschwerer. Ich hab vor kurzem auch einen nanoSpec bekommen, und war auf der Suche nach Informationen und bin auf das Forum gestoßen.

Lt. den Informationen aus dem Datenblatt und denen aus einem anderen PDF habe ich meinen nanoSpec auslesen können. wrdmstr kann damit seinen wahrscheinlich wieder zum Leben erwecken.

Wenn ich rausfinde wie ich hier anhänge hochladen kann, werde ich alles zur verfügung stellen :)

DG0MG

Zitat von: marvin am 20. März 2024, 15:22Wenn ich rausfinde wie ich hier anhänge hochladen kann, werde ich alles zur verfügung stellen :)

Siehe https://www.geigerzaehlerforum.de/index.php?msg=17754
"Bling!": Irgendjemand Egales hat irgendetwas Egales getan! Schnell hingucken!

marvin

aaahh. Über die Vorschau! Darauf muss man erstmal kommen :D

wrdmstr inc.

Zitat von: DG0MG am 20. März 2024, 13:45Ohne ein grundlegendes Verständnis des Gerätes kann ich Deinen Ausführungen nicht folgen.

Also das Gerät besteht offenbar, wie man oben auf den Bildern sieht, aus 3 Teilen: Dem Batterieblock, der auch der Handgriff ist, dem Bedientteil mit LCD-Anzeige und dem eigentlichen Messkopf mit dem Detektor.
Das Bedienteil ist mit dem Messkopf über eine serielle Schnittstelle verbunden und statt dem Bedienteil kann man auch einen PC mit passender Software anschließen.

Soweit richtig?

Tatsächlich sagt das Datenblatt des DS5000T https://www.keil.com/dd/docs/datashts/dallas/ds5000t.pdf, dass der Programmspeicher von 8 oder 32 KByte zwar "nonvolatile" ist, aber nur eine Speicherdauer von ~10 Jahren vorsieht.

mit ebenfalls im Datenblatt beschriebenen Befehlen über die serielle Schnittstelle kann man den "RAM" (also den Programmspeicher) lesen und beschreiben (Seite 6):

Sie dürfen in diesem Board keine Dateianhänge sehen.

@wrdmstr inc. Es wäre mal ein Ziel, eine Antwort vom Gerät zu bekommen, wenn man mit passenden Einstellungen der seriellen Schnittstelle ein "D" sendet. Dann müsste der Bootloader den RAM-Inhalt dumpen, auch wenn alles Nullen oder zufällige Werte drinstehen.

es ist ja schonmal toll das man keine 900MB programming suite installieren muss  :))
also wenn ichs richtig verstanden habe kann der ds5000 mit dem beigelegtem seriellen kabel und eingelegten Batterien nicht kommunizieren? also muss der serial programmer mode aufgerufen werden indem man Pin RES an 5V und Pin PSEN auf 0V GLEICHZEITIG mittels @marvin transistor/widerstand hack initialisiert ? und VCC/GND bekommt er ja von den batterien (und dem on board-spannungsregler sonst hats ja 6V) und für den hack schliesst man von den VCC /GND die kabel daran an bzw von einer usb-powerbank..das rechte ende vom weissen kabel auf dem foto das du noch anhängen wirst  :D ist praktisch der umschalter zw 5v (rote kabel) und RUN

und geht dann das serielle kabel als schnittstelle oder muss ich noch rx/tx anloeten mit USB-serial dongle

achja..das beschreiben geht dann einfach so ohne startadresse/blöcke pipapo ?:

> L C:\Temp\nanospec_V662.hex

marvin

#19
Als Programm zum Ansprechen der Seriellen Schnittstelle verwende ich puTTY, andere sollten auch funktionieren.

Wenn der nanoSpec nach dem Einschalten das "Lauflicht" auf der 7-Segment anzeige macht, kann man erstmal schauen, ob etwas im Terminal ankommt. Normalerweise mit 38400 baud 8N1.

Wenn alles funktioniert sollte man folgendes sehen:

Direct COM connection

*******************************************
*            n a n o S P E C              *
*  target 1998             version 6.62   *
*******************************************

 OK:

Wenn sich garnichts tut, kann man versuchen in den Bootloadermodus zu kommen.

Zuerst mal in dem man
19200 8N1 einstellt
"DTR" anschaltet.
Enter drückt

dann sollte die bootloader nachricht erscheinen.


Nachfolgend wie man den Chip direkt in den bootloader mode bekommt (Ich wusste da noch nicht, dass es einfach über DTR geht, wie das eigentlich alle ESP32 dev boards machen.... eieiei)

Wie im Secure MC Userguide ab S.130 beschrieben.

Im Wesentlichen muss man:
- Serielle Schnittstelle auf 19200 8N1
- Einschalten
- /PSEN auf GND legen
- gleichzeitig RES auf 5V
- "Return" drücken im Terminalprogramm


Auf Seite 133 gibt es dazu einen mini Schaltplan mit 2 Widerständen une einem Transistor:

Sie dürfen in diesem Board keine Dateianhänge sehen.

Meine Umsetzung sieht so aus:

Sie dürfen in diesem Board keine Dateianhänge sehen.

Wenn alles klappt sollte man das hier zu sehen sein:

DS5000 LOADER VERSION 2.3  COPYRIGHT (C) 1988,1990 DALLAS SEMICONDUCTOR
>

Danach kann man versuchen mit "R" das Konfigurationsregister zu lesen. Der Wert 58 erscheint bei einem funktionierenden nanoSpec.

mit "W 58" kann man den wert schreiben.

Danach startet man mit "L" den Ladeprozess und läd das Programm einfach per Copy/Paste hoch. (IntelHex ist reiner ASCII Text)

Das wars auch schon!

Jetzt sollte man den Programmiermodus wieder verlassen können indem man /PSEN wieder auf 5V und RES wieder auf GND legt und den Programmiermodus mit "E" verlässt. (oder alles abbaut und das gerät einnmal aus und einschaltet)

Falls die Batterie leer ist sollte man sich allerdings zuerst darum kümmern...


Hier ist dann ein Zip mit der Firmware (Version 6.6.2), dem Datenblatt des DS5000 und dem "Secure Microcontroller User Guide" von Dallas:

Sie dürfen in diesem Board keine Dateianhänge sehen.

Nachtrag: Die eigentliche Firmware im Hex File geht nur bis Adresse 0x27FF

MCON Register 58 (hex!) = 0101 1000
0101 ==> Adresse 0x000 bis 0x2FF "Programm" und 0x2800 => Ende "Ram"
1000 ==> 32K NVRAM Größe

d.h. alles ab dem "CALI" in der Stringliste weiter unten ist aus dem RAM :D

DG0MG

Zitat von: marvin am 20. März 2024, 22:16Secure MC Userguide

Was ist das? Ein Dokument von DALLAS? Hast Du einen Link?
"Bling!": Irgendjemand Egales hat irgendetwas Egales getan! Schnell hingucken!

marvin

Als nächstes werde ich versuchen rauszubekommen wie die Kommunikation funktioniert. Aus dem was @PhilippF werde ich nicht so ganz schlau...

Ich werde wohl WinTMCA zum laufen bekommen müssen und dann selbst die Kommunikation mitschneiden.

In der Firmware des nanoSpec ist ein bisschen an Text zu sehen der zumindest mal zeigt was es so alles geben könnte

ROM ==> Eigentliches Programm
FATAL: VERY LOW POWER.

LOW POWER

 OK:  POWER GOOD

ERROR

void

Fine Gain       (fg)
Upper Level     (ul)
Trigger Level   (tl)
Lower Level     (ll)
Zero Offset     (os)
HV-DAC  [Volt]  (hv)
HV-ADC  [Volt]  (av)
Conv. Gain      (cg)
Coarse Gain x10 (ga)
Event Counter   (ec)
Event Prescaler (cp)
Battery    [mV] (bp)
Writer DAC [mV] (wr)

 OK:  IN/100  OUT     ROI
 OK: 


   Firmware correctly uploaded.

*******************************************
*            n a n o S P E C              *
*  target 1998             version 6.62   *
*******************************************

Modem initialisation failed.

No modem answer.

Direct COM connection

NVRAM:

CALI 0 20

?
help
nice
list
ff
adcs
adcd
adcon
adcoff
adcs
adcd
adcon
adcoff
adcs
adcd
adcon
adcoff
adcs
adcd
adcon
adcoff
adcs
adcd
adcon
adcoff
adcs
l
?hv
?ga
?ul
?ll
?cg
?tl
?hv

+++AT H &F1 &C &D &K E0 S0=2 S95=3 X3

Direct COM connection

*******************************************
*            n a n o S P E C              *
*  target 1998             version 6.62   *
*******************************************


 OK:



Der Block unter "CALI" bis "?hv" scheinen die Befehle zu sein.

Wenn man im Terminal einfach mal "help" oder "HELP" eintippt kommt nur "ERROR" zurück. Also gibt es noch irgendeinen Trick...

Mit den Befehlen, und der "Kommandoliste" aus WinTMCA kann man sich ggf. den gesamten Befehlssatz zusammenreimen.

Interessant wäre natürlich auch die Kommunikation mit dem nanoASSIST. Da könnte man mal alles durchprobieren und die Kommunikation zu jeder funktion auswerten. Dann sollte es zB möglich sein einen nanoAssist nachzubauen :)


Ich betreibe den nanoSpec mit 5V aus einer Powerbank direkt über den Batterieanschluss. Ich überlege ob ich einen LiPo + Ladeelektronik einbaue und den Netzteilanschluss durch eine USB-C Buchse ersetze.

marvin

Zitat von: DG0MG am 20. März 2024, 22:20Was ist das? Ein Dokument von DALLAS? Hast Du einen Link?

Viel besser. Am Ende meines Posts ist eine Zip Datei mit der Firmware und zwei PDF Dateien....

marvin

Zitat von: wrdmstr inc. am 20. März 2024, 17:31also wenn ichs richtig verstanden habe kann der ds5000 mit dem beigelegtem seriellen kabel und eingelegten Batterien nicht kommunizieren?

Doch, wenn der nanoSpec in Ordnung ist kann man kommunizieren.

Zitat von: wrdmstr inc. am 20. März 2024, 17:31also muss der serial programmer mode aufgerufen werden indem man Pin RES an 5V und Pin PSEN auf 0V GLEICHZEITIG mittels transistor/widerstand hack initialisiert?

genau

Zitat von: wrdmstr inc. am 20. März 2024, 17:31und VCC/GND bekommt er ja von den batterien (und dem on board-spannungsregler sonst hats ja 6V) und für den hack schliesst man von den VCC /GND die kabel daran an bzw von einer usb-powerbank..

Ich habe VCC und GND auch intern abgegriffen (ROT und SCHWARZ).

VCC direkt von Pin 40 des DS5000 und GND vom unteren Anschluss eines Kondensators neben Pin 1 des DS5000.

Ist etwas schlecht zu sehen auf dem Bild :)

Zitat von: wrdmstr inc. am 20. März 2024, 17:31das rechte ende vom weissen kabel auf dem foto das du noch anhängen wirst  :D ist praktisch der umschalter zw 5v (rote kabel) und RUN

genau. Steckt das weisse Kabel bei schwarz => RUN
Steckt es bei rot => Prog

Zitat von: wrdmstr inc. am 20. März 2024, 17:31und geht dann das serielle kabel als schnittstelle oder muss ich noch rx/tx anloeten mit USB-serial dongle

Das geht über die Schnittstelle am nanoSpec. Die hängt ha an RX/TX über nen MAX232 :)

Zitat von: wrdmstr inc. am 20. März 2024, 17:31achja..das beschreiben geht dann einfach so ohne startadresse/blöcke pipapo ?:

jup


Mit
W 58
das Konfigurationsbyte schreiben

dann mit
L
den "Lademodus" starten und einfach per Copy/Paste den ganzen Texte auf dem "hex" file ins Terminal schmeissen

marvin

#24
Ich habe gerade die Doku für den nanoSpec bekommen.

Wie ich mir hätte denken können, kann man sich die Löterei sparen:

Sie dürfen in diesem Board keine Dateianhänge sehen.

Man braucht nur ein Terminalprogramm mit dem man "DTR" von Hand schalten kann.

Schnittstelle auf 19200 8N1 einstellen
DTR an
Enter Drücken
Bootloader erscheint
Dinge tun
DTR aus
nanoSpec startet neu

da puTTY irgendwie immer DTR setzt hab ich mir einen zwischenstecker gebastelt bei dem ich DTR unterbrechen kann.... Ich mag halt puTTY :D

wrdmstr inc.

super, anbei die manuals, die nano. z01 .zip und nano. z02 .zip in nano.z01 und nano.z02 umbenennen, dann entpacken

marvin

Letztendlich siehts dann so aus... Das mit dem Zwischenstecker hab ich nur gemacht weil mich die Suche nach nem Terminalprogramm mit DTR Steuerung genervt hat :)

Wahrscheinlich ist es aber eine gute Idee generell nur Pins 2,3 und 5 durchzureichen, dann gibt auch keine unklaren resets, wenn ein terminalprogramm mal blödsinn macht...

Sie dürfen in diesem Board keine Dateianhänge sehen.


Tja.. mit der ganzen Dokumentation und der Firmware, ist der nanoSpec wohl erstmal "fertig erklärt" :) Cooler community effort :D

DG0MG

Nun bin ich ja gespannt, ob der @wrdmstr inc. damit das Ding wieder zum Laufen bekommt.

"Bling!": Irgendjemand Egales hat irgendetwas Egales getan! Schnell hingucken!

wrdmstr inc.

Zitat von: DG0MG am 21. März 2024, 21:51Nun bin ich ja gespannt, ob der @wrdmstr inc. damit das Ding wieder zum Laufen bekommt.



Der admin setzt mich jetzt ganz schoen unter Druck  :D

...ach erstma DB9 breakouts bestellt, auch zu faul ein terminal mit DTR switch zu suchen

DG0MG

Nee, keine Hektik. Das war ganz grundsätzlich gemeint. Weil dann hätte Deine Vorstellung eines nicht funktionierenden Gerätes einen totalen Sinn gehabt und @marvin dürfte sich gleich mehrere Bienchen anstecken.
"Bling!": Irgendjemand Egales hat irgendetwas Egales getan! Schnell hingucken!