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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版