реклама на сайте
подробности

 
 
5 страниц V  « < 2 3 4 5 >  
Reply to this topicStart new topic
> Стек TCP IP для LPC2478
haker_fox
сообщение Jul 14 2011, 01:51
Сообщение #46


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (evgen2 @ Jul 13 2011, 06:37) *
Кейлы до сих пор не знают KS8721B, редиски

Вы читали ссылки, которые я приводил? У меня тоже KS8721 и я имел некоторое количество мучений с ней.
А вот на счет "до сих пор" Вы не правы. KS8721 - устаревший чип.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
evgen2
сообщение Jul 16 2011, 07:33
Сообщение #47


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(haker_fox @ Jul 14 2011, 05:51) *
Вы читали ссылки, которые я приводил? У меня тоже KS8721 и я имел некоторое количество мучений с ней.
А вот на счет "до сих пор" Вы не правы. KS8721 - устаревший чип.

Ссылки - это ветка "Olimex/Startetkit LPC23/4 + RMII KS8721BL, Баги в схеме :" ? Похоже читал, когда оно только началось и когда у меня были проблемы.

Допустим, KS8721 - устаревший чип, тогда всё равно редиски, потому как кроме DP83848C ничего другого не знают.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 16 2011, 12:43
Сообщение #48


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (evgen2 @ Jul 16 2011, 16:33) *
Ссылки - это ветка "Olimex/Startetkit LPC23/4 + RMII KS8721BL, Баги в схеме :" ? Похоже читал, когда оно только началось и когда у меня были проблемы.

Допустим, KS8721 - устаревший чип, тогда всё равно редиски, потому как кроме DP83848C ничего другого не знают.

Ну так я там же написал, что нужно поправить в примерах Кейла, чтобы стек заработал с BS8721.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
evgen2
сообщение Jul 17 2011, 22:18
Сообщение #49


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(haker_fox @ Jul 16 2011, 16:43) *
Ну так я там же написал, что нужно поправить в примерах Кейла, чтобы стек заработал с BS8721.

кхе-кхе
как оно может работать при наличии
if (((id1 << 16) | (id2 & 0xFFF0)) == DP83848C_ID) {
- совершенно непонятно

я кажется уже где постил, не могу найти где, повторю тут

Вариант для SK-MLPC1768, для SK-MLPC-237 делается аналогично

в EMAC.h добавляем
#define KS8721B_ID 0x00221610 /* PHY Identifier ks8721b */

в EMAC.c меняем void Init_EMAC(void) на int Init_EMAC(int mode)


Код
#define MCFG_CLK_DIV20      0x00000038  /* MDC = hclk / 20  */

// configure port-pins for use with LAN-controller,
// reset it and send the configuration-sequence
//mode = 0 - slow mode, 1 - fast
int Init_EMAC(int mode)
{
// Keil: function modified to access the EMAC
// Initializes the EMAC ethernet controller
  unsigned int regv,regv1,tout,id1,id2, moduleid, model=0, twait;

  twait = 0x100000;
  if(mode)  twait = 0x10000;

   /* Power Up the EMAC controller. */
   LPC_SC->PCONP |= 0x40000000;
  /* Enable P1 Ethernet Pins. */
    LPC_PINCON->PINSEL2 = 0x50150105;

#ifdef __LPC175x
  /* LPC175x devices, use software MII management. */  
  LPC_PINCON->PINSEL4 &= ~0x000F0000;
  LPC_GPIO2->FIODIR |= MDC;
#else
  /* LPC176x devices, no MDIO, MDC remap. */
  LPC_PINCON->PINSEL3 = (LPC_PINCON->PINSEL3 & ~0x0000000F) | 0x00000005;
#endif
  /* Reset all EMAC internal modules. */
  LPC_EMAC->MAC1 = MAC1_RES_TX | MAC1_RES_MCS_TX | MAC1_RES_RX | MAC1_RES_MCS_RX | MAC1_SIM_RES | MAC1_SOFT_RES;
  LPC_EMAC->Command = CR_REG_RES | CR_TX_RES | CR_RX_RES | CR_PASS_RUNT_FRM;
  
  /* A short delay after reset. */
  for (tout = 100; tout; tout--);

  /* Initialize MAC control registers. */
  LPC_EMAC->MAC1 = MAC1_PASS_ALL;
  LPC_EMAC->MAC2 = MAC2_CRC_EN | MAC2_PAD_EN;

  LPC_EMAC->MAXF = ETH_MAX_FLEN;
  LPC_EMAC->CLRT = CLRT_DEF;
  LPC_EMAC->IPGR = IPGR_DEF;


/*PCLK=18MHz, clock select=6, MDC=18/6=3MHz */  
   /* Enable Reduced MII interface. */
   LPC_EMAC->MCFG = MCFG_CLK_DIV20 | MCFG_RES_MII;
   for (tout = 100; tout; tout--);
   LPC_EMAC->MCFG = MCFG_CLK_DIV20;

  regv = read_PHY (PHY_REG_BMSR);
  regv1= read_PHY (PHY_REG_STS);


  /* Enable Reduced MII interface. */
  LPC_EMAC->Command = CR_RMII | CR_PASS_RUNT_FRM;


  /* Put the DP83848C in reset mode */
  write_PHY (PHY_REG_BMCR, 0x8000);

  /* Wait for hardware reset to end. */
  for (tout = 0; tout < 0x100000; tout++) {
    regv = read_PHY (PHY_REG_BMCR);
    if (!(regv & 0x8000)) {
      /* Reset complete */
      break;
    }
  }

  /* Check if this is a DP83848C PHY. */
  id1 = read_PHY (PHY_REG_IDR1);
  id2 = read_PHY (PHY_REG_IDR2);

  moduleid = ((id1 << 16) | (id2 & 0xFFF0));
  if ( moduleid == DP83848C_ID ) model=1;
  else if (  moduleid == KS8721B_ID ) model=2;

/* Use autonegotiation about the link speed. */
    write_PHY (PHY_REG_BMCR, PHY_AUTO_NEG);

    /* Wait to complete Auto_Negotiation. 0x10000*/
    for (tout = 0; tout < twait; tout++) {
      regv = read_PHY (PHY_REG_BMSR);
      if (regv & 0x0020) {
        /* Autonegotiation Complete. */
        break;
      }
      if (tout > 0x100 && (LPC_EMAC->MIND & MIND_NOT_VAL))
          break;
    }

    if (regv & 0x0020)
    {
      /* Autonegotiation Complete. */
    } else {
        return 1; /* Ωαßσδⁿ φσ ∩εΣΩδ■≈σφ */
    }


  /* Check the link status. */
  for (tout = 0; tout < 0x10000; tout++)
  {
//    regv = read_PHY (PHY_REG_STS);
//    if (regv & 0x0001) {
//      /* Link is on. */
//      break;
//    }
    regv = read_PHY (PHY_REG_BMSR);
    if (regv & 0x0004) {
      /* Link is on. */
      break;
    }

  }

/*****************/
if(model == 2)
{ regv = read_PHY (PHY_REG_STS2);
   regv=(regv>>2)&7;
  if ((regv==5)||(regv==6))
  {/* Full duplex is enabled. */
    LPC_EMAC->MAC2    |= MAC2_FULL_DUP;
    LPC_EMAC->Command |= CR_FULL_DUP;
    LPC_EMAC->IPGT     = IPGT_FULL_DUP;
  }
  else {
    /* Half duplex mode. */
    LPC_EMAC->IPGT = IPGT_HALF_DUP;
  }

  /* Configure 100MBit/10MBit mode. */
   if ((regv==1)||(regv==5))
  {/* 10MBit mode. */
    LPC_EMAC->SUPP = 0;
  } else {
    /* 100MBit mode. */
    LPC_EMAC->SUPP = SUPP_SPEED;
  }
/*****************/
} else {
     regv = read_PHY (PHY_REG_STS);

  /* Configure Full/Half Duplex mode. */
  if (regv & 0x0004) {
    /* Full duplex is enabled. */
    LPC_EMAC->MAC2    |= MAC2_FULL_DUP;
    LPC_EMAC->Command |= CR_FULL_DUP;
    LPC_EMAC->IPGT     = IPGT_FULL_DUP;
  }
  else {
    /* Half duplex mode. */
    LPC_EMAC->IPGT = IPGT_HALF_DUP;
  }

  /* Configure 100MBit/10MBit mode. */
  if (regv & 0x0002) {
    /* 10MBit mode. */
    LPC_EMAC->SUPP = 0;
  }
  else {
    /* 100MBit mode. */
    LPC_EMAC->SUPP = SUPP_SPEED;
  }
} /*****************/

  /* Set the Ethernet MAC Address registers */
  LPC_EMAC->SA0 = (MYMAC_1 << 8) | MYMAC_2;
  LPC_EMAC->SA1 = (MYMAC_3 << 8) | MYMAC_4;
  LPC_EMAC->SA2 = (MYMAC_5 << 8) | MYMAC_6;

  /* Initialize Tx and Rx DMA Descriptors */
  rx_descr_init ();
  tx_descr_init ();

  /* Receive Broadcast and Perfect Match Packets */
  LPC_EMAC->RxFilterCtrl = RFC_BCAST_EN | RFC_PERFECT_EN;                    

  /* Enable EMAC interrupts. */
  LPC_EMAC->IntEnable = INT_RX_DONE | INT_TX_DONE;

  /* Reset all interrupts */
  LPC_EMAC->IntClear  = 0xFFFF;

  /* Enable receive and transmit mode of MAC Ethernet core */
  LPC_EMAC->Command  |= (CR_RX_EN | CR_TX_EN);
  LPC_EMAC->MAC1     |= MAC1_REC_EN;

  return 0;
}


Сообщение отредактировал evgen2 - Jul 17 2011, 22:20
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 18 2011, 03:35
Сообщение #50


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (evgen2 @ Jul 18 2011, 07:18) *
кхе-кхе
как оно может работать при наличии
if (((id1 << 16) | (id2 & 0xFFF0)) == DP83848C_ID) {
- совершенно непонятно

На этот вопрос ответить не могу( Я выкладывал архив с рабочими драйверами. Вы можете скачать его.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Slowhan
сообщение Jul 19 2011, 07:19
Сообщение #51


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 20-06-11
Из: Ленино
Пользователь №: 65 788



В кейловском стеке есть функция создания сокета:
Код
U8 tcp_get_socket (
    U8   type,          /* Type of TCP socket. */
    U8   tos,           /* Type Of Service. */
    U16  tout,          /* Idle timeout period before disconnecting. */
    U16 (*listener)(    /* Function to call when a TCP event occurs. */
        U8  socket,     /* Socket handle of the local machine. */
        U8  event,      /* TCP event such as connect, or close. */
        U8* ptr,        /* Pointer to IP address of remote machine, */
                        /*   or to buffer containing received data. */
        U16 par ));     /* Port number of remote machine, or length */
                        /* of received data. */


U16 tout - время в секундах перед разъеденением. Т.е. если он 60, то через минуту сокета не станет. Мне нужно, чтобы сокет жил "вечно". Кто знает, как этого добиться? -1 не подходит.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 20 2011, 00:57
Сообщение #52


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (Slowhan @ Jul 19 2011, 16:19) *
U16 tout, /* Idle timeout period before disconnecting. */

U16 tout - время в секундах перед разъеденением. Т.е. если он 60, то через минуту сокета не станет. Мне нужно, чтобы сокет жил "вечно". Кто знает, как этого добиться? -1 не подходит.

Насколько я понял, это таймаут по "неиспользованию" сокета. Т.е. если Вы в течение времени tout не используете сокет, то он "растворяется". Используйте почаще, и он будет существовать rolleyes.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Slowhan
сообщение Jul 20 2011, 18:38
Сообщение #53


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 20-06-11
Из: Ленино
Пользователь №: 65 788



Цитата(evgen2 @ Jul 18 2011, 01:18) *
Код
/*PCLK=18MHz, clock select=6, MDC=18/6=3MHz */  
   /* Enable Reduced MII interface. */
   LPC_EMAC->MCFG = MCFG_CLK_DIV20 | MCFG_RES_MII;
   for (tout = 100; tout; tout--);
   LPC_EMAC->MCFG = MCFG_CLK_DIV20;
}

Какие PCLK=18MH, Вы о чем? Делите Вы не частоту тактирования периферии, а частоту внешнего генератора для PHY.

Сообщение отредактировал Slowhan - Jul 20 2011, 18:39
Go to the top of the page
 
+Quote Post
Slowhan
сообщение Jul 21 2011, 07:31
Сообщение #54


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 20-06-11
Из: Ленино
Пользователь №: 65 788



Цитата(haker_fox @ Jul 20 2011, 04:57) *
Насколько я понял, это таймаут по "неиспользованию" сокета. Т.е. если Вы в течение времени tout не используете сокет, то он "растворяется". Используйте почаще, и он будет существовать rolleyes.gif

Чудеса прямо, вчера отвечал в этой ветке - Вашего вопроса не видел! Или форум чудит, или я)) Тоже пришел к такому мнению, что надо использовать почаще, счас поставил 3600)

У меня такой вопрос - какую скорость можно развить на кейловском стеке и LPC23xx? Мне 3 МБайта надо, а пока и мегабайт не выходит. crying.gif

Сообщение отредактировал Slowhan - Jul 21 2011, 07:32
Go to the top of the page
 
+Quote Post
RA3WUM
сообщение Jul 25 2011, 21:05
Сообщение #55


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-02-07
Пользователь №: 25 578



Нет желания плодить темы, поэтому сдесь спрошу.
Посоветуйте tcp-ip стек на мелкий чип вроде lpc1114 или lpc1343.


--------------------
Мужество есть лишь у тех, кто ощутил сердцем страх!
В. Кипелов, Беги за солнцем.
Go to the top of the page
 
+Quote Post
Lotor
сообщение Jul 26 2011, 05:05
Сообщение #56


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Цитата(RA3WUM @ Jul 26 2011, 01:05) *
Нет желания плодить темы, поэтому сдесь спрошу.
Посоветуйте tcp-ip стек на мелкий чип вроде lpc1114 или lpc1343.

uIP наверное.


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Jul 26 2011, 07:26
Сообщение #57


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



Цитата
Посоветуйте tcp-ip стек на мелкий чип вроде lpc1114 или lpc1343.


А что вы от стека ходите ??? я так понимаю вам нужен PPP ? так как мак контроллеров нету ? или будет МАС c SPI ?, может лучше WizNET ?
Go to the top of the page
 
+Quote Post
RA3WUM
сообщение Jul 26 2011, 20:34
Сообщение #58


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-02-07
Пользователь №: 25 578



Цитата(MALLOY2 @ Jul 26 2011, 10:26) *
А что вы от стека ходите ??? я так понимаю вам нужен PPP ? так как мак контроллеров нету ? или будет МАС c SPI ?, может лучше WizNET ?

Хочу mp3-аудиопоток по http запихивать в декодер VS1053, скорость соответственно 64-192 кБит\с.
Если говорить о физическом уровне то это wi-fi модуль с SPI.

Сообщение отредактировал RA3WUM - Jul 26 2011, 20:35


--------------------
Мужество есть лишь у тех, кто ощутил сердцем страх!
В. Кипелов, Беги за солнцем.
Go to the top of the page
 
+Quote Post
MiDV
сообщение Jul 29 2011, 07:23
Сообщение #59


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 7-06-08
Пользователь №: 38 119



Посоветуйте, плиз, литературу по прикручиванию lwip к юкосу. все ссылки, которые вроде как полезные - недоступны(((. А на тех, что доступны - только общая информация, мало мне подходящая. Мне хотя бы одним глазком на код взглянуть...))) и то хлеб. был на саванне, lwip.wikia.com, родной странице lwip. Да и столкнулся с проблемой источников - их раз-два и обчелся(((
Go to the top of the page
 
+Quote Post
glonium
сообщение Aug 6 2011, 17:20
Сообщение #60


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 27-05-11
Пользователь №: 65 303



Доброго времени суток народ!
И вот наконец после долго перерыва удача получилоси найти и собрать простой пример с NicheLite !
Заработал пинг и http но начав разбираться в куче библиотек данной системы глубоко увяз в куче макросов и определений! так к сожалению и не распутал этот пример!
Большая просьба народ помогите с литературой пожалуйста! Желательно на Русском!
Заранее спасибо!

Кстати поясните пожалуйста лицензию NicheLite я что то не понял из license.h в двух словах что можно а чего нет!
Go to the top of the page
 
+Quote Post

5 страниц V  « < 2 3 4 5 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 04:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01474 секунд с 7
ELECTRONIX ©2004-2016