×

Внимание

Форум находится в режиме только для чтения.

Осваиваем Ethernet в STM32

11 года 8 мес. назад #3305 от C1oudStrife
C1oudStrife ответил в теме Re: Осваиваем Ethernet в STM32

1. Вы программу тестируете эмулятором или внутрисхемно?
2. Какая частота у внешнего кварца?

1)Внутрисхемно.
2)25 Мгц
11 года 8 мес. назад #3306 от Денис Ягов
Денис Ягов ответил в теме Re: Осваиваем Ethernet в STM32
у меня работает (скан приложил, это место проходит на ура).

Какой у вас процессор?
11 года 8 мес. назад - 11 года 8 мес. назад #3307 от C1oudStrife
C1oudStrife ответил в теме Re: Осваиваем Ethernet в STM32

Какой у вас процессор?

STM32F107VC

Странно, но если поставить
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ETH_MAC | RCC_AHBPeriph_ETH_MAC_Tx |
                        RCC_AHBPeriph_ETH_MAC_Rx, ENABLE);

после строчки  while(ETH_GetSoftwareResetStatus()==SET);
то он проходит этот цикл, но ETH->DMABMR все равно равен 0x20101
Как-то это не правильно
11 года 8 мес. назад #3308 от Денис Ягов
Денис Ягов ответил в теме Re: Осваиваем Ethernet в STM32

Странно, но если поставить
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ETH_MAC | RCC_AHBPeriph_ETH_MAC_Tx |
                        RCC_AHBPeriph_ETH_MAC_Rx, ENABLE);

после строчки  while(ETH_GetSoftwareResetStatus()==SET);
то он проходит этот цикл, но ETH->DMABMR все равно равен 0x20101
Как-то это не правильно


Значит ваш код где-то отключает таткирование Ethernet периферии. Посмотрите значения регистров RCC. до этой строки и после её исполнения.
11 года 8 мес. назад #3313 от C1oudStrife
C1oudStrife ответил в теме Re: Осваиваем Ethernet в STM32
Подключил наконец-то отладчик.
Приложил скрин до включения тактирования переферии и после, а также до ресета и после.

AHBENR не меняется...
11 года 8 мес. назад - 11 года 8 мес. назад #3314 от Денис Ягов
Денис Ягов ответил в теме Re: Осваиваем Ethernet в STM32
Добрый день.

Хорошо.
Я заметил, что вы используете файл sturtup_stm32f10x_cl.s

это означает, что вопросы тактирования процессора находятся в процедуре SystemInit() в файле system_stm32f10x.c

Эта процедура отвечает за переключение процессора на внешний кварц и выставление множителей частоты.

По умолчанию частота внешнего кварца HSE_Value установлена 8МГц в файле stm32f10x.h
код выглядит так:
#if !defined  HSE_Value
#ifdef STM32F10X_CL 
  #define HSE_Value    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
#else
  #define HSE_Value    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#endif /* STM32F10X_CL */
#endif /* HSE_Value */


Итого. В препроцессоре проекта есть определение STM32F10X_CL?
Если нет, то частота которой вы тактируете процессор примерно равна 72*3МГц.

Я в своём проекте не использовал Startup файл и не указывал STM32F10X_CL в препроцессоре.
Как у меня - приложил скан.

А как у вас?
Время создания страницы: 0.065 секунд
Работает на Kunena форум