Например TDA7294

Форум РадиоКот • Просмотр темы - W5500
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт июл 17, 2025 06:13:30

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: W5500
СообщениеДобавлено: Ср июл 31, 2024 22:28:53 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс янв 05, 2020 18:22:29
Сообщений: 52
Рейтинг сообщения: 0
Кто работал с этим чудом - отзовитесь пожалуста
Не могу с ним связаться по SPI
В лучшем случае после трансмита 4 байта единиц ....
Разное пробывал:
1 на микроконтроллере MI MO соединял - работает - дело в w5500
2 CS на землю бросал - не помогло
3 ресет w5500 делал
4 подключал с витой паре
5 другие регистры пробывал читать
...
ничего не помогло
А самое главное - как он должен реагировать когда режим SPI не правильный или когда формат команды не тот (тоже вроде всё перепробывал)?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500
СообщениеДобавлено: Чт авг 01, 2024 00:14:18 
Друг Кота

Карма: 2
Рейтинг сообщений: 67
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8126
Откуда: .ru
Рейтинг сообщения: 0
Кто работал с этим чудом - отзовитесь

я много лет работаю...
и тут...
https://www.radiokot.ru/forum/viewtopic ... 8&t=190542
и тут...
https://www.radiokot.ru/forum/viewtopic ... 3&t=166654
и повсюду))

никаких проблем нет)) W5500 работает идеально))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500
СообщениеДобавлено: Чт авг 01, 2024 06:17:26 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2917
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18739
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
VVVa писал(а):
Разное пробывал:
надо пробОвать, а не пробЫвать, тогда всё получится.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500
СообщениеДобавлено: Чт авг 01, 2024 13:45:45 
Прорезались зубы
Аватар пользователя

Карма: 5
Рейтинг сообщений: 30
Зарегистрирован: Пн июл 04, 2016 16:51:22
Сообщений: 223
Откуда: Россия, Омск
Рейтинг сообщения: 1
Вообще, w5500 по большей части беспроблемный чип. Читается-пишется на скоростях до 20МГц точно (быстрее не требовалось разгонять, но по Datasheet'у - до 33МГц (гарантированно) и 80МГц (теоретически)).
Для проверки пробуйте читать его регистр версии (0x39) - должно возвращаться значение "4"
Ну и вся посылка (для проверки) должна выглядеть так: (биты выталкиваются от старшего к младшему).
0x00, 0x39, 0x01, 0x00
Чип должен ответить:
0x??, 0x??, 0x??, 0x04
Не забудьте добавить слабую подтяжку линии MISO к земле, чтобы не ловить помехи. Ну и направление собственно пина проверьте. Сам на эти грабли наступал.


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: W5500
СообщениеДобавлено: Чт авг 01, 2024 20:07:50 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс янв 05, 2020 18:22:29
Сообщений: 52
Рейтинг сообщения: 0
судя по даташиту он работаеть должен с ARM_SPI_CPOL0_CPHA0 (The W5500 supports SPI Mode 0 and Mode 3)?

"Не забудьте добавить слабую подтяжку линии MISO к земле, чтобы не ловить помехи." - а почему это нужно ? резистор мегаомный? (может там открытый коллектор и к питанию нужно притянуть?)
"Ну и направление собственно пина проверьте." - замыкал на микроконтроллере MI и MO - получил что отправил вроде проверил

спасибо!

Добавлено after 37 minutes 11 seconds:
упс! работает ...
просто с частотой часиков в микроконтроллере намудрил...
утро вечера мудренеее...
Всем спасибо!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500
СообщениеДобавлено: Вт авг 06, 2024 20:14:00 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс янв 05, 2020 18:22:29
Сообщений: 52
Рейтинг сообщения: 0
проблемный чип!!!
Если получать и отправлять до 4 байт, то всё нормально (в заголовке размер указывается)
А вот если надо больше 4х байт за раз - то CS сигнал хардовый с STM32 почемуто ему не нравится, после него выдаёт бред...
Это все по 4 байта читают или у когото работает?

А не подскажите он DHCP поддерживает или нет? И что в него отправить чтоб автоматом IP с маской получал?


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: W5500
СообщениеДобавлено: Вт авг 06, 2024 21:07:59 
Грызет канифоль
Аватар пользователя

Карма: 3
Рейтинг сообщений: 69
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 262
Рейтинг сообщения: 0
DHCP это же протокол а не настройка. Хотя, если оно в ICMP умеет, то есть вероятность что и в DHCP тоже умеет. Надо в букваре смотреть.

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 1 июля 2025 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500
СообщениеДобавлено: Вт авг 06, 2024 22:31:57 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс янв 05, 2020 18:22:29
Сообщений: 52
Рейтинг сообщения: 0
просбома с CS решилась - просто програмно пин дёргаю ... работает
А вот DHCP ни в какую ...
Может оно ни у кого не работает?

Так TCP тоже протокол поверх сырых сокетов ... почему одни протоколы есть, а других нету


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500
СообщениеДобавлено: Ср авг 07, 2024 07:52:48 
Грызет канифоль
Аватар пользователя

Карма: 3
Рейтинг сообщений: 69
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 262
Рейтинг сообщения: 0
Так TCP тоже протокол поверх сырых сокетов ... почему одни протоколы есть, а других нету

Без DHCP жить можно а без TCP - нет. А внутри места, видимо, не так много. Я работал с W5300, но не было надобности в DHCP. Вот тут тема с вопросом про DHCP, посмотри, может чего интересного найдёшь.

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 1 июля 2025 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500
СообщениеДобавлено: Ср авг 07, 2024 12:12:27 
Друг Кота

Карма: 2
Рейтинг сообщений: 67
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8126
Откуда: .ru
Рейтинг сообщения: 1
HardWareMan писал(а):
ез DHCP жить можно а без TCP - нет.

ну я как то вот много лет уже живу без дебильного TCP ... и нормально так ))
:tea:

Добавлено after 1 minute 52 seconds:
А вот DHCP ни в какую ...

DHCP у W5500 нет... самому писать надо... а в чём проблема ? када мне надо было DHCP я писал...
:tea:

Добавлено after 3 minutes 50 seconds:
у меня вот много лет уже W5500 работает прекрасно...
Вложение:
схема.jpg [184.61 KiB]
Скачиваний: 75

никаких проблем нет... от слова ваще))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500
СообщениеДобавлено: Ср авг 07, 2024 14:42:09 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс янв 05, 2020 18:22:29
Сообщений: 52
Рейтинг сообщения: 0
roman.com!
Да Вы как я погляжу аскет... и даже каждый раз ip c маской вводить не ленитесь при перенастройке сети...
Может скажите почему ему хардовый CS не понравился с STM32F401CCU6?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500
СообщениеДобавлено: Ср авг 07, 2024 16:51:18 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6024
Откуда: Minsk
Рейтинг сообщения: 0
Спасибо, насмешил. Когда человек употребляет "вумное" слово, не понимая его смысл - хороший ржач.
Но телепатически я уловил содержимое: имел в виду "эстет". :))

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500
СообщениеДобавлено: Чт авг 08, 2024 10:48:08 
Друг Кота

Карма: 2
Рейтинг сообщений: 67
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8126
Откуда: .ru
Рейтинг сообщения: 0
- он имел в виду "аскет".

- я не аскет.. я продвинутый пользователь))

- DHCP есть в роутере)) одного DHCP в сети достаточно... самому писать DHCP не надо.
VVVa писал(а):
Может скажите почему ему хардовый CS не понравился с STM32F401CCU6?

у W5500 есть разные форматы работы по SPI...
формат работы по SPI задаётся в настройках W5500...
Вложение:
Screenshot_1.jpg [62.56 KiB]
Скачиваний: 69

VVVa писал(а):
просбома с CS решилась - просто програмно пин дёргаю ... работает

- я использую формат работы по SPI с управлением по CS...
VVVa писал(а):
CS на землю бросал - не помогло

в этом режиме CS на землю бросал нельзя...
в этом режиме надо после передачи каждой команды поднимать CS... (устанавливать высокий уровень на выводе CS).
высокий уровень на выводе CS модуль W5500 воспринимает как окончание команды...
проверьте формат работы по SPI в своей программе...
:tea:

Добавлено after 4 minutes 23 seconds:
чтоб не ходить далеко...
вот рабочая схема...
Вложение:
схема.jpg [95.75 KiB]
Скачиваний: 71

вот рабочая программа...
-инициализация W5500:
Код:
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////W5500 PHY:
//перед настройкой PHY сделать программный Cброс PHY:
PORTB.2=0;        // SS W5500
tx=0x00; SPI(); tx=0x2E; SPI(); tx=0x04; SPI();  // Address Registers + Control Registers
tx=0x00; SPI();   // Data  -0x00
tx=0x00; SPI();   // Data  -0x00
PORTB.2=1;        // SS W5500
//пишем режим PHY:
// 1...  ....  RST - 1.
// .1..  ....  программная настройка режима - 1
// ..0.  ....  10BT Full-duplex, Auto-negotiation disabled / Power Down mode
// ...0  ....  10BT Full-duplex, Auto-negotiation disabled / Power Down mode
// ....  1...  10BT Full-duplex, Auto-negotiation disabled / Power Down mode
// ....  .1..  Duplex Status
// ....  ..0.  Speed Status
// ....  ...1  Link Status
PORTB.2=0;        // SS W5500
tx=0x00; SPI(); tx=0x2E; SPI(); tx=0x04; SPI();  // Address Registers + Control Registers 
tx=0xC8; SPI();   // Data -0xC8 (10 Мбит/с, Full-duplex) 
tx=0x00; SPI();   // Data -0x00                     
PORTB.2=1;        // SS W5500
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////Socket_0 - MACRAW:
//протокол: пишем протокол MACRAW Socket_0:
PORTB.2=0;        // SS W5500
tx=0x00; SPI(); tx=0x00; SPI(); tx=0x0C; SPI();  // Address Registers + Control Registers   
tx=0x04; SPI();   // Data -0x04 // MACRAW // Socket_0
PORTB.2=1;        // SS W5500
//пишем команду OPEN Socket_0:
PORTB.2=0;        // SS W5500
tx=0x00; SPI(); tx=0x01; SPI(); tx=0x0C; SPI();  // Address Registers + Control Registers   
tx=0x01; SPI();   // Data -0x01 (команда OPEN) 
PORTB.2=1;        // SS W5500
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////Socket_0 - INT:
//INT Mask Socket_0: пишем INT Mask Socket_0: (SIMR) 0x0018
PORTB.2=0;        // SS W5500
tx=0x00; SPI(); tx=0x18; SPI();  tx=0x04; SPI(); // Address Registers + Control Registers   
tx=0x01; SPI();   // Data 0x01 -Enable INT Socket_0.
PORTB.2=1;        // SS W5500
//INT Mask Socket_0 RECV: пишем INT Mask завершение приёма Socket_0: (Sn_IMR) 0x002C
PORTB.2=0;        // SS W5500
tx=0x00; SPI(); tx=0x2C; SPI(); tx=0x0C; SPI();  // Address Registers + Control Registers   
tx=0x04; SPI();   // Data 0x04 -INT Mask завершение приёма.
PORTB.2=1;        // SS W5500
}
////////////////////////////////////////////////////////////////////////////////

и т.д.
:tea:

- тут я использую режим MACRAW.
в этом режиме W5500 тупо принимает и отправляет Ethernet пакеты.
больше ничего W5500 в этом режиме не делает))
а все Интернет протоколы у меня зашиты в МК типа ATmega328.

- другие режимы есть по ссылке что я давал выше...
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500
СообщениеДобавлено: Сб авг 10, 2024 17:44:44 
Прорезались зубы
Аватар пользователя

Карма: 5
Рейтинг сообщений: 30
Зарегистрирован: Пн июл 04, 2016 16:51:22
Сообщений: 223
Откуда: Россия, Омск
Рейтинг сообщения: 0
Может скажите почему ему хардовый CS не понравился с STM32F401CCU6?


У меня работает с аппаратным /CS. Разве что он включается-выключается при включении-выключении бита разрешения работы SPI-блока в контроллере.

Поднял исходники, мигрирующие по разным чипам, с которыми работал... и я отправляю данные в режиме VDM (Variable length Data Mode) и проблем нет.

Если что-то не работает - первым делом проверяйте код. А вообще обзаведитесь логическим анализатором, хотя бы простейшим, чтобы понимать, что происходит на шине.

DHCP - да, требуется программный, либо статика. А сам чип его не умеет делать (да и не надо).

Спойлер
Код:
volatile uint8_t TX_BUF_1[8];      // Заголовок и первый байт (если один)
volatile uint8_t RX_BUF_1[8];      // Буфер под ответ (если 1 байт данных)

void w5500_SPI_TXRX(uint16_t RamAddress, uint8_t Register, uint8_t RW, uint16_t DataSize, void *DataAddress) {
   Register = Register & 0x1F;
   RW = RW & 0x01;
   RX_BUF_1[3] = 0;
   TX_BUF_1[0] = (RamAddress >> 8);
   TX_BUF_1[1] = (RamAddress & 0xFF);
   TX_BUF_1[2] = (Register << 3) | (RW << 2);
   TX_BUF_1[3] = *((uint8_t *)DataAddress);
   SPI2->CR2 |= SPI_CR2_SSOE;            // Enable CS output.
   SPI2->CR1 |= SPI_CR1_SPE;            // Включаем SPI2
   DMA1->LIFCR = 0x0F600000;
   DMA1->HIFCR = 0x0000003D;
   // Отправляем заголовок и до 5 байт вслед за ним (требуется для отправки данных, которые передаются через стэк).
   // Требуется для передачи настроек.
   if (DataSize == 1) {
      DMA1_Stream4->NDTR = 4;
      DMA1_Stream3->NDTR = 4;
   } else if (DataSize == 2) {
      DMA1_Stream4->NDTR = 5;
      DMA1_Stream3->NDTR = 5;
      DataAddress++;
      TX_BUF_1[4] = *((uint8_t *)DataAddress);
      DataSize--;
   } else if (DataSize == 4) {
      DataAddress++;
      TX_BUF_1[4] = *((uint8_t *)DataAddress);
      DataAddress++;
      TX_BUF_1[5] = *((uint8_t *)DataAddress);
      DataAddress++;
      TX_BUF_1[6] = *((uint8_t *)DataAddress);
      DMA1_Stream4->NDTR = 7;
      DMA1_Stream3->NDTR = 7;
      DataSize -= 3;
   }
   DMA1_Stream4->M0AR = (uint32_t)&(TX_BUF_1);
   DMA1_Stream3->M0AR = (uint32_t)&(RX_BUF_1);
   DMA1_Stream4->CR |= DMA_SxCR_MINC;
   DMA1_Stream3->CR |= DMA_SxCR_MINC;
   DMA1_Stream3->CR |= DMA_SxCR_EN;
   DMA1_Stream4->CR |= DMA_SxCR_EN;
   while (DMA1_Stream3->CR & DMA_SxCR_EN);
   while (DMA1_Stream4->CR & DMA_SxCR_EN);
   // Сбрасываем флаги
   DMA1->LIFCR = 0x0F600000;
   DMA1->HIFCR = 0x0000003D;
   if (!RW) {
      *((uint8_t *)DataAddress++) = RX_BUF_1[3];
   }
   DataAddress++;
   DataSize--;
   if (DataSize) {
      // Если более 1 байта данных - передача будет продолжена.
      DMA1_Stream4->NDTR = DataSize;
      DMA1_Stream3->NDTR = DataSize;
      if (RW) {
         // TX
         DMA1_Stream4->M0AR = (uint32_t)DataAddress;
         DMA1_Stream3->M0AR = (uint32_t)&(DevNull);
         DMA1_Stream4->CR |= DMA_SxCR_MINC;
         DMA1_Stream3->CR &= ~(DMA_SxCR_MINC);
      } else {
         // RX
         DevNull = 0;
         DMA1_Stream4->M0AR = (uint32_t)&(DevNull);
         DMA1_Stream3->M0AR = (uint32_t)DataAddress;
         DMA1_Stream4->CR &= ~(DMA_SxCR_MINC);
         DMA1_Stream3->CR |= DMA_SxCR_MINC;
      }
      DMA1_Stream3->CR |= DMA_SxCR_EN;
      DMA1_Stream4->CR |= DMA_SxCR_EN;
      while (DMA1_Stream3->CR & DMA_SxCR_EN);
      while (DMA1_Stream4->CR & DMA_SxCR_EN);
      
   }
   SPI2->CR1 &= ~(SPI_CR1_SPE);            // Disable SPI2
   SPI2->CR2 &= ~(SPI_CR2_SSOE);            // Disable CS output.
}

void w5500_Init(uint32_t IPAddr, uint32_t NetMask, uint32_t GW, uint8_t *Mac) {
   w5500_SetMac(Mac);
   w5500_SetLocalIP(IPAddr);
   w5500_SetNetMask(NetMask);
   w5500_SetGW(GW);
}
uint8_t Lan_Init(void) {
   uint32_t i;
   uint8_t v;
   GPIOE->BSRR = GPIO_BSRR_BR_14;
   LinkState = 0;
   SPI_MUTEX = 0;
   for (i=0;i<SOCKETS_COUNT;i++) {
      Sock[i].flags = SOCKET_NON_USABLE;
   }
   RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN;         // Enable DMA1
   RCC->APB1ENR |= RCC_APB1ENR_SPI2EN;         // Enable SPI2
   delay_ms(1);
   GPIOE->BSRR = GPIO_BSRR_BS_14;            // UnReset W5500
   delay_ms(2);
   v = w5500_GetVersion();
   if (v != 0x04) {
      console_timestamp();
      console_put("eth0: PHY not detected. Chip version: 0x");
      console_put_hex_byte(v);
      console_put(" != 0x04\r\n");
      return 0x02;
   }
   // Сброс чипа. Софт-ресет.
   v = MR_RST;
   i = 0;
   w5500_SetMode(v);
   while(v) {
      delay_us(100);               // Ожидаем окончания сброса кристалла.
      v = w5500_GetMode();            // Читаем состояние регистра
      v = (v & MR_RST);            // Выбираем только флаг сброса
      i++;                  // Отсчитываем время
      if (i > 100) {
                        // Если больше 100 мс - сбой.
         console_timestamp();
         console_put("eth0: Reset timeout.\r\n");
         break;
      }
   }
   if (v == MR_RST) {
      return 0x01;               // Если сброс не завершился - выходим с ошибкой
   }
   for (i=0;i<SOCKETS_COUNT;i++) {
      w5500_SetSocketMem(i, 2, 2);         // Устанавливаем стандартное распределение памяти
   }
   w5500_Init(ntohl(System_IPAddress), ntohl(System_NetMask), ntohl(System_GW), System_MACAddress);
   return 0;      // Временно-постоянно
}


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y