Welcome to Schneider / Amstrad CPC Forum. Please login or sign up.

28. March 2024, 13:34:56

Login with username, password and session length

Shoutbox

TFM

2024-01-15, 17:06:57
Momentan billige Farbbänder auf Ebay für PCW

Devilmarkus

2023-07-09, 10:37:40
Zweiter 👋😂🤣

TFM

2023-06-13, 14:21:49
Sommerloch!

TFM

2023-05-30, 17:00:20
Erster ;-)

Recent

Members
Stats
  • Total Posts: 11,653
  • Total Topics: 1,328
  • Online today: 80
  • Online ever: 1,724
  • (16. January 2020, 00:18:45)
Users Online
Users: 0
Guests: 90
Total: 90

90 Guests, 0 Users

LambdaSpeak CPC Sprach-Synthesizer, Sample Player, RTC, MP3, UART Erweiterung

Started by LambdaMikel, 01. May 2017, 09:41:34

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

TFM

Quote from: LambdaMikel on 02. August 2019, 18:19:59
Genau, aber zuerst sollte es einmal bei mir funktionieren. ...

Klaro, Source ist ja im Netz, Dokumentiert ist es auch... und bei Fragen bin ich immer gerne da.  :)
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

TFM

Leider hat es wohl mit dem Firmware Update einen (neuen?!) Bug gegeben. Es äußert sich folgerdermaßen:

- Wenn ich FutureOS laufen lasse / benutze, dann friert die Oberfläche nach einiger Zeit ein.
- Drücke ich Reset am LS3, dann geht es weiter... (aber hald mit LS3 uninitialisiert).
- Drücke ich Reset am CPC, dann passiert nix (außer MODE Anderung), also ist wohl der CPC durch WAIT vom LS3 blockiert. Hier hilft ein Reset am LS3.

Was könnte los sein?
- Unter FutureOS wird ständig die LS3 RTC abgefragt, und da scheint es zu hängen.
- Wenn ich auf das LED-Display gucke, dann zeigt das Werte wie &D3, &D4, &D5, &D7, &D9.

Michael, könntest Du bitte mal in die LS3 Firmware Funktionen &D3 bis &D9 schauen, ob da manchmal WAIT gesetzt - aber nicht zurück gesetzt wird?

Es könnte sein, dass es damit zusammenhängt, dass ich kurz zuvor Funktion &F4 nutze.

Bitte um Hilfe!  :flehan: :flehan: :flehan:

TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

Hmm, also es gibt in diesem Zyklus eigentlich nur einen einzigen z80_halt, und der passiert sobald ein Byte am Datenbus ankommt. Dass Byte wird dann entweder weggepuffert fürs Sprechen, oder aber wenn es ein Kontroll-Byte ist, geht es in   process_control - dort wird es dispatched. In proces_control wird der Z80 sofort wieder freigegeben mittels z80_run, WENN non blocking confirmations an sind:





void process_control(uint8_t control_byte) {

  LEDS_ON;

  stop(); 

  if (NON_BLOCK_CONFIRMATIONS) {
    z80_run;
  }
...
}


LS3 Epson Hauptschleife:

while (1) {

TRANSMIT_OFF;
READY_ON;

speech_native_ready;
z80_run;

loop_until_bit_is_set(IOREQ_PIN, IOREQ_WRITE);

DATA_FROM_CPC(databus);

loop_until_bit_is_clear(IOREQ_PIN, IOREQ_WRITE);

z80_halt;
speech_native_busy;  // to 0...

TRANSMIT_ON;
READY_OFF;

if (databus & 0b10000000 ) {
 
  if (databus == 0xF0) {
    // do nothing for next byte! just for databus LED display
   
    loop_until_bit_is_set(IOREQ_PIN, IOREQ_WRITE_DK);
    _delay_us(3); // don't change... it works    
    DATA_FROM_CPC(databus);  
    loop_until_bit_is_clear(IOREQ_PIN, IOREQ_WRITE_DK);

  } else {

    process_control(databus);

    if (!BLOCKING)
      z80_run;

    if (CUR_MODE != LAST_MODE) {

      if (CUR_MODE == START_OVER_SAME_MODE)
CUR_MODE = LAST_MODE;
      else
LAST_MODE = CUR_MODE;
     
      break;
    }
   
  }
} else {
 
....
}


Das einzige z80_halt passiert also direkt nach Empfang eines Bytes, wird aber sofort wieder frei gegeben im Falle eines Kontroll-Bytes. Wenn allerdings die LS3 Hardware abschmiert... das ist momentan das einzige, was ich mir vorstellen kann.

Wie oft pro Sekunde sendest Du denn die Uhrzeitabfrage? Evtl. etwas moderater in der Abfrage-Frequenz, passiert es dann auch?

TFM

Ich frage die Uhr locker 50x in der Sekunde ab, aber selbst wenn ich nur einmal abfragen würde, wo wäre der Vorteil? Der Fehler tritt hald dann eventuell später auf.

Wann tritt der Fehler auf? Manchmal nach Sekunden, manchmal nach 1-2 Minuten.

Der Source von Dir sagt mir nix, das ist kein Z80, sorry. Es scheint so als ob das Z80 HALT in seltenen Fällen nicht zurückgenommen wird. Bitte einfach mal selber ausprobieren.

Eventuell hängt es mit einem Interrupt der Atmel CPU zusammen?

Das Problem hat in der Firmware zuvor ja nicht bestanden, guck mal was sich geändert hat.  :)
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

Quote from: TFM on 08. August 2019, 17:01:47
Ich frage die Uhr locker 50x in der Sekunde ab, aber selbst wenn ich nur einmal abfragen würde, wo wäre der Vorteil? Der Fehler tritt hald dann eventuell später auf.

Wann tritt der Fehler auf? Manchmal nach Sekunden, manchmal nach 1-2 Minuten.

Der Source von Dir sagt mir nix, das ist kein Z80, sorry. Es scheint so als ob das Z80 HALT in seltenen Fällen nicht zurückgenommen wird. Bitte einfach mal selber ausprobieren.

Eventuell hängt es mit einem Interrupt der Atmel CPU zusammen?

Das Problem hat in der Firmware zuvor ja nicht bestanden, guck mal was sich geändert hat.  :)

Hmm, also in der Beziehung hat sich aber nichts geaendert in der Firmware. Ist diese Version von FOS online? Dann kann ich es selbst mal laufen lassen.

Nach welcher Zeit tritt denn das auf.

Und welche Version Firmware verwendest Du nun? Slow, Medium, oder Fast Getters?

Stellst Du denn sicher, dass Du das naechste &D3..D9 Kommando erst sendest, wenn der LS3 wieder bereit ist? Diesen Fall koennte man einfach verhindern indem man die Uhr nur alle 500 ms oder so aufruft.

TFM

Quote from: LambdaMikel on 08. August 2019, 17:16:54
Quote from: TFM on 08. August 2019, 17:01:47
Ich frage die Uhr locker 50x in der Sekunde ab, aber selbst wenn ich nur einmal abfragen würde, wo wäre der Vorteil? Der Fehler tritt hald dann eventuell später auf.

Wann tritt der Fehler auf? Manchmal nach Sekunden, manchmal nach 1-2 Minuten.

Der Source von Dir sagt mir nix, das ist kein Z80, sorry. Es scheint so als ob das Z80 HALT in seltenen Fällen nicht zurückgenommen wird. Bitte einfach mal selber ausprobieren.

Eventuell hängt es mit einem Interrupt der Atmel CPU zusammen?

Das Problem hat in der Firmware zuvor ja nicht bestanden, guck mal was sich geändert hat.  :)

Hmm, also in der Beziehung hat sich aber nichts geaendert in der Firmware. Ist diese Version von FOS online? Dann kann ich es selbst mal laufen lassen.

Nach welcher Zeit tritt denn das auf.

Und welche Version Firmware verwendest Du nun? Slow, Medium, oder Fast Getters?

Stellst Du denn sicher, dass Du das naechste &D3..D9 Kommando erst sendest, wenn der LS3 wieder bereit ist? Diesen Fall koennte man einfach verhindern indem man die Uhr nur alle 500 ms oder so aufruft.

- Neueste FutureOS Version gestern online geladen, siehe Forum Thread
- Firmware: Natürlich neuestes Update v41
- Fast Getters
- Klar warte ich bis LS &20 meldet
:)
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

TFM

So habe nochmal v40 geflasht und getestet.

Das Problem mit dem Einfrieren des CPC (da hilft auch kein Reset) tritt von Firmware v40 auf v41 auf.

Einfach mal FutureOS starten, warten bis alles steht, dann auf CPC Reset drücken. Erst der Druck auf LS3 Reset hilft da.

Bitte alle mal ausprobieren, ob das Problem reproduziert werden kann.

Danke für jegliche Hilfe  :)


EDIT: Es passiert bei v40 auch, nur viel seltener und viel später...  :irre:
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

Quote from: TFM on 09. August 2019, 15:16:35
So habe nochmal v40 geflasht und getestet.

Das Problem mit dem Einfrieren des CPC (da hilft auch kein Reset) tritt von Firmware v40 auf v41 auf.

Einfach mal FutureOS starten, warten bis alles steht, dann auf CPC Reset drücken. Erst der Druck auf LS3 Reset hilft da.

Bitte alle mal ausprobieren, ob das Problem reproduziert werden kann.

Danke für jegliche Hilfe  :)


EDIT: Es passiert bei v40 auch, nur viel seltener und viel später...  :irre:

Ja ich denke das hat nichts mit v41 vs v40 zu tun... ich werde es mal laufen lassen am WE. Wie lange braucht es bis es einfriert?

Ich hatte ASMCLOCK auch sehr lange laufen lassen,und keinen solchen Effekt.

LambdaMikel

... also habe gerade FOS neuste Version runtergeladen und installiert.
Uhr läuft schon seit 15 Minuten 20 Minuten mit v47 Firmware ohne Probleme - muss jetzt zur Arbeit...

Wie lange muss ich denn warten?

Sprachausgabe ist ja witzig! Stimme ist nicht so mein Fall... sagt er da "Medium In?"

Ich hänge v47 hier noch mal an. Ich glaube aber nicht, dass sich irgendetwas geändert hat zwischen 39 bis 47 das den Effekt erklären könnte... ich lasse es mal über Nacht laufen.

Gut dass ich jetzt 3 XMem habe... da kann ich schnell mal was testen und wechseln.

Meine Config ist 6128, XMem und LS3, am ToTO-MotherX4 ohne Diode.

LambdaMikel

Also, FOS und Uhr laufen jetzt seit über 3 Stunden, und keine Verklemmung. Muss ich noch länger warten?
Evtl. liegt es bei Dir an etwas anderem im Setup?

TFM

Nee, wie geschrieben, es ist weniger als 1 Minute. Werde die v47 brennen und dann berichten.  :)
TFM of FutureSoft
http://www.futureos.de --> Das Betriebssystem FutureOS (Update: 20.12.2023)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 26.12.2021)

LambdaMikel

Quote from: TFM on 12. August 2019, 11:42:03
Nee, wie geschrieben, es ist weniger als 1 Minute. Werde die v47 brennen und dann berichten.  :)

OK, dann ist es definitiv was anderes bei Dir. Evtl. Harware-Defekt... sonst musst Du LS3 einsenden.

LambdaMikel

@TFM, wie waere es wenn ich Dir einen 2. LS3 schicke... dann kannst Du damit gegenpruefen.
Zudem waere dass dann eine Version mit Serial UART Pins... waere ja schoen wenn Du auch die serielle unterstuetzen wuerdest in Software.

Sollte sowas wie mit Usifac (Programme reinladen) nicht auch mit LS3 gehen?

Und, hast Du alle anderen Karten / Erweiterungen rausgenommen beim Testen? Waere ja schoen wenn @Rennert auch mal die FOS Uhr im Dauerbetrieb testen koennte. Wie gesagt, bei mir laeuft das stundenlang ohne Probleme.

Rennert

was muss ich im FOS machen zum Test?
habe jetzt bei der Konfiguration von FOS die RTC Rom Nummer auf 114 genommen. was muss ich für die RTC vom LS3 nehmen?

LambdaMikel

Quote from: Rennert on 12. August 2019, 19:52:04
was muss ich im FOS machen zum Test?
habe jetzt bei der Konfiguration von FOS die RTC Rom Nummer auf 114 genommen. was muss ich für die RTC vom LS3 nehmen?

Aeeh... gar nix? Ich hatte FOS Installer runtergeladen, rauf aufs XMem mit Default Einstellungen, und schon war es installiert. Und die Uhr kommt auch gleich.

Mit ROM-Positionen kenne ich mich nicht aus.