你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f107+IP101GR 接收不到数据

[复制链接]
zzccww 提问时间:2018-2-24 18:30 /
本帖最后由 zzccww 于 2018-2-26 10:49 编辑

我用的stm32cubemx生成的代码,PHY已设置好,可是怎么都PING不通,轮询接收不到数据
PHY的寄存器操作正常,用的RMII,MCO输出正常,请大侠帮忙看看!
端口配置如下:
/* USER CODE BEGIN ETH_MspInit 0 */

  /* USER CODE END ETH_MspInit 0 */
    /* Enable Peripheral clock */
    __HAL_RCC_ETH_CLK_ENABLE();

    /**ETH GPIO Configuration   
    PC1     ------> ETH_MDC
    PA1     ------> ETH_REF_CLK
    PA2     ------> ETH_MDIO
    PA7     ------> ETH_CRS_DV
    PC4     ------> ETH_RXD0
    PC5     ------> ETH_RXD1
    PB11     ------> ETH_TX_EN
    PB12     ------> ETH_TXD0
    PB13     ------> ETH_TXD1
    */
    GPIO_InitStruct.Pin = GPIO_PIN_1;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_7;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_2;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  /* USER CODE BEGIN ETH_MspInit 1 */

main函数

int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_LWIP_Init();
  MX_USART1_UART_Init();

  /* Initialize interrupts */
  MX_NVIC_Init();
  /* USER CODE BEGIN 2 */
  udp_echoserver_init();

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {

  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
  MX_LWIP_Process();

  }
  /* USER CODE END 3 */

}





RX波形

RX波形

RX0和RX1波形

RX0和RX1波形

DV与RX0波形

DV与RX0波形

test.pdf

下载

177.22 KB, 下载次数: 40, 下载积分: ST金币 -1

收藏 评论20 发布时间:2018-2-24 18:30

举报

20个回答
zzccww 回答时间:2018-2-26 12:52:48
toofree 发表于 2018-2-26 12:22
图1刚算了一下,50M波特率。
你用100M示波器抓到这个波形的话,已经算很好了。实际的波形比示波器抓到的要 ...

已上传附件,请帮忙看看,谢谢!

test.rar

下载

2.36 KB, 下载次数: 48, 下载积分: ST金币 -1

wolfgang 回答时间:2018-2-26 13:13:11
我用的stm32cubemx生成的代码,PHY已设置好,可是怎么都PING不通,轮询接收不到数据
PHY的寄存器操作正常,用的RMII,MCO输出正常,请大侠帮忙看看!


PHY的初始化参数是否设置好?IP101GR 的几个重要参数设置要在Lwip中配置好。
特别是中断寄存器地址。不能ping多半是寄存器地址没在Lwip中配置好。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

七哥 回答时间:2018-2-26 12:22:42
本帖最后由 toofree 于 2018-2-26 12:29 编辑
zzccww 发表于 2018-2-26 11:48
在MCU端测量的,示波器带宽为100MHz,这种质量的信号,STM32能解析出来吗?

图1刚算了一下,50M波特率。
你用100M示波器抓到这个波形的话,已经算很好了。实际的波形比示波器抓到的要好,STM32应该能识别。
把你stm32cubemx的配置文件(.ioc文件)发个上来
衔胆栖冰 回答时间:2018-2-25 14:18:27
两块钱的PHY芯片好用吗
zero99 回答时间:2018-2-26 08:58:53
楼主你的图片上传失败了,可以看看这边如何正确上传(这样大家才能帮上忙):
https://www.stmcu.org.cn/module/forum/thread-612788-1-1.html
zzccww 回答时间:2018-2-26 10:50:06
哪位大侠帮忙看看,谢谢!
七哥 回答时间:2018-2-26 11:33:03
RX0在什么地方测量的,是在MCU数字信号端吗?
如果是的话,那么信号质量好差。示波器多少带宽的,建议200M以上带宽,至少不要低于100M

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

zzccww 回答时间:2018-2-26 11:48:24
toofree 发表于 2018-2-26 11:33
RX0在什么地方测量的,是在MCU数字信号端吗?
如果是的话,那么信号质量好差。示波器多少带宽的,建议200M ...

在MCU端测量的,示波器带宽为100MHz,这种质量的信号,STM32能解析出来吗?
zzccww 回答时间:2018-2-26 13:29:20
wolfgang2015 发表于 2018-2-26 13:13
我用的stm32cubemx生成的代码,PHY已设置好,可是怎么都PING不通,轮询接收不到数据
PHY的寄存器操作正常, ...

附图为PHY的配置

PHY的配置

PHY的配置
wolfgang 回答时间:2018-2-26 14:36:04
zzccww 发表于 2018-2-26 13:29
附图为PHY的配置

对照起数据手册来看的确某些寄存器值没有设置对
zzccww 回答时间:2018-2-26 17:12:53
wolfgang2015 发表于 2018-2-26 13:13
我用的stm32cubemx生成的代码,PHY已设置好,可是怎么都PING不通,轮询接收不到数据
PHY的寄存器操作正常, ...

已解决,谢谢!
zzccww 回答时间:2018-2-26 17:13:11
toofree 发表于 2018-2-26 12:22
图1刚算了一下,50M波特率。
你用100M示波器抓到这个波形的话,已经算很好了。实际的波形比示波器抓到的要 ...

已解决,谢谢!
zero99 回答时间:2018-2-26 17:49:37
zzccww 发表于 2018-2-26 17:13
已解决,谢谢!

怎么解决的啊,楼主分享下呢
zzccww 回答时间:2018-2-27 12:00:22
zero99 发表于 2018-2-26 17:49
怎么解决的啊,楼主分享下呢

网络速度配置有问题,不一致
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版