Firmware-Upload
Das Aufspielen von neuer Firmware auf den LPC 1758 besteht aus 2 Schritten:
1. Aufspielen des Bootloaders
Für das Aufspielen des Bootloaders ist ein spezielles Programmiergerät erforderlich. Über die 1.27mm-Stiftleiste kann der Controller programmiert werden.
2. Firmware-Upload
Wenn der Bootloader aufgespielt wurde, ist der Firmware-Upload kinderleicht. Beim Einstecken des SDRs in den USB-Port wird der Taster gedrückt gehalten. Daraufhin meldet sich das SDR als USB-Massenspeicher am PC. Auf dem Laufwerk befindet sich die alte Firmware. Die Datei muss nun gelöscht werden und die gewünschte neue Firmware (.bin) wird auf das Laufwerk kopiert. Nach 10 Sekunden Wartezeit kann das SDR wieder vom USB getrennt werden. Beim nächsten Einstecken (ohne gedrückten Taster) wird die neu aufgespielte Firmware ausgeführt.
Die aktuelle Version der SDR-Firmware kann man hier herunterladen.
Bei der allerersten Verwendung nach dem Aufbau des SDR ist es nötig den CPLD-Baustein zu programmieren. Dazu wird zunächst eine spezielle Firmware aufgespielt, die den CPLD programmiert. Die Vorgehensweise hierzu wird auf der Seite CPLDProgrammierung erläutert.
Übersicht über Firmware-Versionen
Die nachfolgende Tabelle listet die bisherigen Firmware-Versionen auf. Änderungen gegenüber der Vorgängerversion werden in einer Spalte kurz beschrieben. Zum einen soll die Tabelle Hinweise bei einem Update geben, zum anderen kann sie bei möglichen Fehlern helfen den Verursacher durch Wechsel zu älteren Versionen auf eine bestimmte Änderung einzugrenzen. Versionen die für ein Update gedacht sind sind farblich hervorgehoben. Die übrigen Versionen sind Zwischenstände die normalerweise nicht verwendet werden sollten. Anklicken der Versionsnummer führt zum Log-Eintrag mit den Änderungen, der Direkt-Link erlaubt direkt das Herunterladen der Firmware.
| Direkt-Link |
|
|---|---|---|
Den Pin X6.8 (bzw. SV1.12 auf dem Preselektor) kann man nun mit dem PTT-Schalter aus der PC-Anwendung heraus steuern. Der Pin ist high wenn die PTT aktiviert ist. Der Pin ist Teil des 4-Bit-Bitmusters für den Preselektor (presel_mode=1), er wird aber beim FiFi-Preselektor (braucht drei Leitungen) nicht verwendet. Für presel_mode=1 bleibt alles beim Alten. Um die PTT-Funktion zu nutzen, muß mit rockprog der Modus 3 eingestellt werden. Für den Betrieb mit dem FiFi-Preselektor bedeutet dieser Modus keine Einschränkung. rockprog -w --presel --mode=3 | ||
Korrigiert den Fehler aus Firmware 336. Rockprog kann den Offset wieder setzen (rockprog --offset ...) | ||
Schnelle aufeinanderfolgende Parameteränderungen (z.B. mit CFGSR) konnten manchmal zum Absturz der Firmware führen. Änderungen werden nun erst mit einer Verzögerung von einer Sekunde nach der letzten Änderung gesammelt gespeichert. Achtung: In dieser Firmware läßt sich der Frequenzoffset nicht mit rockprog ändern! Bitte eine neuere Firmware verwenden'' | ||
Diese Version beseitigt einen schweren Fehler in der Frequenzeinstellung. Durch einen Fehler beim Abspeichern des "Smoothtune"-Wertes für den Si570 konnte es vorkommen daß der VCO bei kleinen Frequenzänderungen auf seine Werksvoreinstellung zurück sprang. Erst eine Änderung um einen größeren Frequenzschritt konnte den VCO wieder auf die richtige Frequenz bringen, | ||
Quarz-Kalibrierung kann nun auch mit CFGSR bewerkstelligt werden. | ||
Kleine Änderung für Verstärkungsumschaltung der Soundkarte. 0/-6 dB scheint verträglicher mit Linux als +6/0 dB... | ||
Versionsnummer für Softrock-Emulation auf V17.1 geändert (bisher V15.12). Tools wie Freds CFGSR können anhand der Nummer 17.x das FiFi-SDR erkennen und seine Sonderfunktionen unterstützen. | ||
0/6-dB-Schalter per Softrock-Interface steuerbar. Unterstützung dafür existiert in Quisk und Hamlib. | ||
| Neue Version von CMSIS. Neuer Device-Header. Keine funktionale Änderung. | |
Im FiFi-SDR kann ein Frequenz-Offset hinterlegt werden, der bei der Einstellung des VCO berücksichtigt wird. Der Offset konnte zwar früher schon gesetzt werden, wird aber erst ab dieser Version bei der Einstellung der Frequenz verwendet. Treiber für das FiFi-SDR müssen diesen Offset auslesen und bei der Frequenzeinstellung berücksichtigen. Der bekannte Treiber ExtIO_Si570.dll macht das, ebenso der Quisk-Treiber. | ||
Der SVN-Versionsstand der Quellen aus denen die Firmware gebaut wurde ist auslesbar. Falls die Quellen gegenüber dem SVN-Stand vor der Übersetzung geändert wurden wird das allerdings nicht angezeigt (Versionsnummer bleibt gleich). | ||
| Die Standardwerte für den Preselektor entsprechen nun dem letzten Stand des FiFi-Preselektors. Nach einem Firmware-Update werden diese geänderten Werte allerdings nicht automatisch eingestellt, da die bisherigen Werte nicht angetastet werden! Wer sein bestehendes SDR auf den aktuellen Stand bringen will, sollte dafür rockprog verwenden. Es gibt inzwischen auch eine Version des Tools für Windows die mit der normalen libusb-0.1 auskommt. | |
| Audio-Interrupt wieder entfernt. Wird nicht unterstützt. | |
| Kleiner Fehler beseitigt | |
Änderung für USB-Audio-Interface: Neuer Interrupt-Endpoint. Es hat sich aber gezeigt daß er zwar unter Linux abgefragt wird, aber nicht unter Windows. Wird daher bei nächster Gelegenheit wieder entfernt. | ||
Sehr viele interne Änderungen im Zusammenhang mit dem RTOS. Keine geänderte Funktion. | ||
| Mechanismus zum Auslesen der SVN-Versionsnummer eingebaut. Derzeit wird noch 0 ausgegeben. | |
Vorgaben für Preselektor. Name für Soundkarte in USB-Deskriptoren eingebaut. | ||
Seitenbandtausch für Empfang auf 3. Oberwelle (erfordert CPLD-Update). Die dritte bisher freie Steuerleitung zwischen CPU und CPLD wird nun dazu genutzt um das CPLD zum Tausch der Seitenbänder (Vertauschen von I und Q) zu bewegen. | ||
Simplen Stromsparmodus für CPU wieder aktiviert (spart 20mA) | ||
Schwerer Fehler bei Frequenzeinstellung beseitigt (hin und wieder sprang der Si570 auf Factory Defaults). | ||
Fehler mit Interrupt-Priorität behoben. Änderung zu Codec-Powerdown wieder rückgängig gemacht. | ||
Große Änderung bei der Audio-DMA. Ab jetzt funktioniert DRM! |
Test-Firmware mit DSP-Funktion
Noch im Teststadium befindet sich eine Firmware die selbständig (ohne Software auf dem PC) AM- und SSB-Signale dekodiert. Die Ausgabe des NF-Signals erfolgt über eine zweite emulierte USB-Soundkarte. Parallel zur NF werden auch weiterhin die I/Q-Signale auf der ersten Soundkarte ausgegeben. Wenn die DSP-Funktion aktiv ist, d.h. wenn ein Programm die zweite Soundkarte einschaltet, dann ist nur eine Abtastrate von 48 kHz für die I/Q-Signale möglich. Ohne NF-Ausgabe funktioniert aber wie gewohnt auch eine I/Q-Ausgabe mit 96 kHz.
Mit dieser Firmware lassen sich Programme nutzen die als Eingangssignal die NF eines Empfängers erwarten. Prominentes Beispiel ist hier das erstklassige Programm fldigi für die digitalen Betriebsarten. Unter Linux funktioniert fldigi bereits perfekt mit dem FiFi-SDR zusammen, wenn man die libhamlib-Library ab Version 1.2.13 einsetzt. Ab dieser Version ist in der libhamlib Unterstützung für die Test-Firmware des FiFi-SDR eingebaut. Da fldigi unter Windows die libhamlib statisch linkt, müssen wir noch solange warten bis eine neue Version von fldigi mit der libhamlib 1.2.13 erscheint :-(
Es sind derzeit zwei Probleme mit der Test-Firmware bekannt:
- In mindestens einem Fall kam unter Windows XP keine NF-Ausgabe. Ursache unbekannt. Andere Windows-XP-Rechner haben funktioniert. Testberichte von anderen Windows-Versionen liegen bisher nicht vor.
- Quisk (Linux) kommt mit den zwei angebotenen Soundkarten der Test-Firmware nicht zurecht. Beim ersten Aufruf nach Anstecken des FiFi-SDR ist alles ok, aber nach Verlassen von Quisk ist das ALSA-Soundsystem von Linux verwirrt, und es ist nur noch eine Soundkarte ansprechbar, sogar nur unter falscher Nummer. Das Problem tritt nur mit Quisk auf, andere einfache Soundprogramme haben keine Probleme.
| Direkt-Link |
|
|---|---|---|
Nachziehen von Fehlerkorrekturen aus Haupt-Firmware. Siehe 327, 329, 332. | ||
Anpassungen an neue Version der libhamlib. |
![(please configure the [header_logo] section in trac.ini)](http://o28.sischa.net/fifisdr/svn/trunk/Dokumentation/traclogo.png)