http://satellite-board.de http://satellite-board.de/board/ |
|
ATmega16 LED Modul von ng-box.com http://satellite-board.de/board/viewtopic.php?f=45&t=20108 |
Seite 1 von 2 |
Autor: | fbgm [ Di 19. Feb 2008, 17:33 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
Hallo Oli, in der Anleitung Punkt Aphanumerisch auf "N" einstellen. Dann funktionierts auch mit der SAA Simulation. Die Tasten gehen nur zur ATMEL CPU, da sonst nicht sichergestellt werden kann das die beiden Rechner nicht gegeneinander arbeiten. Per Parameter ist einstellbar, wie die ATMEL CPU mit den Tasten umgeht. siehe Anleitung Parametereinstellungen. Bei Bedarf kann ich den Schaltplan und Software zur Verfügung stellen. mfg Franz |
Autor: | oli [ Di 19. Feb 2008, 18:17 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
Wo finde ich diese Anleitung, bei dem Gerät war keine dabei. Das mit den Tasten verstehe ich nicht ganz die drei Tasten (des org. SAA1064 Disp) funktionieren bei mir sehr gut, sowohl mit der Easy, Matrix Software und beim Adam sowiso. Kann man die irgend wie verbinden? Ich werde das gleich mal versuchen Zitat: in der Anleitung Punkt Aphanumerisch auf "N" einstellen. Dann funktionierts auch mit der SAA Simulation. Ich hatte eigentlich gedacht das das Display zwischen Befehlen für das SAA ($70) und die für das ATmega16 ($72) unterscheiden kann. Beim adam haben wir ja das Problem das der Bootloader immer auf $70 und $76 versucht das SAA anzusteuern und die Software erkannt aber dann das ATmega16 und geht dann auf $72. cu Oli |
Autor: | oli [ Di 19. Feb 2008, 18:44 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
Habe die Anleitung inzwischen gefunden... Da steht was das die Tasten über den ATmega16 mit den Ports verbunden werden, so das man die Tasten zusätzlich auch für das ATmega-Menü verwenden kann. Scheinbar fehlt da noch was? Die einstellungen sind wie in Auslieferung, dann sollten die tasten doch gehen, also wie die tasten am SA1064? Oder bin ich da ganz falsch? Das alphanum muß ich ja eingeschaltet lassen (Y) sonst klappen die Tests mit der Ansteuerung über $72 ja nicht mehr? Im Moment zeigt er eben halt aber immer GALAXIS+ an. cu Oli |
Autor: | fbgm [ Di 19. Feb 2008, 19:23 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
Hallo Oli, als Anhang den Schaltplan der Ansteuerung. Um die Tasten direkt mit der Box zu verbinden müssen die fehlenden Widerstände eingebaut werden. Das Problem ist dann, dass die Tasten von beiden CPU's verarbeitet werden. Darum ist eine Software Schnittstelle eingebaut worden, die die Tasten über I2C zur Box weiterleitet. Das Display hört nur auf Adr. 0x72. Dafür ist die Easy Firmware geändert worden. Es wird zuerst auf der Adresse 0x72 geprüft ob das Alpha Display da ist. danach werden die anderen Adressen und Displays gesucht. Das mit der anderen Erkennung müsste dann in den ATMEGA 16 einprogrammiert werden. Die Enstellung Alphanumerisch = N, schaltet den I2C auf die Adresse 0x70. Dann arbeitet das Display in der SAA Simulation. Eventuell kann auch zum parametrisieren die serielle Schnittstelle verwendet werden. (Bei der LCD Hardware, werden die Tasten über Prots direkt zur Box weitergegeben. Dafür fehlen bei der LED Version leider die Portpins.) mfg Franz |
Autor: | oli [ Di 19. Feb 2008, 21:27 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
Ich würde ungern nochetwas an der Software des Displays tun, denke das sollte ich alles über die Firmware der Box abfangen. Vielleicht auch die Ansteuerung der Tasten. Ich wollte eh die tastenanzahl etwas erhöhen, es gibt fertige mini Tastaturen auf i2c Basis. Wie bewerkstelligt denn die Easy Software diesen Fall? Den hier ist es doch der gleiche Fall, der Bootloader schickt einfach Signale auf $70 an das Display ohne zu prüfen welches Display angeschlossen ist. Ich kann das ja auch nicht anders machen da wir keine Sourcen des Bootloaders haben müssen wir damit leben. Die Software erkennt ja jetzt schon das der Atmega angeschlossen ist! adan boot Log hat geschrieben: POWER_ON ============================================== Omniscience CX22490 bootloader Ver.4.30 build: Nov 22 2004, 10:12:12 by HWI team ============================================== Flash 0 : MX29LV320B (2M x 16) Flash 1 : flash unknow Flash size: 0x400000 kB ------------------------------------------------ ........... ============================================== galaxis CX OS Core Ver. 1.04a build: Feb 17 2008, 18:09:43 webPM 3.5+, V1.02 Oli 4MB-Box 17.02.08 powered by http://dvb-community.de and http://iqzone.de ============================================== RamSize 8384512 FirstAvailMem: 3006808 venId=0x7e, BordId=0x7e, chipId=0x490114f1, chipRev=0x4 ============================================== Distanzierung / Disclaimer Nutzung dieser Software ausschliesslich auf eigene Gefahr. Es kann keine Haftung für Schäden jeglicher Art, die im Zusammenhang mit dieser Software steht, übernommen werden. ============================================== ===================================== Hardware List ===================================== Dram_Size: 0 SDram_Size: 8 Flash0_Typ: MX29LV320B (2M x 16) Flash1_Typ: flash unknow Flash size: 0x400000 kB Eeprom_Typ: 24C128 Disp_Typ: ATmega16 ===================================== === DEVICE on === Network Task socket returned 0 socket returned 1 socket returned 2 bind 0 bind 1 bind 2 listen 1 listen 2 accept 1 002F5C28 accept 2 002F7230 [P_MAIN_Init] ############################################################################## # Module Description Version Modified # #----------------------------------------------------------------------------# # EEPROMManager EEPROM Manager 1.8.2.1 2004/06/18 13:58:21 # # RTCManager Real Time Clock Manager 1.13.2.1 2004/06/16 16:14:15 # # TManager Timer Manager 1.15 2004/02/18 10:55:35 # # FEM Frontend Manager 1.53.2.5 2004/10/11 11:39:27 # # GPIO GPIO --- --- # # FK Front Keys 1.7 2004/01/21 14:55:11 # # PREMIERE PREMIERE 1.2 2004/01/14 08:49:16 # # SSUDM SSU08.01.2004 13:5908.01.2004 13:5908.01.2004 13:59 Download Module 1.7.2.1 2004/07/28 11:23:18 # ############################################################################## ********************************* BOX INFO ********************************* * Module Description | Driver SW | I2C * * |Version |Modified |W |R |B * * MESSAGING | | |0x00|0x00|000* [PCF8574] Start Init... [OLI_Init_i2c] --------------------------- [OLI_Init_i2c] detect i2c devices [OLI_Init_i2c] found I2C on (0x22) -> AV4702 [OLI_Init_i2c] found I2C on (0x72) -> SAA1064 [OLI_Init_i2c] found I2C on (0x8a) -> BT8XX [OLI_Init_i2c] found I2C on (0xa0) -> EEprom [OLI_Init_i2c] found I2C on (0xca) -> RF-Mod. [OLI_Init_i2c] found I2C on (0xd0) -> Philips Sat [OLI_Init_i2c] --------------------------- [ReadI2cMsg] error (address 0x40) [tastatur] Key_Read !!! * FLASH MX29LV320B (2M x 16) |1.23 |2004/04/08|0x00|0x00|000* Resetting Port * USB | | |0x00|0x00|000* * ENCODER BT864 |1.2 |2004/02/18|0x8a|0x8b|000* * AVMUX AK4702 |1.3 |2003/11/28|0x22|0x22|000* * MPEGCORE | | |0x00|0x00|000* * DEMUX |1.29.2.1|2004/09/27|0x00|0x00|000* * AUDIO | | |0x00|0x00|000* * VIDEO | | |0x00|0x00|000* * BOOTLOGO | | |0x00|0x00|000* * IR_DRIVER VIDEO: Video Buffer empty | | |0x00|0x00|000* Enabling Port ===================================================== USB_AttachnewDevice Fullspeed:1 USB_SetAddress 03 Reading Device Descriptor This endpoint supports a maxtransfersize of 08 * OSD | | |0x00|0x00|000* Device Descriptor: UsbSpec 0110 Class 00 SubClass 00 Prot 00 MaxPacket 08 Vendor 0846 Product 1020 Release 0101 ManuString 01 ProductString 02 SerialString 03 NumConfigs 01 Manufacturer: NETGEAR * STRUCTURE | | |0x00|0x00|000* Product: NETGEAR FA101 Adapter Serial: 0001 * VCRTIMER | | |0x00|0x00|000* Config 0: [Scan_Init]LinearScan Queue Create Failed Interfaces: 01 ConfigVal 01 StringInfo 00 Bus-powered RemoteWakeup * APPLICATION BANNER |1.9.2.16|2004/11/04|0x00|0x00|000* 160mA * APPLICATION HELLO_WORLD |1.3 |2004/05/18|0x00|0x00|000* IF: Num 00 Alt 00 EPs 03 Class 00 SubClass 00 Prot 00 StringIdx 00 * APPLICATION SETUP |0.3 | 13052003|0x00|0x00|000* EP: Addr 81 * APPLICATION EPG |0.2 | 06052003|0x00|0x00|000* Bulk * APPLICATION CA |0.1 | 14052004|0x00|0x00|000* MaxSize 0040 PollInterval 00 * APPLICATION TEST |0.2 | 06052003|0x00|0x00|000* EP: Addr 02 * APPLICATION VOLUME BAR |0.1 | 28072003|0x00|0x00|000* Bulk * APPLICATION JPEG |0.2 | 06052003|0x00|0x00|000* MaxSize 0040 PollInterval 00 * APPLICATION TTX |0.2 | 06052003|0x00|0x00|000* EP: Addr 83 * APPLICATION SOUND |0.2 | 06052003|0x00|0x00|000* Inter. * APPLICATION SUBTITLE |0.2 | 06052003|0x00|0x00|000* MaxSize 0008 PollInterval 01 * APPLICATION MSGWIN |1.6.2.20|2004/10/20|0x00|0x00|000* ===================================================== * APPLICATION FRONT_KEY |0.1 | 04122003|0x00|0x00|000* * APPLICATION FIRST INSTALLATION |0.1 | 28072003|0x00|0x00|000* Interfaces: 01 ConfigVal 01 StringInfo 00 Bus-powered * APPLICATION MULTI INFORMATION WINDOW |1.30.2.7|2004/10/20|0x00|0x00|000* RemoteWakeup * APPLICATION ZOOM WINDOW |1.6.2.1 |2004/07/30|0x00|0x00|000* 160mA * APPLICATION Tic Tac Toe WINDOW |1.7.2.2 |2004/07/30|0x00|0x00|000* IF: Num 00 Alt 00 EPs 03 Class 00 SubClass 00 Prot 00 StringIdx 00 * APPLICATION MAIN APPLICATON |1.1 |2004/06/08|0x00|0x00|000* EP: Addr 81 * APPLICATION | | |0x00|0x00|000* Bulk * TELETEXT | | |0x00|0x00|000* MaxSize 0040 PollInterval 00 * CLOCK | | |0x00|0x00|000* EP: Addr 02 * SI_ENGINE version notif dmx |1.31.2.2|2004/06/21|0x00|0x00|000* Bulk [CW_CheckEMMStorage] EMM_StorageMaxSize 0040 PollInterval 00 ****************************** EP: Addr 83 *CW_Profile1: Model: 0x385*Inter. *CW_Profile1: Release: 0x004*MaxSize 0008 PollInterval 01 *CW_Profile1: Version: 0x001*USB ADM8511 compatible ethernet adapter detected *CW_Profile1: ImageId: 0x001* ****************************** *CW_Profile2: Model: 0x385* *CW_Profile2: Release: 0x004* *CW_Profile2: Version: 0x001* *CW_Profile2: ImageId: 0x001* ****************************** ADAM VERSION 1.09 EEProm Type: 14 * CA_SYSTEM Embedded CAS Handler |1.39.2.3|2004/08/20|0x00|0x00|000* * Subtitle | | |0x00|0x00|000* No Forced message is in the store * Fingerprinting | | |0x00|0x00|000* galaxis technology AG - Debug Console 1.1 Enter 'help' for a list of commands * CONSOLE | | |0x00|0x00|000* =>****************************************************************************** === DEVICE on === USB_ADM8511_DeviceStart Our IP: 0.0.0.0 ! Our MAC:000000000000 ----- no card yet ---- check pts ----------------------------- -> start close timer [smc_check_pts] OM_SMC_ERROR check pts end ----------------------------- CryptoWorks SMC detected !! CryptoWorks SMC detected set ~ 5 MHZ CA system ID: 0xd22 Wenn das Display nicht auf die $70 reagiert, warum Zeigt er immer GALAXIS+ an? |
Autor: | jimjack [ Mi 20. Feb 2008, 07:40 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
Das wird eine Startmeldung des ATMega sein. Kann man dem Programm im ATMega nicht noch sagen auch auf die Adresse 0x70 zu reagieren? Edit: Hab ich das jetzt richtig verstanden, das Display arbeitet schon per "N" in einer SAA-Emulation auf 0x70? |
Autor: | oli [ Mi 20. Feb 2008, 08:17 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
jimjack hat geschrieben: Das wird eine Startmeldung des ATMega sein. Ja, aber auf welchen Befehl hin schaltet er auf "Empfang"? Ich denke diese Startmeldung überbrückt beim Easy die Zeit beim Booten wo der Bootloader nur an $70 sendet "boot" usw. das kann diese Display ja scheinbar nicht wenn es nur auf $72 lauscht. Obwohl in der Anleitung wird behauptet es ginge, das wäre dann aber ein Wiederspruch zur aussage das es nur auf $72 lauscht bei "Y" und bei "N" auf $70. Den Bootloader kann man ja nicht beeinflussen, höchstens patchen, das er die klassischen SAA Signale per $72 sendet? jimjack hat geschrieben: Edit: Hab ich das jetzt richtig verstanden, das Display arbeitet schon per "N" in einer SAA-Emulation auf 0x70? Ja, richtig verstanden. Ich habe ehrlich gesagt keine Lust mich auch noch mit der Programmierung des ATmega selber zu beschäftigen. Ich versuche jetzt das Firmwareseitig so umzusetzen das dieses Display so funktioniert. Problem hier ist auch das kaum einer das jetzt interne Display tot legt? Also findet die Software ja bei angeschlossenen ATmega Disp einmal die $72 ATmega und $76 für das interne SAA. cu Oli |
Autor: | jimjack [ Mi 20. Feb 2008, 10:22 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
Das ist richtig, müsste man in den Einstellungen einstellbar machen oder priorisieren? Wenn die die Easy-FW geändert haben wird die wohl einen Befehl senden, dass sie nun brreit ist. Auf das wird das Display warten und solange "galaxis+" anzeigen. |
Autor: | fbgm [ Mi 20. Feb 2008, 16:56 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
Hallo Oli, im Anhang die Antwort vom ER-Team, wie die das Display bedienen. Die Meldung "Galaxis+" wird beim Reset ausgegeben und erst mit gültigen Daten überschrieben = Startmeldung. Die Meldungen des Bootloaders werden nicht angezeigt, da der Bootloader meint es ist ein serielles Display angeschlossen. (Kein bekanntes Display meldet sich). Da der Bootloader kurzfristig das Betriebssystem startet, fällt das kaum auf. Die Bootmeldungen der ER Firmware kommen dann auf die richtige Adresse (0x72) in ISO-8Bit Code. Datenfilterung macht der ATMEGA. Sachen wie NoSf... werden also nicht angezeigt, Zur Displayerkennung: Wenn die Box ein Display erkannt hat, sollte die Suche nach anderen Displays aufgegeben werden. Ich glaube der Treiber wird keine zwei Displays verwalten können. Die Firmware für den ATMEGA kann ich bei Bedarf ändern, das sollte also kein Problem sein. Die Tasten könne über I2C abgefragt werden. siehe Anhang. mfg Franz |
Autor: | oli [ Do 21. Feb 2008, 08:14 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
Also das sollte schon sehr ähnlich zum SAA sein? Ich weiß nicht ob ich das ganz verstanden habe... Im Moment sende ich zum SAA etwa so (zusammengefast aus verschiedenen C und H): Code: #define DEFAULT_I2C 0 #define Disp1SA 0x70 // 1.saa1064 extern bzw. ALPHANUMERISCH_1 static bool Send_SAA_I2C_70(uchar *data, int numdat) { int num; for (num = 0;num<numdat;num++) { if (gx_I2C_WriteIndexedReg(DEFAULT_I2C, Disp1SA, num, data[num])==FALSE) return(TRUE); } return(FALSE); //NO ERROR } void Disp_Txt(char *buf) { if (Disp_select1 == 1) //NUM_DISPLAY { if ((DISPDEVICE&0x0f)==SAA1064) { led_data[1] = 0x47; led_data[2] = conv_char(buf[0]); led_data[3] = conv_char(buf[1]); led_data[4] = conv_char(buf[2]); led_data[5] = conv_char(buf[3]); if (Disp_select == 2) //SAA1064 extern { Send_SAA_I2C_70((u_int8*)&led_data[1], 5); } if (Disp_select == 8) //SAA1064 intern { Send_SAA_I2C_76((u_int8*)&led_data[1], 5); } #ifdef DISP_DEBUG printf("\n\r[Disp] SAA_Disp_Txt: Textausgabe Standard SAA1064!!!"); #endif } else if ( DISPDEVICE == DLED ) { LED_GRUEN } } } Disp_Txt( ***** ); Dieser Teil wäre dann der erweiterte Datenteil? also data[21] (20Stellen + 0x00) Zitat: 3. - dispaly segment 0 vorn (links) 4. - display segment 1 ..... 10. - display segment 7 hinten (rechts) 11. - display hintergrund 0 ..... 22. - display hintergrund 11 (20.stelle) end of string = 0x00 Man muß die 20 stellen nicht voll machen? Mit 0x00 schließt man die Sendung? cu Oli |
Autor: | oli [ Do 21. Feb 2008, 09:21 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
Code: static uchar led_data[22];
static bool Send_SAA_I2C_72(uchar *data, int numdat) { int num; for (num = 0;num<numdat;num++) { if (gx_I2C_WriteIndexedReg(DEFAULT_I2C, Disp3SA, num, data[num])==FALSE) return(TRUE); } return(FALSE); //NO ERROR } void Disp_Txt_cpu(char *buf) { if (Disp_select == 4) //ATmega16_Disp { led_data[1] = 0x8F; // ATmega16 = 0x8F led_data[2] = buf[0]; // 3. dispaly segment 0 led_data[3] = buf[1]; // 4. dispaly segment 1 led_data[4] = buf[2]; led_data[5] = buf[3]; led_data[6] = buf[4]; led_data[7] = buf[5]; led_data[8] = buf[6]; led_data[9] = buf[7]; // 10. display segment 7 led_data[10] = buf[8]; // 11. display hintergrund 0 led_data[11] = buf[9]; led_data[12] = buf[10]; led_data[13] = buf[11]; led_data[14] = buf[12]; led_data[15] = buf[13]; led_data[16] = buf[14]; led_data[17] = buf[15]; led_data[18] = buf[16]; led_data[19] = buf[17]; led_data[20] = buf[18]; led_data[21] = buf[19]; // 22. display hintergrund 11 led_data[22] = 0x00; Send_SAA_I2C_72((u_int8*)&led_data[1], 22); #ifdef DISP_DEBUG printf("\n\r[Disp] Disp_Txt_cpu Textausgabe auf ATmega16 Display!!!" ); #endif } } Disp_Txt_cpu("ABCDEFGHIJKLMNOPQRST"); |
Autor: | fbgm [ Do 21. Feb 2008, 17:17 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
Hallo Oli, das sieht gut aus. Das erste Datenbyte muss 0x00 sein, danach kommt 0x8x und die Display Daten. Die Datenlänge muss < 64 Zeichen sein, inclusiv der Befehlsbytes und der Stringende Kennung. Das Display erkennt das Ende der Übertragung anhand der I2C Stop-Condition, nicht anhand der Stringendekennung. Die Stringendekennung ist für das Display nicht notwendig. mfg Franz |
Autor: | oli [ Do 21. Feb 2008, 18:33 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
Dieser Code ist aber schon seit mitte 2007 drin ohne Erfolg? Kann leider nicht irgendwie i2c-loggen was tatsächlich raus geht? cu Oli Code: [Disp] Disp_Txt_cpu Textausgabe auf ATmega16 Display!!!
[Disp] Helligkeit = 0x8f [Disp] Digit1 = 0x41 [Disp] Digit2 = 0x42 [Disp] Digit3 = 0x43 [Disp] Digit4 = 0x44 [Disp] Digit5 = 0x45 [Disp] Digit6 = 0x46 [Disp] Digit7 = 0x47 [Disp] Digit8 = 0x48 [Disp] Disp_Txt_cpu Textausgabe auf ATmega16 Display!!! [Disp] Helligkeit = 0x8f [Disp] Digit1 = 0x41 [Disp] Digit2 = 0x42 [Disp] Digit3 = 0x43 [Disp] Digit4 = 0x44 [Disp] Digit5 = 0x45 [Disp] Digit6 = 0x46 [Disp] Digit7 = 0x47 [Disp] Digit8 = 0x48 |
Autor: | oli [ Do 21. Feb 2008, 19:29 ] |
Betreff des Beitrags: | Re: ATmega16 LED Modul von ng-box.com |
Also laut Log sendet er genau das, aber am Display tut sich nichts... Code: [Disp] Disp_Txt_cpu Textausgabe auf ATmega16 Display!!! [Disp] led_dat = 0x8f [Disp] segment 0 = 0x41 [Disp] segment 1 = 0x42 [Disp] segment 2 = 0x43 [Disp] segment 3 = 0x44 [Disp] segment 4 = 0x45 [Disp] segment 5 = 0x46 [Disp] segment 6 = 0x47 [Disp] segment 7 = 0x48 [Disp] hintergrund 0 = 0x49 [Disp] hintergrund 1 = 0x4a [Disp] hintergrund 2 = 0x4b [Disp] hintergrund 3 = 0x4c [Disp] hintergrund 4 = 0x4d [Disp] hintergrund 5 = 0x4e [Disp] hintergrund 6 = 0x4f [Disp] hintergrund 7 = 0x50 [Disp] hintergrund 8 = 0x51 [Disp] hintergrund 9 = 0x52 [Disp] hintergrund 7 = 0x53 [Disp] hintergrund 8 = 0x54 [Disp] hintergrund 9 = 0x0 Ich denke irgendwas stimmt am i2c Treiber nicht. Ich verwende den Befehl vom SAA einfach, eventuell ist dieser sehr eng am SAA ausgerichtet. Ich versuche gerade etwas im i2c Treiber schlau zu werden. |
Seite 1 von 2 | Alle Zeiten sind UTC |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |