Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.

Nachrichten - Colibri

1
@mcfloppy
Ich bin Deiner Meinung. Du hast den MAX232CPE (4,5V - 5,5Volt) statt den MAX3232CPE (3V - 5,5 Volt) verwendet, dadurch funktioniert die Schaltung nicht 100%tig, da die Betty nur ca. 3 Volt liefert.

Colibri
2
Hallo,

ich habe als Boop Basisversion Rev 115 von Netguy genommen und eine Variante mit folgenden Features programmiert:

- Menus hinzugefügt (Betty-Taste zum Aufrufen / Exit zum Verlassen / Rechts zum Submenü / Links zur ins übergeordnete Menü / OK zum Aufrufen des Menüpunktes)

- Anstatt beim Einschalten eine Taste gedrückt zuhalten um das IR-Gerät festzulegen kann man das jetzt menügesteuert tun.
- Ausserdem lassen sich jetzt bis zu 4 IR-Geräte festlegen und den Tasten A, B, C und D zuweisen.

- Das Spiel Tic-Tac-Toe wurde hinzugefügt (simple - der Spieler kann leicht gewinnen)
- Das Spiel Sokoban mit 375 Levels hinzugefügt (Taste 8 für Zugzurückname / Vol+- springt 20 Levels / Prog+- springt 1 Level / Taste 0 für neues Spiel)

- Über das Demo & Test Menu lassen sich Sounds abspielen und stoppen
- Die Lautstärke der Sounds lässt sich menugesteuert festlegen
- Die Hintergrundbeleuchtungsdauer (bei jedem Tastendruck geht sie an und nach dem eingestellten Wert wieder aus) des Displays lässt sich menugesteuert festlegen

- Ein sehr sparsames Filesystem wurde hinzugefügt (nutzt das zweite Flash). Es benötigt pro Datei nur zwischen 3-7 Bytes overhead (1 Byte aktiv/gelöscht, 1-4 Byte für die ID, 1-2 Byte für die Dateilänge)

- Die aktuellen Einstellungen (wie IR-Gerätezuordnung zu den Tasten A-D, Lautstärke, Hintergrundbeleuchtung) werden beim Verlassen des Menuepunkts geseichert und gehen dadurch beim Batteriewechsel nicht verloren.

Die Variante wurde mit WinARM-20050209-2 (gcc 3.4.3) unter Windows kompiliert.
Download (boop_rom.bin und SRC): http://free.pages.at/colibri_dvb/Rev115_Colibri1.zip


Viel Spass,
Colibri
3
Die Version 1.05 von Betty-Heaven ist jetzt verfügbar.
Ist die Quelldatei (beim Beschreiben des Flashes) kleiner als das Flash, dann wird jetzt das restliche Flash nicht gelöscht, sondern bleibt erhalten. Das ist wichtig falls Konfigurationsdaten (z.B. welches IR-Protokoll (Galaxis oder DBOX2) er aussenden soll) am Ende vom Flash vorhanden sind die beim Aktualisieren der Firmware nicht gelöscht werden sollen.
Speichern wir zukünftig aber die Konfiguration im seperaten Flash Nr. 2 ab, dann ist ein Umstieg von 1.04 auf 1.05 nicht nötig.

Colibri
4
Software / Re: boop, infrarot, etc ...
07. Okt 2007, 17:35
Ab der Version 1.04 von Betty-Heaven kann man auch kleinere Dateien ins Betty-Flash schreiben (Rest wird mit FFh aufgefüllt). Damit klappts jetzt z.B. auch mit boop_rom.bin (übrigens geiles Bild/Sound) im Flash.

Colibri
5
Die Version 1.03 von Betty-Heaven ist jetzt verfügbar. Sie unterstützt auch das Auslesen und Beschreiben des Flashinhalts vom P89LPC931-Chip im Scart-Adapter.

Habe gleich meinen Scart-Adapter ausgelesen und das Betty-Dumps.zip upgedatet:
Neben dem Inhalt des 8 KByte EEPROMS vom Scart-Adapter ist jetzt auch der 8 KByte Flashinhalt vom P89LPC931-Chip mit dabei (Scart_Flash.bin).

Als Interface für den Scart-Adapter kann man folgendes benutzen:
http://bettyhacks.com/wiki/index.php/Scart-Betty-Kombiinterface

Durch ein Umflashen könnte man über den Scart-Adapter Daten vom PC drahtlos zur Betty schicken und auf dem Display ausgeben lassen.

Viel Spass,
Colibri
6
Habe das Betty-Dumps.zip upgedatet:
Der Inhalt des 8 KByte EEPROMS vom Scart-Adapter ist jetzt auch mit dabei (Scart_EEPROM.bin).

Colibri
7

Frage an Colibri!

Wäre es möglich deinem Tool beizubringen das boop an die Betty zu schicken?


Ab der Version 1.02 wird auch das Hochladen von eigenen Programmen ins RAM und anschliessendem Starten unterstützt (z.B. für boop.bin).
Falls Ihr ein Interface mit Resetleitung benutzt (NXPisp) wird wird nach dem Hochladen und Starten, durch das Beenden von Betty-Heaven und dem Starten des Hyperterminal der COM-Port kurzzeitig geschlossen. Dadurch wir bei der Betty ein Reset ausgelöst und das zuvor hochgeladene Programm beendet.
Man sollte sich also einen Jumper auf seinen Interface einbauen um die nReset-Leitung zum Servicestecker auftrennen zu können. Dann bleibt das boop.bin in der Betty auch beim Beenden von Betty-Heaven gestartet und man kann anschliessend mit dem Hyperterminal problemlos das Display ansteuern.

Colibri
8
Hardware / Re: hackdabetty
03. Sep 2007, 22:18

BOOL CmdPrgFlash(DWORD DstAddress, int WordLen, BYTE *SrcBuffer)
{

int i;
int k;
BOOL Error;
DWORD dwPrgAddress;
WORD wPrgData;
int Retries;
DWORD Address;
int FlashNr;
DWORD FlashBase;
DWORD wData;

if(DstAddress < FLASH_1_ADDRESS)
{
return false;//Error
}

FlashNr = (DstAddress < FLASH_2_ADDRESS) ? 1 : 2;
FlashBase = (FlashNr == 1) ? FLASH_1_ADDRESS : FLASH_2_ADDRESS;

for(i=0; i<WordLen; i++)
{
dwPrgAddress = DstAddress + (i * 2);
wPrgData = GetWord(&SrcBuffer[i * 2], true);//LSB first

Retries = 3;
do
{
Error = false;

Address = 0x555 << 1;
Address |= FlashBase;
wData = 0xAA;
((WORD*)Address)[0] = wData;

Address = 0x2AA << 1;
Address |= FlashBase;
wData = 0x55;
((WORD*)Address)[0] = wData;

Address = 0x555 << 1;
Address |= FlashBase;
wData = 0xA0;
((WORD*)Address)[0] = wData;

Address = dwPrgAddress;
Address |= FlashBase;
wData = wPrgData;
((WORD*)Address)[0] = wData;

BOOL DataOk;
DataOk = false;

for(k=0; (k<1000) & !DataOk ; k++)
{
if( (((WORD*)Address)[0] & 0x80) == (wData & 0x80) )
{
DataOk = true;
}
}
if(!DataOk)
{
Error = true;
}

Address = 0 << 1;
Address |= FlashBase;
wData = 0xF0;//Reset
((WORD*)Address)[0] = wData;
}while(Error & (Retries-- > 0));
}


return true;//OK
}



Ich verwende zu flashen obige Routine.

Ich habe gerade mitgestoppt:
- Ausgangssituation Flash1 von Betty-Dumps.zip ist auf der Betty
- Zeit start
- Power on der Betty
- Flash1 mit gepatchten AGB-Text flashen (incl. CRC korrektur). Flash2 ist deaktiviert.
- Flashen beendet
- Zeit stop

Hat ca. 35 Sekunden (nicht Minuten) gedauert.

Die Tricks:
- Nicht das Brennen ist der Engpass sondern die serielle Schnittstelle -> Also nicht unnötig Daten übertragen.
- Ein kleines Tool wird über ISP-Bootloader mit 38400 Bit/s geladen.
- Das Tool setzt dann die typische Betty PLL-Frequenz und läd den Rest des Tool mit 115200 Bit/s nach.
- Vor dem Flashen lasse ich vom Tool die SHA-1 Hashwerte der 19 Sektoren ermitteln und zum PC schicken (geht schnell - nur wenig Daten über RS232).
- Von Quellfile werden am PC auch die SHA-1 Hashwerte der 19 Sektoren ermittelt.
- Dann werden nur die Sektoren mit unterschiedlichem Hashwert gelöscht und programmiert (das ist bei AGB-Patch nur ein Sektor - deshalb nur 35 Sekunden Gesamtzeit).

Colibri
9
Hardware / Re: hackdabetty
03. Sep 2007, 19:44
Ihr müsst schon auch auf die Uhrzeit von meinem letzten Post schauen.
Ich habe es erst um Mitternacht geschafft eigenen Text auf dem Display darzustellen.
Für Doku im Wiki schreiben und Hochladen der Version 1.01 von Betty-Heaven das neben Backup, jetzt auch Restore mit CRC-Berichtigung beherrscht hatte ich gestern wirklich keine Lust mehr.
Dennoch wollte ich euch das Beweisfoto von unserem Erfolg die Orginalfirmware zu patchen natürlich nicht vorenthalten.

Die folgenden Wiki-Einträge habe ich jetzt upgedatet bzw. neu angelegt:
http://www.bettyhacks.com/wiki/index.php/Software_von_Colibri
http://www.bettyhacks.com/wiki/index.php/Speicheraufteilung
http://www.bettyhacks.com/wiki/index.php/CRC-Check

Schreibt man das Flash1 von Betty-Dumps.zip in die Betty erscheint ein AGB-Text auf dem Display.
Ich habe diesen Text einfach mit einem Hexeditor im Flash1 gesucht und durch den "http://bettyhacks.com"-Text ersetzt. Den restlichen AGB-Text (sowie z.B. den Text "Einverstanden" oder den Titel "AGB") einfach mit Leerzeichen überschreiben.

Viel Spass beim Patchen
Colibri
10
Hardware / Re: hackdabetty
02. Sep 2007, 22:51
11
Software / Re: Gurkensalat
29. Aug 2007, 20:04
Ich habe im Wiki einen Artikel "Testmode" verfasst.

Edit: "Jetzt "K" (Grossgeschrieben) drücken" im Artikel ergänzt.

Colibri
12
Hardware / Smartcardchip
27. Aug 2007, 19:17
Ich habe meine Forschungsergebnisse zum Smartcardchip im Wiki hinterlegt.

Ich konnte meinen Chip mit Kommando 45 auslesen und mit Kommando 46 erfolgreich beschreiben.
Es gibt aber noch weitere Kommandos die zum Teil nicht mal in der Betty-Firmware verwendet werden. Das könnten z.B. Personalisierungskommandos sein um die Smartcard-ID aufzubringen (zum Lesen der ID kann man ja Kommando 41 verwenden).

Colibri
13
Software / PCBA TEST
26. Aug 2007, 09:47
Der BettyHHUbootloader gibt ziemlich am Anfang den Text "???PCBA TEST???" aus.
Jetzt hat man 500 ms Zeit das !-Zeichen zu drücken.

CS0:8003E25C                 CMP     R0, #0x21 ; '!'

Am Besten einfach das Zeichen mehrmals pro Sekunde für ein paar Sekunden nach dem Einlegen der Akkus drücken.

Wenn am Betty-Display folgendes erscheint hat man es geschafft:
PCBA TEST
active
Please wait...

Im Testmodus bekommt man reaktionen auf seine Eingaben auf dem Terminal zu sehen.
Auch bei Tastendrücken auf der Fernbedienung gibt er etwas auf dem Terminal aus.

Colibri
14
Software / Re: betty initialisierung
23. Aug 2007, 17:49
@netguy

Ich habe mal drübergeschaut. Ich komme auf eine CPU-Freq von 30 MHz (statt 40 MHz).
Table 30: PLL Multiplier values:
MSEL Bits (PLLCFG bits [4:0]) = 00010 => Value of M = 3
FOSC (10 MHz) * M (3) = CCLK (30 MHz)

Die Peripheral-Freq ist dann laut dem Defaultwert in Tabelle 35 (VPBDIV), der in der init Funktion nicht geändert wird, ein Viertel der CPU-Freq also 7,5 MHz.

U0DLL wird bei 800006C8 mit 4 initialisiert, die Baudrate ist demnach 115200 Bit/s (Formel auf Seite 115). Ein Gegencheck mit dem Hyperterminal war erfolgreich.

Die Befehl in der Pause Funktion bei 80000C1C multipliziert mit 2 statt mit 8 (R3 enthält 1)
CS0:80000C1C                 MOV     R0, R0,LSL R3 -> 24000*8 = 192000

Insgesammt wird R0 mit 750 multipliziert. Bei der Peripheral-Freq von 7,5 MHz ergibt sich z.B. bei dem Übergabewert 0x64 (=100 dez.) eine Wartezeit von 10 mS.

Colibri
15
Wenn Du folgendes einfügst, sollte es funktionieren

//Flash1 auf 16 bit einstellen (ist vom ISP-BootLoader noch auf 32 bit eingestellt)
BCFG0 = 0x1000FBEF;


Colibri