Homepage

  • Projekte
  • Shop
  • Forum
Erweiterte Suche
  • Schnellzugriff
    • Unbeantwortete Themen
    • Aktive Themen
    • Suche
  • FAQ
  • Anmelden
  • Registrieren
  • Foren-Übersicht
  • Suche

Problem with UM9008F

Projekt aus Elektor 2007
Antworten
  • Druckansicht
Erweiterte Suche
4 Beiträge • Seite 1 von 1
Spider

Problem with UM9008F

  • Zitieren

Beitrag von Spider » 18.01.2006, 06:19:01

Hi all. I don' know Deutsch language and can't read forum :(
Can anybody help me?

I have assembled WebServer based on ATmega32 and ISA NetWork Card based UM9008F chip (I can't find RTL8019 based).

After power up in Terminal I see ERROR(255). I have change rtl8019.c to next view:

Code: Alles auswählen

	printf ("\n\n\n\nInit Network Card: ");

	//Set Reset Pin Low
	RTL_RESET_OFF();		

	//added by holgi
	//meine Karten laufen nur wenn man hier noch ca. 100ms wartet
	//wait a long time
	unsigned long i = 0;
	while (i < 60000 * 5) i++;
	//end added by holgi
	
	ReadRTL (RSTPORT);
	WriteRTL (RSTPORT , 0xFF);
	
	//wait a short time
	int a = 0;
	while (a < 1000)
	{
	a++;
	}
	
	printf (".");			//Point 1
	WriteRTL (CR , (1<<STP| 1<<RD2));

	//wait a short time
	a = 0;
	while (a < 1000)
	{
	a++;
	}
	
	printf (".");			//Point 2
	WriteRTL (DCR , DCRVAL);
	WriteRTL (RBCR0 , 0x00);
	WriteRTL (RBCR1 , 0x00);
	WriteRTL (RCR , 0x04);
	WriteRTL (TPSR , RXSTART);
	WriteRTL (TCR , 0x02);
	WriteRTL (PSTART , RXSTART);
	WriteRTL (BNRY , RXSTART);
	WriteRTL (PSTOP , RXSTOP);
	WriteRTL (CR ,(1<<STP| 1<<RD2|1<<PS0));

	//wait a schort time	
	for (int a = 0; a < 1000; a++)
		{
		}

	printf (".\nHW MAC:");			//Point 3
 	WriteRTL (CURR , RXSTART);
 
 	for(int a = 0; a<=5; a++)
 	{
		printf ("%x:",ReadRTL ((PAR0 + a)));
	}
	printf ("\nSW MAC:");			//Point 3
	
	for(int a = 0; a<=5; a++)
	{
 		WriteRTL ((PAR0 + a) , mymac[a]);
		printf ("%x:",mymac[a]);		//Point 4,5,6,7,8,9
 	}
	printf (".\nHW MAC:");			//Point 3
 	WriteRTL (CURR , RXSTART);
 
 	for(int a = 0; a<=5; a++)
 	{
		printf ("%x:",ReadRTL ((PAR0 + a)));
	}
	printf ("\n");
	WriteRTL (CR , (1<<STP| 1<<RD2));
	WriteRTL (DCR , DCRVAL);
	WriteRTL (CR , (1<<STA| 1<<RD2));
	printf ("ISR: 0x%x\n",ReadRTL(ISR));
	WriteRTL (ISR ,(1<<PRX|1<<PTX|1<<RXE|1<<TXE|1<<OVW|1<<CNT|1<<RDC|1<<RST));	
	WriteRTL (IMR , IMRVAL);
	WriteRTL (TCR , TCRVAL);
	printf ("ISR: 0x%x\n",ReadRTL(ISR));
	printf ("CONFIG0: 0x%x\n",ReadRTL(0x03));
	printf ("CONFIG1: 0x%x\n",ReadRTL(0x04));
	printf ("CONFIG2: 0x%x\n",ReadRTL(0x05));
	printf ("CONFIG3: 0x%x\n",ReadRTL(0x06));
	printf (" Init Ready! \n");
	
	//startet die Network Card
	WriteRTL (CR ,(1<<STA| 1<<RD2));
    DATA_PORT_RLT_WRITE = 255; //Schreibt eine 255 auf den BUS
}
and this give next result:

Code: Alles auswählen

Init Network Card: ...
HW MAC:46:46:46:46:46:46:
SW MAC:1e:a:2b:2b:2d:4d:.
HW MAC:46:46:46:46:46:46:
ISR: 0x22
ISR: 0x0
CONFIG0: 0x0
CONFIG1: 0x0
CONFIG2: 0x0
CONFIG3: 0x0
 Init Ready!

-- Init RTL8019: ERROR !!! --
Nach oben

A.K.

  • Zitieren

Beitrag von A.K. » 19.01.2006, 21:58:43

I had to poll the ISA bus signal IO CH RDY to get the UM9008 to work. If done, it works fine though.

I did not find a way to work with delays in the register access functions, they were either too small or large enough to disturb the UM9008 (especially in case of the the ISR).
Nach oben

BritneyRocks

  • Zitieren

Beitrag von BritneyRocks » 23.05.2006, 21:46:20

:)
Nach oben

ExpertProfi

  • Zitieren

Beitrag von ExpertProfi » 02.04.2007, 22:12:22

PIN 70 at DM9008. The signal is SLOT.
On my card the pin was pulled high. (= 16 bit mode)
After removing the resistor SLOT is now LOW (= 8 bit bode) and now the ping works! (Essential to consider "Ethernet.zip" from A.K. !)
Nach oben

Antworten
  • Druckansicht

4 Beiträge • Seite 1 von 1

Zurück zu „AVR WebServer (alte Version)“



  • Foren-Übersicht
  • Alle Zeiten sind UTC+02:00
  • Alle Cookies löschen

Powered by phpBB® Forum Software © phpBB Limited

Deutsche Übersetzung durch phpBB.de

Datenschutz | Nutzungsbedingungen

 

 

sitemap  |    |  datenschutz   |  impressum