Страница 1 из 1

STM32 (Cortex-M3) + свитч по MII

Добавлено: Вт сен 27, 2011 08:47:31
pulo
Здравствуйте.
Есть устройство stm32f107+KSZ8993M, свитч подключен по MII собственно вопрос, что это значит и как с ним общаться? покурил даташит к свитчу, просветления не достиг, куча регистров для разных целей, а где их объявлять и как связать с устройством я не вкурил, из гугла понял, что по шине MDC выполняется синхронизация(или переключение чтение/запись), а по шине MDIO выполняется передача информаци, может кто подскажет как оно работает или где искать?

Re: STM32 (Cortex-M3) + свитч по MII

Добавлено: Вт сен 27, 2011 09:52:12
Satyr
Ессно про обмен по MDI интерфейсу читать в даташите к stm32f107.
А что в какие регистры и зачем - в даташите на KSZ8993M

Как именно работает MDI париться нет необходимости. Идеология как у I2C, в реализации несколько иначе.

Тупо все регистры прописывать нет необходимости. См. на занчения по умолчанию после резета. Думаю, там > 90% уже будут необходимые для большинства случаев.

Re: STM32 (Cortex-M3) + свитч по MII

Добавлено: Вт сен 27, 2011 10:10:04
pulo
Разбираюсь с даташитом МК, единственное не понял, откуда МК узнает о регистрах свитча?

Re: STM32 (Cortex-M3) + свитч по MII

Добавлено: Вт сен 27, 2011 10:15:04
Satyr
pulo писал(а):Разбираюсь с даташитом МК, единственное не понял, откуда МК узнает о регистрах свитча?
Ни откуда он о них не знает.
У него лишь есть связь с интерфейсом свича, через который можно эти регистры менять.

"Знать" их и конфигурировать - чисто твоя задача. Поищи примеры под STM32 чего нибудь с ethernet'ом. Внутреннего PHY там нет, так что полюбому будет по MII подключен Ehternet PHY и хоть какой то обмен с ним по MDIO.

Re: STM32 (Cortex-M3) + свитч по MII

Добавлено: Вт сен 27, 2011 10:19:34
Satyr
Собсна, 40 секунд поисков.

см в библиотеке в stm32_eth.h функции:

u16 ETH_ReadPHYRegister(u16 PHYAddress, u16 PHYReg);
uint32_t ETH_WritePHYRegister(u16 PHYAddress, u16 PHYReg, u16 PHYValue);

Re: STM32 (Cortex-M3) + свитч по MII

Добавлено: Вт сен 27, 2011 10:36:40
pulo
Это да, видел данные функции, пытался понять как они работаю с шиной, но все корни уходят к тому, что некую структуру (ETH_TypeDef) натягивают на область памяти со смещением от PERIPH_BASE и производят чтение/запись в эту область, только как производят связывание памяти с шиной?

Re: STM32 (Cortex-M3) + свитч по MII

Добавлено: Вт сен 27, 2011 10:53:21
Satyr
Оно тебе надо ? :))
Если надо - открывай даташит и внимательно смотри карту памяти и принципы работы с периферией вообще в STM32.

В Cortex-M3 нет портов ввода-вывода, какими они были привычны в x86. Абсолютно все регистры memory mapped

Re: STM32 (Cortex-M3) + свитч по MII

Добавлено: Вт сен 27, 2011 11:01:43
pulo
Satyr, большое спасибо за ответы :) , действительно, после x86 довольно непривычно, буду разбираться со структурой памяти, точнее тем, куда чего писать.

Re: STM32 (Cortex-M3) + свитч по MII

Добавлено: Вт сен 27, 2011 11:10:41
Satyr
Короче, некоторые адреса в памяти - и есть регистры переферии.
описываешь структуру в той последовательности, что регистрый у девайса, ставишь адрес структуры на адрес начального регистра девайса - и запись в переменные структуры пойдет точно в нужные адреса памяти, которые являются регистрами того или иного девайса.

Все стандартные хеадеры от производителей камней именно так построены. Если сам будешь что делать, главное не забыть volatile к таким структурам приписать, а то компилер нафиг выбросить всю эту инициализацию "неиспользуемых переменных" -))