- Главная
- Форум
- Микроконтроллеры и Системы на Модуле (SOM)
- Микроконтроллеры
- Осваиваем Ethernet в STM32
Осваиваем Ethernet в STM32
- C1oudStrife
- Посетитель
12 года 2 мес. назад #3305
от C1oudStrife
2)25 Мгц
C1oudStrife ответил в теме Re: Осваиваем Ethernet в STM32
1)Внутрисхемно.1. Вы программу тестируете эмулятором или внутрисхемно?
2. Какая частота у внешнего кварца?
2)25 Мгц
- Денис Ягов
- Посетитель
12 года 2 мес. назад #3306
от Денис Ягов
Денис Ягов ответил в теме Re: Осваиваем Ethernet в STM32
у меня работает (скан приложил, это место проходит на ура).
Какой у вас процессор?
Какой у вас процессор?
- C1oudStrife
- Посетитель
12 года 2 мес. назад - 12 года 2 мес. назад #3307
от C1oudStrife
Странно, но если поставить
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ETH_MAC | RCC_AHBPeriph_ETH_MAC_Tx |
RCC_AHBPeriph_ETH_MAC_Rx, ENABLE);
после строчки while(ETH_GetSoftwareResetStatus()==SET);
то он проходит этот цикл, но ETH->DMABMR все равно равен 0x20101
Как-то это не правильно
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
Как-то это не правильно
Последнее редактирование: 12 года 2 мес. назад пользователем .
- Денис Ягов
- Посетитель
12 года 2 мес. назад #3308
от Денис Ягов
Значит ваш код где-то отключает таткирование Ethernet периферии. Посмотрите значения регистров RCC. до этой строки и после её исполнения.
Денис Ягов ответил в теме 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. до этой строки и после её исполнения.
- C1oudStrife
- Посетитель
12 года 2 мес. назад #3313
от C1oudStrife
C1oudStrife ответил в теме Re: Осваиваем Ethernet в STM32
Подключил наконец-то отладчик.
Приложил скрин до включения тактирования переферии и после, а также до ресета и после.
AHBENR не меняется...
Приложил скрин до включения тактирования переферии и после, а также до ресета и после.
AHBENR не меняется...
- Денис Ягов
- Посетитель
12 года 2 мес. назад - 12 года 2 мес. назад #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 в препроцессоре.
Как у меня - приложил скан.
А как у вас?
Хорошо.
Я заметил, что вы используете файл 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 в препроцессоре.
Как у меня - приложил скан.
А как у вас?
Последнее редактирование: 12 года 2 мес. назад пользователем .
Время создания страницы: 0.047 секунд