реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Двунаправленная 8-битная шина на STM32
Balabes
сообщение Jun 18 2014, 11:55
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 8-07-13
Пользователь №: 77 442



Здравствуйте!
Нужно реализовать подключение микросхемы к STM32F107VC6 тут двунаправленная 8-битная шина используется, а вот ноги МК похоже не умеют так работать. Подскажите глупому как быть.

GPIO_Mode_Out_PP — выход push-pull
GPIO_Mode_Out_OD — выход open-drain
GPIO_Mode_AF_PP — альтернативная функция, push-pull
GPIO_Mode_AF_OD — альтернативная функция, open-drain
GPIO_Mode_AIN — аналоговый высокоимпендансный вход
GPIO_Mode_IN_FLOATING — высокоимпендансный
GPIO_Mode_IPU — вход с подтяжкой к питанию
GPIO_Mode_IPD — вход с прижатием к земле

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jun 18 2014, 12:05
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



ну по 2 направленной шине нельзя одновременно писать и читать. Остается все как обычно переключать ее с входа на выход в зависимости от режима....
Go to the top of the page
 
+Quote Post
MSprut
сообщение Jun 18 2014, 12:06
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476



Микросхема, которую хотите подцепить управляется от этого же МК. Конфигурируете порт на выход - выставляете адрес, конфигурируете на вход - считываете данные. Использовать выход в режиме пуш-пулл, а вход высокоимпедансный.
Go to the top of the page
 
+Quote Post
Balabes
сообщение Jun 18 2014, 12:18
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 8-07-13
Пользователь №: 77 442



т.е. процедуру инициализации повторять каждый раз, что то типа этого
Код
void toIN (void)
{
        GPIO_InitTypeDef         PE_config;

    PE_config.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2  | GPIO_Pin_3  | GPIO_Pin_4  | GPIO_Pin_5  | GPIO_Pin_6  | GPIO_Pin_7;
    PE_config.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    PE_config.GPIO_Speed = GPIO_Speed_2MHz;
        GPIO_Init(GPIOE, &PE_config);
}

void toOUT (void)
{
        GPIO_InitTypeDef         PE_config;

    PE_config.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2  | GPIO_Pin_3  | GPIO_Pin_4  | GPIO_Pin_5  | GPIO_Pin_6  | GPIO_Pin_7;
    PE_config.GPIO_Mode = GPIO_Mode_Out_PP;
    PE_config.GPIO_Speed = GPIO_Speed_2MHz;
        GPIO_Init(GPIOE, &PE_config);
}


и каждый раз вызывать соответствующую функцию перед тем как использовать GPIO_ReadInputDataBit() и GPIO_WriteBit(). Я правильно понимаю?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 18 2014, 12:49
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



А FSMC на что дан!?

Цитата(Balabes @ Jun 18 2014, 15:18) *
и каждый раз вызывать соответствующую функцию перед тем как использовать GPIO_ReadInputDataBit() и GPIO_WriteBit(). Я правильно понимаю?

Если не будете использовать ублюдочную библиотеку, как обезьяна, а изучите регистры по Reference Manual, то все окажется намного проще.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 18 2014, 12:55
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ViKo @ Jun 18 2014, 18:49) *
Если не будете использовать ублюдочную библиотеку, как обезьяна, а изучите регистры по Reference Manual, то все окажется намного проще.

biggrin.gif a14.gif
Go to the top of the page
 
+Quote Post
adnega
сообщение Jun 18 2014, 13:22
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



+1 за FSMC
Go to the top of the page
 
+Quote Post
Balabes
сообщение Jun 18 2014, 13:25
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 8-07-13
Пользователь №: 77 442



жду совета писать в хексе в блокнот и сохранять *.bin

скорее всего по FSMC вы имеете ввиду этот режим?
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Lagman
сообщение Jun 18 2014, 14:27
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(Balabes @ Jun 18 2014, 17:25) *
жду совета писать в хексе в блокнот и сохранять *.bin

Не получится, стандартный блокнот не принимает alt комбинации, точнее не правильно сохраняет.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Jun 18 2014, 14:35
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(adnega @ Jun 18 2014, 09:22) *
+1 за FSMC

А он в ней есть?


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jun 18 2014, 15:10
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



В F107 FSMC нету. Только ногодрыг. Или другой проц.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 18 2014, 15:20
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Balabes @ Jun 18 2014, 16:25) *
жду совета писать в хексе в блокнот и сохранять *.bin
Простите, но использование конкретно этой библиотеки сродни отправки по электронной почте вордовского файла, в который вложена картинка скана распечатанной фотографии.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Balabes
сообщение Jun 18 2014, 19:42
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 8-07-13
Пользователь №: 77 442



это была шутка, можно расслабиться.
FSMC вроде есть, во всяком случае ничего о том что он отсутствует не написано (RM0008)
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Jun 18 2014, 19:58
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(Balabes @ Jun 18 2014, 15:42) *
это была шутка, можно расслабиться.
FSMC вроде есть, во всяком случае ничего о том что он отсутствует не написано (RM0008)

Это мануаль, а не даташит.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
Balabes
сообщение Jun 19 2014, 05:31
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 8-07-13
Пользователь №: 77 442



нашел, и правда видимо нет.

Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx
microcontrollers where the Flash memory density ranges between 16 and 32 Kbytes.
Medium-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 32 and 128 Kbytes.
High-density devices are STM32F101xx and STM32F103xx microcontrollers where the
Flash memory density ranges between 256 and 512 Kbytes.
XL-density devices are STM32F101xx and STM32F103xx microcontrollers where the
Flash memory density ranges between 768 Kbytes and 1 Mbyte.
Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.

This section applies to high-density and XL-density devices only.


И что ученые мужи посоветуют в этой ситуации?

Цитата(hd44780 @ Jun 18 2014, 19:10) *
В F107 FSMC нету. Только ногодрыг. Или другой проц.


а что вы имеете ввиду под "ногодрыг"?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01485 секунд с 7
ELECTRONIX ©2004-2016