viakon 0 22 марта, 2023 Опубликовано 22 марта, 2023 · Жалоба Установлен на замену STM32. Через некоторое время обмен останавливается. Программа для STM отлажена. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 19 22 марта, 2023 Опубликовано 22 марта, 2023 · Жалоба 1 hour ago, viakon said: Программа для STM отлажена. Слишком много избыточной информации, глаза разбегаются. Нужна конкретика. И сократите эти полотнища кода до вменяемых размеров, чтобы вмещались в пост, пользуйтесь тегом spoiler. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Edit2007 3 22 марта, 2023 Опубликовано 22 марта, 2023 · Жалоба https://habr.com/ru/post/682172/ Почитайте, описаны некоторые косяки особенности GD применительно к Ethernet, правда для другой серии, но вдруг поможет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
viakon 0 22 марта, 2023 Опубликовано 22 марта, 2023 · Жалоба читал я эту статью, не мой случай. на PHY у меня идет 25МГц с MCO и берется не с PLL, а с тактового генератора. Так что микроконтроллер и PHY должны быть синхронны. И проблема у меня не потере пакетов, а в том что МАС виснет. Устройство пропадает из сети, нет пакетов от него (они генерятся устройством раз в 5 сек), нет пинга, нет приема пакетов на устройстве. Замена на STM32 помогает, все начинает стабильно работать. Т.е. дело именно в GD32. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dOb 10 22 марта, 2023 Опубликовано 22 марта, 2023 · Жалоба А кто вам сказал, что они программно совместимы? Я не сравнивал конкретно эту модель, но в других довольно много отличий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
viakon 0 22 марта, 2023 Опубликовано 22 марта, 2023 · Жалоба то что совместимость не 100% это очевидно. Но ведь, какое-то время устройство работает нормально. Потому и прошу помощи от тех кто уже прошел по этим граблям Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
viakon 0 23 марта, 2023 Опубликовано 23 марта, 2023 · Жалоба похоже встает передача. В таблице дескрипторов на передачу, все заняты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
viakon 0 23 марта, 2023 Опубликовано 23 марта, 2023 (изменено) · Жалоба переделал функцию ETH_TxPkt_ChainMode() в соответствии с примером из библиотеки от gigadevice. сделал так Спойлер /* When Tx Buffer unavailable flag is set: clear it and resume transmission */ if (ETH->DMASR & (ETH_DMASR_TUS | ETH_DMASR_TBUS)) { /* Clear TBUS ETHERNET DMA flag */ ETH->DMASR = ETH_DMASR_TUS | ETH_DMASR_TBUS; /* Resume DMA transmission*/ ETH->DMATPDR = 0; } раньше анализировался только флаг TBUS, стм-ке этого хватало. Пока тестирую, но вроде помогло Изменено 23 марта, 2023 пользователем viakon Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
viakon 0 29 марта, 2023 Опубликовано 29 марта, 2023 · Жалоба интересная особенность. на 10мбит DMA останавливается на передачу, на 100мбит по приему. Пока сделал рестарт МАС при возникновении останова. Как бы мне только ДМА перезапускать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 197 29 марта, 2023 Опубликовано 29 марта, 2023 · Жалоба 5 часов назад, viakon сказал: Как бы мне только ДМА перезапускать? Может лучше разобраться и устранить причины останова? До того, как начинать мастерить костыли... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
viakon 0 29 марта, 2023 Опубликовано 29 марта, 2023 · Жалоба В том то и дело что не понятно. останавливается DMA причина не ясна. В DMASR все хорошо, но DMA не работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 197 29 марта, 2023 Опубликовано 29 марта, 2023 · Жалоба DMA часто самопроизвольно останавливается из-за: 1. Обращения по недопустимому адресу (за пределами памяти или в область памяти, не поддерживающую DMA (не имеющую соединения с DMA-контроллером в матрице шин)). 2. Невозможности доступа к шине в течение N тактов арбитража (так как шина к этой памяти занята другими bus-masters, а у нашего bus-masters - слишком низкий приоритет). 3. Ухода в сон (режим пониженного потребления) того региона памяти, с которым работает DMA. 4. etc. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
viakon 0 7 апреля, 2023 Опубликовано 7 апреля, 2023 · Жалоба Такое впечатление что GD32 плохо работает с 10мбит полудуплекс. при подключении 100м фулл дуплекс. Передача не останавливается. Пока помимо рабочих пакетов, пингую железку два раза в миллисекунду, отвечает на все пинги Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться