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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> W5300 - проблемы с подключением
nkie
сообщение Sep 22 2010, 11:38
Сообщение #31


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 29-01-09
Пользователь №: 44 114



Господа одноформчане, вопрос по W5300. Начальник просит сконектить его с ПЛИС Cyclone III. Как вообще будет выглядеть такая реализация, и на сколько сложнее это будет сделать, чем с каким либо процом. По-тому как мне кажется это "несколько" геморно будет...
Go to the top of the page
 
+Quote Post
Nikolay96
сообщение Oct 1 2010, 07:17
Сообщение #32


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 27-08-07
Из: Санкт-Петербург
Пользователь №: 30 096



Здравствуйте!

Использую эту мс с Cyclone III, и со Stratixom III (правда, только UDP). Проблем нет. Связь на veriloge писать, конечно, гемройней, чем на C. Макс скорость передачи 45 Мб/сек (по документации 50).
Go to the top of the page
 
+Quote Post
hitower1
сообщение Oct 15 2010, 18:12
Сообщение #33


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 16-12-05
Пользователь №: 12 301



nkie:
Как вариант, чтобы не делать кучу конечных автоматов для управления WIZNET, используйте софтверный процессор в ПЛИС и будит Вам счастье.

Сам использовал связку WIZNET + MEGA128 + ПЛИС примеры на С для меги есть у производителя на сайте.
Все завелось с первого раза.
Go to the top of the page
 
+Quote Post
Stirliz85
сообщение Oct 23 2010, 07:52
Сообщение #34





Группа: Участник
Сообщений: 10
Регистрация: 24-06-10
Пользователь №: 58 129



если не силен в программировании, то для начала можно каким-нибудь снифером пакеты делать, например CommView - кстате, очень удобная штука пакеты в сети просматривать.
Go to the top of the page
 
+Quote Post
lisstret
сообщение Dec 19 2010, 21:07
Сообщение #35


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 10-06-10
Из: Владивосток
Пользователь №: 57 835



Цитата
Сам использовал связку WIZNET + MEGA128 + ПЛИС


А зачем тут ПЛИС, если мегой визнет управляется? или ПЛИС на какие то другие нужды?
Go to the top of the page
 
+Quote Post
A.Sergey
сообщение Mar 26 2011, 06:26
Сообщение #36





Группа: Новичок
Сообщений: 1
Регистрация: 16-04-10
Пользователь №: 56 687



День добрый, коллеги!
У меня такой вопрос по подключению W5300 и микроконтроллера MSP430F5419A:

Подключил W5300 к MSP430F5419A в режиме прямого доступа к памяти (direct address mode) c шириной шины 8бит (8 Bit data bus width). Попробовал считать MR-регистр (mode register) по адресу 0x000 (MR0) и 0x001 (MR1) - возвращает 0x3800, т.е. что и должен. Пробежался по другим регистрам - возвращает ноль, глянул документацию на момент состояния регистров после сброса - так и должно быть.

Кой чего я не понял. В даташите есть такая фраза:
Physical Address of W5300 Reg = Base Address of T.M.S + Address offset of W5300 Reg (раздел 3, стр.24)

Смотрю дальше (раздел 4, стр 45):
For convenience, we assume the Base Address(BA) of T.M.S is 0x08000, and BA of the Physical Address of W5300 Register is 0x08000.
Т.е. для удобства приняли базовый адрес равным 0x08000, к которому прибавляют сдвиг (offset). Но адрес не может быть больше 10бит (0x3FF) как физически, так и программно (адресное пространство 0x000-0x3FF полностью под регистрами).

Как я понял, порядок чередования байтов применим в данном случае только к регистрам (не к адресам).
The byte ordering of W5300 registers is big-endian – low address byte is used as the most significant byte.

Попробовал записать - установить бит RST в MR1 (старший 7-й бит по адресу 0x001). Не перезагрузился камушек.

Такое ощущение, что при записи сдвигается адрес на 1, хотя при пошаговой отладке отчетливо видно, что на линии адреса выставляются нужные значения. Теряюсь в догадках, читаю даташит.

Код
        LANdata_in();
        getMR[0] = LANdata_RD(MR0);    //0x38 - ok
        getMR[1] = LANdata_RD(MR1);    //0x00 - ok
                
        //Setting SHAR - Source Hardware Address register
        LANdata_out();
        LANdata_WR(SHAR0, mac[0]);    // 0x00
        LANdata_WR(SHAR1, mac[1]);    // 0x08
        LANdata_WR(SHAR2, mac[2]);    // 0xDC
        LANdata_WR(SHAR3, mac[3]);    // 0x11
        LANdata_WR(SHAR4, mac[4]);    // 0x22
        LANdata_WR(SHAR5, mac[5]);    // 0x86

        //Reading SHAR - Source Hardware Address register
        LANdata_in();
        getMAC[0] = LANdata_RD(SHAR0);    // 0x00
        getMAC[1] = LANdata_RD(SHAR1);    // 0x00
        getMAC[2] = LANdata_RD(SHAR2);    // 0x08
        getMAC[3] = LANdata_RD(SHAR3);    // 0xDC
        getMAC[4] = LANdata_RD(SHAR4);    // 0x11
        getMAC[5] = LANdata_RD(SHAR5);    // 0x22
                                    // where is 0x86?
        
        //setting GAR - Gateway IP Address register
        LANdata_out();
        LANdata_WR(GAR0, ip[0]);    //192
        LANdata_WR(GAR1, ip[1]);    //168
        LANdata_WR(GAR2, ip[2]);    //1
        LANdata_WR(GAR3, ip[3]);    //86
        
        //Reading GAR - Gateway IP Address register
        LANdata_in();
        getIP[0] = LANdata_RD(GAR0);    // ?0
        getIP[1] = LANdata_RD(GAR1);    // ?192
        getIP[2] = LANdata_RD(GAR2);    // ?168
        getIP[3] = LANdata_RD(GAR3);    // ?1
                                // where is 86?


Если что - нога BIT16EN притянута к земле, т.е. 8бит ширина шины.
Если к адресу считываемого регистра прибавить 1, то все сдвигается вверх, как и должно, но SHAR5 и GAR3 занулены.

Устанавливал FIFO Swap Bit, записывая в MR1:

Код
        LANdata_in();
        getMR[0] = LANdata_RD(MR0);    //reset state 0x38
        getMR[1] = LANdata_RD(MR1);    //reset state 0x00

        LANdata_out();
        LANdata_WR(MR1, 0x39); //Trying to change MR0 register, writing to MR1!
        LANdata_WR(MR0, 0x00);        
        
        LANdata_in();
        getMR[0] = LANdata_RD(MR0);    //return 0x39
        getMR[1] = LANdata_RD(MR1);    //return 0x00


Бит судя по всему устанавливается. Результатов от этого ноль. Пробовал достучаться до софтовой перезагрузки (S/W Reset в MR1), но безрезультатно - попытка установить хоть какой-нибудь бит в MR1 всегда возвращает ноль.
Я вот думаю - может зря оставил Data[15:8] висеть в воздухе? Хотя по даташиту не требуют их притягивать - можно оставлять плавающими. одно расстройство, блин. Прям хоть перепаивай на шину 16бит.

Если нужно, вот подпрограммы записи/чтения данных и установки адреса.
Делал пока линейно, т.е. без указателей.

Код
void LANdata_in()
{
    P8OUT = 0x00;        //P8 reset
    P8DIR = 0x00;        //Data input
}

void LANdata_out()
{
    P8OUT = 0;        //P8 reset
    P8DIR = 0xFF;    //Data line D[0..7], IO
}

unsigned int LANdata_WR(unsigned int addr, unsigned int data8)
{
    LANaddr_WR(addr);    // write address
    
    clrLAN_CS;            // chip-select low
    clrLAN_WR;            // LAN-WR low
        
    P8OUT = data8;        // write 8-bit data
    
    setLAN_WR;            // LAN-WR high
    setLAN_CS;            // chip-select high
    
    LANaddr_WR(0x00);    // write 0 address to clear address bits
    
    return 1;
}

unsigned int LANdata_RD(unsigned int addr)
{
    unsigned int data_in;
    
    LANaddr_WR(addr);    // write address
    
    clrLAN_CS;            // chip-select low
    clrLAN_RD;            // LAN-WR low
        
    data_in = P8IN;        // read 8-bit data
    
    setLAN_RD;            // LAN-WR high
    setLAN_CS;            // chip-select high
    
    LANaddr_WR(0x00);    // write 0 address to clear address bits
    
    return data_in;
}

void LANaddr_WR(unsigned int address)
{
    unsigned short int addr_low=0, addr_high=0;
    
    addr_low = address & 0x00FF; //bit 7..0; P6.7..6.0
    addr_high = ((address & 0x0300) >> 5); //bit 9..8; P7.5..7.4,
    
    P6OUT = addr_low;
    P7OUT = P7OUT | addr_high;
    
    //return 1;
}


Ваши комментарии по проблеме, пожалуйста.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
lisstret
сообщение Mar 31 2011, 00:30
Сообщение #37


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 10-06-10
Из: Владивосток
Пользователь №: 57 835



2 A.Sergey
Цитата
Код
void LANaddr_WR(unsigned int address)
{
    unsigned short int addr_low=0, addr_high=0;
    
    addr_low = address & 0x00FF; //bit 7..0; P6.7..6.0
    addr_high = ((address & 0x0300) >> 5); //bit 9..8; P7.5..7.4,
    
    P6OUT = addr_low;
    P7OUT = P7OUT | addr_high;
    
    //return 1;
}


Зачем вы делаете операцию &? Как я понял вы дергаете ногами своего микроконтроллера. Соответсвенно регистры w5300 вы не отображали на адресное пространство управляющего проца. И зачем тут думать про смещение адресов w5300 в памяти? Хотя понял чтоб адрес не превышал 10 бит.

Вот строчка
Код
addr_high = ((address & 0x0300) >> 5);

по вашей схеме должно быть addr_high = ((address & 0x0300) >> 4);
надеюсь это поможет

Сообщение отредактировал lisstret - Mar 31 2011, 00:32
Go to the top of the page
 
+Quote Post
lisstret
сообщение Mar 31 2011, 04:19
Сообщение #38


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 10-06-10
Из: Владивосток
Пользователь №: 57 835



А вот у меня вот в чем проблема. Вообщем я подключил модуль wiz830 в direct mode, и сами регистры w5300 пытаюсь перенести в свое адресное пространство mega128. Включаю использование внешней памяти, и после этого контроллер mega128 сбрасывается на начало программы. В схеме показанно как подключил, все практически также как и в схемам производителя, только внешнюю память не ставил. Я вот и думал может это из-за нее. Хотя вроде стек держаться должен также в внутренней памяти. Есть железо WIZ200 с модулем в котором mega128 регистр 74AC573 и внешний срамчик. На нем все работает, как бы программу шил одну и ту же, что на своем макете что там.

Сообщение отредактировал lisstret - Mar 31 2011, 04:21
Прикрепленные файлы
Прикрепленный файл  _________MODULE_WIZ830MJ_.BMP ( 249.48 килобайт ) Кол-во скачиваний: 20
Прикрепленный файл  W5300_Drv_AVR_V1.1__.rar ( 213.11 килобайт ) Кол-во скачиваний: 28
 
Go to the top of the page
 
+Quote Post
#_Alec_#
сообщение May 31 2011, 07:24
Сообщение #39


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 25-01-10
Из: Москва
Пользователь №: 55 055



Здравствуйте!
У меня проблема с WIZ830MJ:
Подключен к контроллеру по 8ми битной шине.
Регистры читаются, настраиваются - все нормально.
Выполнил инициализацию для пинга - не пингуется.
Пинг разблокировал (вписал ноль).

При этом при подключении сетевого кабеля - не горит Link и Active тоже не горит sad.gif
Те не подает никаких признаков жизни. На свиче - этот кабель тоже не светится - даже не подмаргивает.

Вставил другой экземпляр WIZ830MJ - диоды стали моргать ( Link и Active одновременно) интервал где то секунда.
На свиче - тоже стал кабель моргать.
Инициализировал для пинга - не пингуется. Диоды продолжают моргать.

Пишу IP и остальные настройки сети пример:

pLan[W5300_SIPR0] = 192;
pLan[W5300_SIPR1] = 168;
pLan[W5300_SIPR2] = 137;
pLan[W5300_SIPR3] = 200;

и т.д.

Так же бывает при включении второго экземпляра - на нем диоды не подают признаков жизни - но на свиче - кабель подмаргивает - но уже не так периодически - те бывает проскакивает два моргания один за другим, потух, а потом опять по одному морганию, потух и т.д.

Сообщение отредактировал #_Alec_# - May 31 2011, 11:13
Go to the top of the page
 
+Quote Post
Tano
сообщение Jun 10 2011, 04:48
Сообщение #40


Местный
***

Группа: Свой
Сообщений: 286
Регистрация: 19-05-06
Пользователь №: 17 257



А кто-нибудь из Москвы или М.О. этим прибором занимается.
Нужна помощь.


--------------------
С уважением Tano
Go to the top of the page
 
+Quote Post
Tano
сообщение Jun 19 2011, 12:47
Сообщение #41


Местный
***

Группа: Свой
Сообщений: 286
Регистрация: 19-05-06
Пользователь №: 17 257



Нужна помощь по W5300.
Надо приделать W5300 к STM32F205 или STM32F207 не бесплатно.


--------------------
С уважением Tano
Go to the top of the page
 
+Quote Post
rezuk
сообщение Jun 19 2011, 18:20
Сообщение #42


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 26-01-11
Из: MOskow
Пользователь №: 62 489



А возможно ли читать регистры W5300 с компьютера по эзернету? Если возможно, то как?
Go to the top of the page
 
+Quote Post
rezuk
сообщение Jun 26 2011, 06:28
Сообщение #43


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 26-01-11
Из: MOskow
Пользователь №: 62 489



Цитата(rezuk @ Jun 19 2011, 22:20) *
А возможно ли читать регистры W5300 с компьютера по эзернету? Если возможно, то как?

Что, никто не ответит ?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 27 2011, 07:33
Сообщение #44


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (rezuk @ Jun 26 2011, 09:28) *
Что, никто не ответит ?
"В лоб" нельзя.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
rezuk
сообщение Jun 29 2011, 18:02
Сообщение #45


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 26-01-11
Из: MOskow
Пользователь №: 62 489



Цитата(Сергей Борщ @ Jun 27 2011, 11:33) *
"В лоб" нельзя.

как тогда прочесть регистры W5300, если она подключена к плис spartan3, в которой реализована только инициализация W5300?
Go to the top of the page
 
+Quote Post

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

 


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


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