Перейти к содержанию
    

Wiznet 5500 не отвечает

Добрый день! 
Имеется модуль Ethernet W5500, управляю им с ПЛИС. Хочу считать состояния регистров по SPI, но модуль молчит(
Например, пытаюсь считать RTR-регистр по адресу 0x001A, где по умолчанию должно быть значение D0. Перед тем как отправлять, делаю сброс через ногу, выведенную на разъем. Ниже прикрепляю диаграмму (синий - МOSI, желтый - SCLK, розовый - SCS, зеленый - MISO).
Подскажите, что я делаю не так? 

DSC07384.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Напишите по человечески что вы передаёте.

По идее должно быть адрес 2 байта, комманда 1, пустое место под данные 1байт. У вас на месте для данных какие то значения.

Вот как это делает фирменный драйвер:

#define _W5500_IO_BASE_              0x00000000
#define WIZCHIP_CREG_BLOCK          0x00     //< Common register block

#define RTR                (_W5500_IO_BASE_ + (0x0019 << 8) + (WIZCHIP_CREG_BLOCK << 3))

Т.е. RTR =0x 19 00

#define getRTR() \
        ((WIZCHIP_READ(RTR) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(RTR,1)))

Т.е. 0x 19 00 00

Может конечно я чего то не догоняю но драйвер вроде делает так.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Никогда эту штуку не использовал.

Просто пробежал по datasheetу.

Пишут что W5500 поддерживает два режима SPI 0 и 3, в обоих случаях данные линий фиксируются по положительному фронту CLK.

Т.е. меняться данные должны по отрицательному.

На осциллограмме вижу что одновременно с первым передним фронтом CLK меняется и MOSI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

 

11 hours ago, MegaVolt said:

Напишите по человечески что вы передаёте.

По идее должно быть адрес 2 байта, комманда 1, пустое место под данные 1байт. У вас на месте для данных какие то значения.

Вот как это делает фирменный драйвер:

#define _W5500_IO_BASE_              0x00000000
#define WIZCHIP_CREG_BLOCK          0x00     //< Common register block

#define RTR                (_W5500_IO_BASE_ + (0x0019 << 8) + (WIZCHIP_CREG_BLOCK << 3))

Т.е. RTR =0x 19 00

#define getRTR() \
        ((WIZCHIP_READ(RTR) << 8) + WIZCHIP_READ(WIZCHIP_OFFSET_INC(RTR,1)))

Т.е. 0x 19 00 00

Может конечно я чего то не догоняю но драйвер вроде делает так.

 

Прикрепляю фото с нулевыми данными. Передаю значение 00000000_00011010_00000001_00000000, где биты

[31:16] - это адрес считываемого регистра,

[15:8] - контрольный байт:
-  нули в [15:11] означают, что обращаемся к общему регистру (есть ещё регистры для настройки каждого сокета)
- "0" в бите [10] означает, что режим "чтение"  
- "01" в [9:8] означает что в кадре только 1 байт данных ("Fixed Data Length Mode , 1 Byte Data Length (N = 1)")

[7:0] - байт данных в режиме записи.

DSC07386.jpg

 

Изменено пользователем Faton_11

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, Faton_11 сказал:

Прикрепляю фото с нулевыми данными. Передаю значение 00000000_00011010_00000001_00000000, где биты

Вам же уже сказали что у Вас защёлкиваются левые данные по первому клоку. Неужто не видите?  :unknw:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, zombi said:

Никогда эту штуку не использовал.

Просто пробежал по datasheetу.

Пишут что W5500 поддерживает два режима SPI 0 и 3, в обоих случаях данные линий фиксируются по положительному фронту CLK.

Т.е. меняться данные должны по отрицательному.

На осциллограмме вижу что одновременно с первым передним фронтом CLK меняется и MOSI.

с задним фронтом же меняется. извиняюсь за качество фото: камера не очень. но если и по спаду защелкивать, то снова ничего( 

DSC07385.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, Faton_11 сказал:

с задним фронтом же меняется. извиняюсь за качество фото: камера не очень. но если и по спаду защелкивать, то снова ничего( 

А разве чип это умеет?? Вы уверены? Никогда не встречал чипов умеющих защёлкивать или по фронту или по спаду. Обычно - или то или другое.

И как вы этого добиваетесь (выбора чем защёлкивать)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 minutes ago, jcxz said:

А разве чип это умеет?? Вы уверены? Никогда не встречал чипов умеющих защёлкивать или по фронту или по спаду. Обычно - или то или другое.

И как вы этого добиваетесь (выбора чем защёлкивать)?

в 1м бите косяк, теперь вижу. но теперь-то что  неправильно, все равно не понимаю 

DSC07387.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Faton_11 said:

 - "01" в [9:8] означает что в кадре только 1 байт данных ("Fixed Data Length Mode , 1 Byte Data Length (N = 1)")

попробуйте "00" вместо "01" поскольку всё равно используете управление SCSn

19 hours ago, Faton_11 said:

Перед тем как отправлять, делаю сброс через ногу, выведенную на разъем.

длительность импульса сброса >= 500 us ?

после сброса делаете паузу >= 1 ms ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 10/2/2019 at 1:40 PM, MegaVolt said:

Моё сообщение проигнорировали?

Вам ведь ответ был самому первому) а знание того, что фирменный драйвер делает, для  меня ясности не очень добавило( 

On 10/2/2019 at 2:08 PM, zombi said:

попробуйте "00" вместо "01" поскольку всё равно используете управление SCSn

длительность импульса сброса >= 500 us ?

после сброса делаете паузу >= 1 ms ?

в общем, Вы были правы. Это все кривой сброс, теперь, кажется, отвечает. Спасибо! =)

и спасибо всем за ответы!=) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...