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

 
 
> W5300 - проблемы с подключением
katz
сообщение Mar 19 2009, 09:00
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 18
Регистрация: 12-01-07
Пользователь №: 24 367



Чего-то не хочет она запускаться laughing.gif
Физ. уровень живой - 100 Мбит и дуплекс определяет, сигнал в линию дает. Шина с процессором - 16ти разрядная, Indirect Mode, регистры пишутся нормально, читаю из них, что записано, ID регистр для проверки считываю - там все правильно. Делаю HW сброс, потом SW сброс, потом пишу MAC и IP, пробую пинговать - не пингуется, хотя в даташите прямым текстом написано, что должна laughing.gif Рядом лежит давно и нормально работающая аналогичная схема с W5100 - там все ОК.
Может, кто сталкивался с похожими траблами - подскажите, плиз, "где у нее кнопка"!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
A.Sergey
сообщение Mar 26 2011, 06:26
Сообщение #2





Группа: Новичок
Сообщений: 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

Сообщений в этой теме
- katz   W5300 - проблемы с подключением   Mar 19 2009, 09:00
- - stefun   Точно такая же проблема + Еще не получается открыт...   Mar 20 2009, 02:25
|- - katz   Цитата(stefun @ Mar 20 2009, 05:25) Точно...   Mar 20 2009, 09:03
- - stefun   Заказывал у ЭФО, пришли на этой неделе. Маркировку...   Mar 20 2009, 21:24
- - stefun   У меня модуль WIZ830MJ, на микросхеме маркировка P...   Mar 22 2009, 23:18
- - Bar   Недавно запустил обмен данными по ethernet через w...   Mar 24 2009, 08:54
|- - katz   Цитата(Bar @ Mar 24 2009, 11:54) Недавно ...   Mar 24 2009, 11:45
|- - Димитрий   Ну вот, а мы его заложили в проект. Отпишитесь как...   Mar 31 2009, 16:10
|- - DeadMoroz   Цитата(Димитрий @ Mar 31 2009, 18:10) Ну ...   Apr 2 2009, 00:02
- - stefun   С микросхемой W5300 всё нормально, проблема была в...   Apr 1 2009, 21:35
- - katz   Спасибо всем за участие и содействие! Микруха...   Apr 3 2009, 15:37
- - DeadMoroz   У меня скорость примерно такая-же. Выжать не пытал...   Apr 5 2009, 23:42
- - Starick   Второй день мучаю кристалл, все зашибенно работает...   Apr 9 2010, 11:48
- - Starick   Спасибо всем ответившим , нашел в чем была пробл...   Apr 12 2010, 07:20
- - keks9357   помогите мне. у меня подключение inderect mode. не...   Apr 27 2010, 17:28
- - keks9357   регистр MR после сброса имеет адрес 0х0000 или 0х8...   Apr 28 2010, 11:34
- - Starick   Так на сайте производителя есть примеры с исходник...   Apr 29 2010, 10:32
- - keks9357   вся проблема состоит в том что я пишу на ассемблер...   Apr 29 2010, 10:56
- - Starick   Причин в глючной работе кристалла могут быть разли...   Apr 29 2010, 11:18
- - keks9357   Тогда такой вопрос. Для записи в регистры я должен...   Apr 29 2010, 18:49
- - Starick   Я так понял, ты не совсем понимаешь, как записыват...   Apr 30 2010, 09:26
- - keks9357   но перед записью я должен в MR( c адресом 0х00) ус...   Apr 30 2010, 11:56
- - Starick   Вообще-то, для начала нужно установить в регистре ...   Apr 30 2010, 12:13
- - keks9357   еще если кто в индеректе делал как вы загружали ос...   May 10 2010, 19:52
- - Stirliz85   Добрый день! Может кто подскажет - мучаюсь уже...   Jun 24 2010, 19:18
- - keks9357   друг. каким образом загружал регистры. напиши мне....   Sep 7 2010, 08:01
- - Stirliz85   Спасибо, разобрался сам... протокол UDP работает, ...   Sep 8 2010, 09:53
- - keks9357   расскажи в какие регистры че загружал   Sep 8 2010, 11:55
|- - chyvack   Киньте пожалуйста схемку для работы с этой микросх...   Sep 10 2010, 15:15
- - keks9357   друзья! как данные передать от компа в w5300?   Sep 13 2010, 10:21
- - nkie   Господа одноформчане, вопрос по W5300. Начальник п...   Sep 22 2010, 11:38
|- - Nikolay96   Здравствуйте! Использую эту мс с Cyclone III,...   Oct 1 2010, 07:17
- - hitower1   nkie: Как вариант, чтобы не делать кучу конечных а...   Oct 15 2010, 18:12
- - Stirliz85   если не силен в программировании, то для начала мо...   Oct 23 2010, 07:52
- - lisstret   ЦитатаСам использовал связку WIZNET + MEGA128 + ПЛ...   Dec 19 2010, 21:07
- - lisstret   2 A.Sergey ЦитатаКодvoid LANaddr_WR(unsigned i...   Mar 31 2011, 00:30
- - lisstret   А вот у меня вот в чем проблема. Вообщем я подключ...   Mar 31 2011, 04:19
- - #_Alec_#   Здравствуйте! У меня проблема с WIZ830MJ: Подк...   May 31 2011, 07:24
- - Tano   А кто-нибудь из Москвы или М.О. этим прибором зани...   Jun 10 2011, 04:48
- - Tano   Нужна помощь по W5300. Надо приделать W5300 к STM...   Jun 19 2011, 12:47
- - rezuk   А возможно ли читать регистры W5300 с компьютера п...   Jun 19 2011, 18:20
|- - rezuk   Цитата(rezuk @ Jun 19 2011, 22:20) А возм...   Jun 26 2011, 06:28
|- - Сергей Борщ   QUOTE (rezuk @ Jun 26 2011, 09:28) Что, н...   Jun 27 2011, 07:33
|- - rezuk   Цитата(Сергей Борщ @ Jun 27 2011, 11:33) ...   Jun 29 2011, 18:02
|- - Сергей Борщ   QUOTE (rezuk @ Jun 29 2011, 21:02) как то...   Jun 30 2011, 06:39
|- - #_Alec_#   Цитата(rezuk @ Jun 29 2011, 22:02) как то...   Jul 6 2011, 14:24
|- - rezuk   Цитата(#_Alec_# @ Jul 6 2011, 18:24) К пл...   Jul 6 2011, 17:29
|- - #_Alec_#   Цитата(rezuk @ Jul 6 2011, 21:29) нет, не...   Jul 7 2011, 07:11
|- - rezuk   Цитата(#_Alec_# @ Jul 7 2011, 11:11) Немн...   Jul 10 2011, 07:54
- - -= Александр =-   Обнаружил тут еще грабли: без мегомного резистора ...   Sep 4 2012, 13:18


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

 


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


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