Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

proteus ISIS :component RJ45

Status
Not open for further replies.

emna.riguen

Newbie level 4
Joined
Apr 7, 2011
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,310
hello
I did not find component RJ45 ISIS.
I download the library but it says " No model simulator "
that there is a solution??????????
thank you in advance 8O
 

je veux faire une connextion ethernet
le shéma comporte : PIC 18F4620, ENC28J60, RJ45

---------- Post added at 14:26 ---------- Previous post was at 14:24 ----------

I want to make an ethernet connection
The scheme embodies: PIC 18F4620, ENC28J60, RJ45
 

so you want to send data from your PIC to the Ethernet controller..?
have you find the models for these two components..?
PIC 18F4620, ENC28J60
 

yes, my problem and at the RJ45 connector
 

78_1302268333.jpg

76_1302268333.jpg
 

Hi
i'm using this scheme to provide my web server, but does not respond to ping. The code i'm using is as follows:

////////////////////////////////////////////////////////////////////////////////////////////////////////
//Este programa sirve para revisar la correcta conexión entre el PIC18F4620 y //
//el modulo ENC28J60, crea un WebServer en la direccion IP 192.168.1.50 //
//El cual muestra el siguiente mensaje "Test Conexión PIC18F4620 y ENC28J60" //
//También emula un puerto serial en el PC donde vamos viendo como se desarrolla el programa //
////////////////////////////////////////////////////////////////////////////////////////////////////////

#include <18f4620.h>
#fuses HS,MCLR,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOPBADEN,NOLVP,NOCPD,NODEBUG,NOWRT
#use delay(clock=20M)
#use rs232(baud=19200, xmit=PIN_C6, rcv=PIN_C7)

// Conexión entre el PIC18F4620 y el Modulo ENC28J60 (Se conecta directamente sin adaptador de voltajes).
// Se adjunta el datasheet del Modulo ENC28J60.

//#define PIN_ENC_MAC_SO PIN_C4 // Conectar con PIN MISO del ENC28J60.
//#define PIN_ENC_MAC_SI PIN_C5 // Conectar con PIN MOSI del ENC28J60.
//#define PIN_ENC_MAC_CLK PIN_C3 // Conectar con PIN SCK del ENC28J60.
//#define PIN_ENC_MAC_CS PIN_D1 // Conectar con PIN CS del ENC28J60.
//#define PIN_ENC_MAC_RST PIN_D0 // Conectar con PIN RST del ENC28J60.
//ESTOS PINES SE LO USA CON EL PIC18F2550
//efine PIN_ENC_MAC_INT PIN_C5 // Conectar con PIN INT del ENC28J60.
//efine PIN_ENC_MAC_WOL PIN_C4 // Conectar con PIN WOL del ENC28J60.
//ESTOS PINES SE LOS USA CON EL PIC18F4550
//#define PIN_ENC_MAC_INT PIN_B0 // Conectar con PIN INT del ENC28J60.
//#define PIN_ENC_MAC_WOL PIN_B1 // Conectar con PIN WOL del ENC28J60.

//Se definen los diferentes modos SPI en terminos de constantes
//nuestro PIC parece que solo funciona en los modos 1 y 3, aunque se supone que deben trabajar con cualquier modo
#define SPI_MODE_0 (SPI_L_TO_H | SPI_XMIT_L_TO_H)
#define SPI_MODE_1 (SPI_L_TO_H)
#define SPI_MODE_2 (SPI_H_TO_L)
#define SPI_MODE_3 (SPI_H_TO_L | SPI_XMIT_L_TO_H)

#define SS_PIN PIN_C0 //podemos coger cualquier pin, hemos cogido el RA0

#define STACK_USE_CCS_PICENS 1

#if STACK_USE_CCS_PICENS
#define STACK_USE_MCPENC 1
#endif
//Protocolos a utilizar.

#define STACK_USE_MCPENC TRUE
#define STACK_USE_ARP TRUE
#define STACK_USE_ICMP TRUE
#define STACK_USE_TCP TRUE

#include "tcpip/stacktsk.c"

#define MY_HTTP_SOCKET 80

int8 HTTPSocket=INVALID_SOCKET;
int val;
// Microchip VendorID, MAC: 00-04-A3-XX-XX-XX

void MACAddrInit(void)
{
MY_MAC_BYTE1=0x00;
MY_MAC_BYTE2=0x04;
MY_MAC_BYTE3=0xA3;
MY_MAC_BYTE4=0x00;
MY_MAC_BYTE5=0x00;
MY_MAC_BYTE6=0x01;
}

void IPAddrInit(void)
{
//Direccion IP
MY_IP_BYTE1=192;
MY_IP_BYTE2=168;
MY_IP_BYTE3=1;
MY_IP_BYTE4=50;

//Mascara de Subred
MY_MASK_BYTE1=255;
MY_MASK_BYTE2=255;
MY_MASK_BYTE3=255;
MY_MASK_BYTE4=0;

//Puerta de Enlace
MY_GATE_BYTE1=192;
MY_GATE_BYTE2=168;
MY_GATE_BYTE3=1;
MY_GATE_BYTE4=1;
}

void HTTPPut(char c)
{
TCPPut(HTTPSocket, c);
}

void HTTPTask(void)
{
static enum {HTTP_ST_CONNECT=0, HTTP_ST_WAIT_CONNECT=1, HTTP_ST_GET=2, HTTP_ST_PUT=3, HTTP_ST_DISCONNECT=4} state=0;
static TICKTYPE timeout_counter;
static char lc, lc2;
char c;
char content[250];

if (HTTPSocket==INVALID_SOCKET)
state=HTTP_ST_CONNECT;
else if (!TCPIsConnected(HTTPSocket))
state=HTTP_ST_WAIT_CONNECT;
else if (TickGetDiff(TickGet(), timeout_counter) > TICKS_PER_SECOND*60)
state=HTTP_ST_DISCONNECT;

switch(state)
{
case HTTP_ST_CONNECT:
HTTPSocket=TCPListen(MY_HTTP_SOCKET);
if (HTTPSocket!=INVALID_SOCKET)
{
//printf(usb_cdc_putc,"\r\nHTTP: Listening");
printf("\r\nHTTP: Listening");
state=HTTP_ST_WAIT_CONNECT;
timeout_counter=TickGet();
}
break;

case HTTP_ST_WAIT_CONNECT:
timeout_counter=TickGet();
if (TCPIsConnected(HTTPSocket))
{
state=HTTP_ST_GET;
printf("\r\nHTTP: Connected");
//printf(usb_cdc_putc,"\r\nHTTP: Connected");
}
break;

case HTTP_ST_GET:
if (TCPIsGetReady(HTTPSocket))
{
while (TCPGet(HTTPSocket, &c))
{
if ( (c=='\n') && (lc2=='\n') )
{
state=HTTP_ST_PUT;
//printf(usb_cdc_putc,"\r\nHTTP: Got Page Request");
printf("\r\nHTTP: Got Page Request");
}
lc2=lc;
lc=c;
}
}
break;

case HTTP_ST_PUT:

//Ponemos el conversor ADC a leer desde el pin 0 puerto A
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);

//La siguiente sentencia inicializa el Hardware SPI , con este PIC como master ponemos modo 1
//SPI_CLK_DIV_64 ponemos la velocidad del clock SPI--ponemos la velocidad mas baja
setup_spi(SPI_MASTER | SPI_MODE_1 | SPI_CLK_DIV_4);

while(1) {
val = read_adc(); //leemos el valor que vamos a enviar

output_low(SS_PIN); //esclavo, seleccionamos nivel bajo para seleccionar esclavo
delay_us(10); //give the slave time to notice this (may be unnecessary)

spi_write(val); //enviamos el valor

delay_us(10); //delay
output_high(SS_PIN); //liberamos esclavo

delay_ms(10);
}

if (TCPIsPutReady(HTTPSocket))
{
//printf(usb_cdc_putc,"\r\nHTTP: Putting Page Response");
printf("\r\nHTTP: Putting Page Response");
sprintf(content, "<HTML><HEAD><TITLE>WebServer PIC18F4620 ENC28J60</TITLE></HEAD><BODY><H1>TEST CONEXION PIC18F4620 y ENC28J60 POR Oscar Blazquez V1.0</H1>");
sprintf(&content[0]+strlen(content),"</BODY></HTML>");
printf(HTTPPut, "HTTP/1.1 200 OK\r\n");
printf(HTTPPut, "Content-Type: text/html\r\n");
printf(HTTPPut, "Content-Length: %u\r\n",strlen(content));
printf(HTTPPut, "\r\n");
//printf(HTTPPut, "%s", content);
printf(HTTPPut, "%s", val);
//printf(usb_cdc_putc,"\r\nHTTP: Flushing...");
printf("\r\nHTTP: Flushing...");
TCPFlush(HTTPSocket);
//printf(usb_cdc_putc,"\r\nHTTP: Flushed!");
printf("\r\nHTTP: Flushed!");
state=HTTP_ST_GET;
}
break;

case HTTP_ST_DISCONNECT:
if (TCPIsPutReady(HTTPSocket))
{
//printf(usb_cdc_putc,"\r\nHTTP: Force Disconnect");
printf("\r\nHTTP: Force Disconnect");
TCPDisconnect(HTTPSocket);
state=HTTP_ST_WAIT_CONNECT;
}
break;
}
}

void main(void)
{

MACAddrInit();
IPAddrInit();
StackInit();

while(TRUE)
{
StackTask();
HTTPTask();
}
}

Can you help to check the operation in proteus? When i compile it does not give me any error and the window tells me that it proteus up the NIC, but does not respond to ping.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top