08.08.2015, 16:45
|
|
Частый гость
Регистрация: 21.07.2015
Сообщений: 18
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Как управлять ногами B4 и B5?
У меня stm8s103f3p6. Все свободные ноги уже занял. Нужно управлять ещё двумя светодиодами. И есть ноги B4 и B5, которые не слушаются стандартной инициализации и притягивания вверх/вниз. В даташите http://www.st.com/web/en/resource/te...CD00226640.pdf (стр 2 написано Port B4 I2C clock и Port B5 I2C data. Можно ли их как-то переделать на стандартные команды или может, если у них своё назначение, как-то управлять их питанием программно, чтобы получать там 0 и 3,3 тогда, когда мне нужно?
|
|
|
|
08.08.2015, 16:49
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Как управлять ногами B4 и B5?
Ну так если они True Type Open Drain, то нужна подтяжка к +Пит.
Цитата:
|
In the open-drain output column, "T" defines a true open-drain I/O (P-buffer, weak pull-up, and protection diode to VDD are not
implemented).
|
Последний раз редактировалось STM32F0; 08.08.2015 в 16:52.
|
|
|
|
08.08.2015, 17:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: Как управлять ногами B4 и B5?
А что за светодиоды? Если обычные с током порядка 3-5 мА, можно просто подключить их (последовательно с токоограничивающим резистором, разумеется) анодом к + питания проца, катодом к порту. Запись 0 в порт зажигает светодиод, запись 1 гасит. Порты PB4 и PB5 как обычно настраиваете выходами, и все. Если не инициализировать I2C, они работают как обычные порты, но тянут только "вниз".
|
|
|
Сказали "Спасибо" AR_Favorit
|
|
|
08.08.2015, 18:06
|
|
Частый гость
Регистрация: 21.07.2015
Сообщений: 18
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как управлять ногами B4 и B5?
Видимо в ответе содержится истина, но пока что я её не понимаю. Вот мои вопросы по пунктам:
1. Реально ли их (оба или по одиночке) просто программно переключить в стандартный режим?
2. Сейчас я их инициализирую так:
GPIO_Init(GPIOB, GPIO_PIN_4|GPIO_PIN_5, GPIO_MODE_OUT_PP_LOW_FAST);
И меняю состояние так:
GPIO_WriteReverse(GPIOB, GPIO_PIN_4);
GPIO_WriteReverse(GPIOB, GPIO_PIN_5);
При этом на вольтметре на B4 как был 0, так и остается, а на ИB5 меняется с 0 до 1,75в. Так и должно быть или я делаю что-то не так?
3. Правильно ли я понял про продтягивание?
4. И тогда, соответственно, что делать с B4, на котором всегда 0?
|
|
|
|
08.08.2015, 18:13
|
|
Частый гость
Регистрация: 21.07.2015
Сообщений: 18
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как управлять ногами B4 и B5?
Сообщение от AR_Favorit
|
А что за светодиоды? Если обычные с током порядка 3-5 мА, можно просто подключить их (последовательно с токоограничивающим резистором, разумеется) анодом к + питания проца, катодом к порту. Запись 0 в порт зажигает светодиод, запись 1 гасит. Порты PB4 и PB5 как обычно настраиваете выходами, и все. Если не инициализировать I2C, они работают как обычные порты, но тянут только "вниз".
|
Светодиоды обычные. Команды я написал выше, эффект тоже. Сейчас подключаю через резистор 220 ом к земле. Ничего не горит. Переключить на + могу, но чет мне кажется вольтметр бы показал переключение с 0 на 3,3 и в B4 и в B5. I2C в программе вроде не инициализирую..
|
|
|
|
08.08.2015, 18:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
1. Нереально.
2. Так и должно быть.
3. Правильно. Если просто светодиод, то через сопротивление на +пит.
4. Что В4, что В5 - никакой разницы.
Сообщение от Jazz777_
|
Сейчас подключаю через резистор 220 ом к земле. Ничего не горит.
|
И не должно. Только через резистор на +пит.
Спасибо, почитал. Раньше эта статья не попадалась, но над предложенным в ней способом задумывался. Конечно, если бы речь шла о больших массивах констант, или о картинках, как у автора статьи, то я бы так и сделал. А у меня несколько тысяч сообщений, длиной от 4 до 20 байт. То есть, сколько сообщений, столько и меток. Хорошо компилятору, он адреса этих меток вычислит за несколько секунд. А мне придется делать это практически вручную. Была мысль использовать для этого exel, или что-то подобное. Но тоже очень трудоемко.
Вторая проблема, возникающая при этом - это как внедрить в тело основной программы эти метки, и их значения, чтобы компилятор сделал все как надо.
Несмотря на эти проблемы, я уже морально готовлюсь к такому варианту. Другого выхода пока нет, и отступать тоже некуда. Нужен результат любой ценой.
Да, крутится в обойме еще вариант с использованием внешней памяти. Но там еще более громоздкая процедура доступа к нужному сообщению. Были бы они хотя бы одинаковой длины, было бы намного проще.
Сообщение от STM32F0
|
Вы точно не путаете ИАР под АРМ с ИАРом под STM8?
|
Не путаю. IAR for STMicroelectronics STM8
Вот что кажет один из IARов, который при инсталляции создает папку C:\Program Files\IAR Systems\Embedded Workbench 6.0:
Цитата:
|
IAR CSpyBat
6.0.4.1697 (6.0.4.1697)
C:\Program Files\IAR Systems\Embedded Workbench 6.0\common\bin\CSpyBat.exe
12.10.2010 0:23:16, 728576 bytes
IAR Build Utility
6.0.4.1697 (6.0.4.1697)
C:\Program Files\IAR Systems\Embedded Workbench 6.0\common\bin\IarBuild.exe
12.10.2010 0:25:06, 94720 bytes
IAR Embedded Workbench IDE
6.0.4.1697 (6.0.4.1697)
C:\Program Files\IAR Systems\Embedded Workbench 6.0\common\bin\IarIdePm.exe
12.10.2010 0:25:22, 478208 bytes
IAR Assembler for STMicroelectronics STM8
1.20.1 (1.20.1.50031)
C:\Program Files\IAR Systems\Embedded Workbench 6.0\stm8\bin\iasmstm8.exe
26.10.2010 6:40:56, 4171776 bytes
|
.
Сообщение от STM32F0
|
Хм! Прикольнее если получится!
|
И в чем именно прикол?
Последний раз редактировалось Falconist; 14.04.2016 в 11:52.
|
|
|
|
08.08.2015, 18:34
|
|
Частый гость
Регистрация: 21.07.2015
Сообщений: 18
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как управлять ногами B4 и B5?
Хм.. подключил через резистор к плюс питанию. Оба мигают, причем яркость вроде одинаковая и друг с другом и с остальными. Спасибо огромное. Только не понял, почему вольтметр на B4 ноль всегда показывал, а на B5 1,75 и 0 (в зависимости от реверса)?
|
|
|
|
08.08.2015, 18:55
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Как управлять ногами B4 и B5?
Мизерная утечка на плате или кристалле, а вход мультиметра достаточно высокоомный - можно и не париться по этому поводу, забейте.
|
|
|
|
08.08.2015, 19:06
|
|
Частый гость
Регистрация: 21.07.2015
Сообщений: 18
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Как управлять ногами B4 и B5?
Ок. Ещё глупый вопрос - это же штатное (с радиотехнической точки зрения) использование (ну понятно, что самое штатное - это I2C)? Т.е. из-за этого через пару месяцев не сдохнет Stm, не перегорят светодиоды, ну не знаю, не будет зависать программа из-за того, что какое-то напряжение где-то просаживается?
|
|
|
|
08.08.2015, 20:20
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Как управлять ногами B4 и B5?
Сообщение от Jazz777_
|
это же штатное (с радиотехнической точки зрения) использование (ну понятно, что самое штатное - это I2C)? Т.е. из-за этого через пару месяцев не сдохнет Stm, не перегорят светодиоды, ну не знаю, не будет зависать программа из-за того, что какое-то напряжение где-то просаживается?
|
Абсолютно штатное! В старых ПИКах РА4 был с Open Drain. Вас же не волнует псевдо Open Drain, который можно установить на других пинах?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:04.
|
|