@ru_electronics

Страница 303 из 718
Keroronsk
31.05.2017
15:26:43
и лежит в систем мемори, как и штатый бутлодер

Serg
31.05.2017
16:11:45
вродь пишут что чардж памп используется
В даташите написано что Injected current on five-volt tolerant I/O: -5/0

Injected current может возникнуть когда ток потечет через защитный диод?

непонятно когда возникнет этот Injected current больше 0, при входном больше 5В на сколько?

Google
Firelander
31.05.2017
17:08:36
Может имеется ввиду когда потенциал опускается ниже нуля

Serg
31.05.2017
17:30:54
Injected current on five-volt tolerant I/O: -5/0

ниже 0 - это до -5 мА

а выше чего нельзя?

Dmitry
31.05.2017
19:31:49
Injected current on five-volt tolerant I/O: -5/0
Мб это втекающий ток?

То есть, когда вывод тянет вниз

Martin
01.06.2017
06:22:29
процессор stm32f105, поднят USB CDC Vitrual com port, возможно ли эмулировать на нем сигнал наличия несущей DCD?

Danil
01.06.2017
06:39:47
дык это зависит от реализации софта в стм и в драйвере VCP. сам класс CDC поддерживает все сигналы же

Martin
01.06.2017
06:51:17
я нагуглил SERIAL_STATE нотификация

она типо реализует сигнал DCD

а в каком месте и вообще как я должен эту нотификацию реализовать

kiltum
01.06.2017
07:54:56
Если не ошибаюсь, там прямо в коде драйвера стоят функции-заглушки. Рядом с функцией установки скорости порта. Точнее не посмотрю - не за компом.

Martin
01.06.2017
08:00:13
В виндовом inf?

Google
Martin
01.06.2017
08:00:25
Или в коде мк?

Danil
01.06.2017
08:34:01
в коде МК вы должны обрабатывать посылки от драйвера ПК для доп сигналов и реализовывать например дрыгание пинов соответственно. В драйвере на ПК должны быть функции, реализующие пепедачу и запрос от МК состояния доп сигналов Сом-порта

Т. е. из приложения на винде дергается напримеи DTR или читается DCD. Драйвер формирует запрос на МК, а софт в МК реализует эти сигналы в железе уже

http://janaxelson.com/usb_virtual_com_port.htm

тут есть про реализацию. SET_CONTROL_LINE_STATE и SERIAL_STATE

это то что тебе нужно как раз

Martin
01.06.2017
08:45:02
DTR есть set_control_line_state запрос, я его ловлю и обрабатываю

а вот serial_state где я должен посылать

Danil
01.06.2017
08:45:46
CD идет в SERIAL_STATE запросе

запрос от драйвера, отвечает МК

Martin
01.06.2017
08:47:59
дело в том что в документации на SET_CONTROL_LINE_STATE и SERIAL_STATE одинаковый байт запроса 0x20

Danil
01.06.2017
08:48:02
в дефолтном приере VCP все это не реализовано. Только прием и передача вроде. Даже скорости и четность не обрабатываются. Но если устройство не адаптер USB-RS-232 то это и не нужно же

Martin
01.06.2017
08:48:28
скорость и четность обрабатывается

Danil
01.06.2017
08:48:34
по ссылке выше нет 0x20 и 0х22

ну когда обмен терминируется внутри МК, то смысла в скорости и четности нет, как впрочем и в обработке доп сигналов. Только если делаешь адаптер (но нахуя, когда есть готовые ftdi и prolific) или делаешь эмуляцию старого железа под старый же софт - это всегда попоболь х2

Ibh
02.06.2017
19:33:25
http://www.ti.com/lit/an/swra351a/swra351a.pdf #Antenna_Selection_Quick_Guide годный листик с выбором PCB антен

Proton
03.06.2017
09:57:18
Всем приветы!!

Может кто сталкивался с проблемками на внешних прерываниях. У меня камни STM32F103RB и STM32F103C8, хочу запилить внешние прерывания, но что-то не работает, даже в обработчик прерывания не впадает. Код тут https://hastebin.com/oyagetizep.php

Danil
03.06.2017
10:26:43
Смотрите примеры которые идут с SPL или HAL - там все просто как 2х2. На внешние пины есть несколько обработчиков по группам пинов. Грабли в том, что нельзя если настроить прерывания на одинаковые пины разных портов, например РА1 и РВ1, то вызыватся будет одно и то же прерывание и определять какой пин сработал надо будет вручную.

Вадно включить и сконфигурировать NVIC на преривание EXTI

Google
Danil
03.06.2017
10:27:28
и так же само прерывание тоже включить

Proton
03.06.2017
10:28:44
Я всё это знаю, так и сделал, но не хочу делать через SPL или HAL. Есть идеи по моему коду?

Danil
03.06.2017
10:28:55
не только в стм кстати

Я всё это знаю, так и сделал, но не хочу делать через SPL или HAL. Есть идеи по моему коду?
ну перепиши код из ХАЛа на регистрах - там в исходниках все есть же. Да и в инете миллиард статей про GPIO EXTI STM32 - хоть на ассемблере

Proton
03.06.2017
10:31:15
Я и доки перечитал, и статьи, и форумы. Код перед вами, он не работает. Конфигурировал на разные порты и пины, но увы

Maxim
03.06.2017
10:32:09
Не работает - это просто контроллер игнорит прерывание, или виснет/падает в HardFault после него?

Danil
03.06.2017
10:32:37
некогда читать твой код, да и с мобилы неудобно

делай дебаг по шагам. ставь бряк в обработчике прерывания. если сваливается в хардфолт, то вполне вероятно неправильно назван обработчик прерывания - какими библиотеками пользуешься? cmsis, spl, hal, opencm3?

Danil
03.06.2017
10:35:28
Тогда скорее всего неправильно заводишь NVIC, или таки не включил прерывание на пин

Maxim
03.06.2017
10:35:33
Если это плюсы, кстати, то проблема может быть в отсутствии extern "C" у обработчиков

Danil
03.06.2017
10:36:40
внешние прерывания у стм32 самые простые же

Proton
03.06.2017
10:36:48
Это обычный С, что неправильного в заведении NVIC?

Да я не спорю, что простые, но не работают

Danil
03.06.2017
10:37:27
тактирование портовл или AFIO забыл

Богдан
03.06.2017
10:37:54
Это обычный С, что неправильного в заведении NVIC?
Эт самое, а имя хэндлера в мэйне и в стартапе точно совпадают?

Proton
03.06.2017
10:40:03
Вы сами у себя отнимаете время вместо того, чтобы пройти по ссылке и увеличить код. В мэйне я объявил функцию конфигурации прерывания.

Danil
03.06.2017
10:45:23
Тут тебе как бэ никто ничего не должен - тебе намекнули куда копать, а ты тут требуешь чтобы твой код читали. Не дохуяли вам надо, сударь?

Proton
03.06.2017
10:48:27
Я не требую и попрошу без мата, вам я не хамил, мьсе. Мы здесь собрались для обсуждения и взаимопомощи, я понимаю, что мне никто ничего не должен, но я люблю разговоры по факту, а не пальцем в небо. Я не просто выдрал откуда-то код и задаю вопрос, я над ним и документацией по этой теме сидел неделю, так что извольте дать дельный совет, если вы знаете, куда копать, если не знаете, не засоряйте эфир. Спасибо за внимание.

Google
Богдан
03.06.2017
10:52:00
Danil
03.06.2017
10:52:45
дали уже три совета: #1 запустить отладку; #2 проверить правильность имени обработчика прерываний; #3 проверить правильность инициализации прерывания на пинах - ориентируясь на примеры SPL или HAL, т. к. внутри там внезапно чистый CMSIS и запись в регистры.

Maxim
03.06.2017
10:53:41
#4 проверить тактирование

Proton
03.06.2017
10:55:30
#1 Я бы это давно уже сделал, но IAR сбрасывает мои брекпоинты по каким-то своим мировоззрениям #2 Проверил #3 Сверялся с SPL #4 Проверено другими интерфейсами, конкретно прерывания не пашут

Богдан
03.06.2017
10:58:37
Еще как минимум стоит проверить - а попадает ли на пин само внешнее воздействие? Физический контакт, верный пин

Proton
03.06.2017
11:13:17
Я это руками делаю.

Как я уже писал, проверял на разных портах и пинах. Обычная реакция в while(1) есть, а через прерывание - нет

Danil
03.06.2017
11:15:45
значит не работает NVIC

Proton
03.06.2017
11:26:59
Почему? )

Danil
03.06.2017
11:38:11
потому что без NVIC ни одно прерывание не сработает, а если он включен и нет обработчика, то упадет в хардфолт или ресет

Proton
03.06.2017
11:41:02
// Разрешаем прерывания uint32_t prioritygroup = NVIC_GetPriorityGrouping(); uint32_t priority = NVIC_EncodePriority(prioritygroup, 1, 0 ); NVIC_SetPriority(EXTI9_5_IRQn, priority); NVIC_EnableIRQ(EXTI9_5_IRQn); // Разрешаем глобальные прерывания __enable_irq(); Вроде всё кошерно..

Да и даже без мудрёной очереди приоритетов результат тот же

Proton
03.06.2017
11:43:58
Не

Всё сбрасываю цивильно

Я не попадаю в обработчик прерывания

Богдан
03.06.2017
11:58:32
А как ты понимаешь что не попадаешь в обработчик?

metaclass
03.06.2017
11:58:39
имя разработчика с weak прототипом в либе совпадает?

опечаток нет?

Богдан
03.06.2017
11:59:27
имя разработчика с weak прототипом в либе совпадает?
Говорил совпадает, да и я уже открыл свой стартап на этот чип - действительно совпадает

Google
metaclass
03.06.2017
11:59:29
такс, кажется нет.

да

я уже посмотрел

Proton
03.06.2017
12:01:43
Я в обработчике зажигаю светодиоды. Точнее они должны гореть, но увы. Осциллограф подключал, никаких скачков на тех пинах даже нет

metaclass
03.06.2017
12:02:12
клок для gpio поразрешал же?

т.е. если из мейна зажечь диод - он включается?

Богдан
03.06.2017
12:02:57
Я в обработчике зажигаю светодиоды. Точнее они должны гореть, но увы. Осциллограф подключал, никаких скачков на тех пинах даже нет
У тебя там, я так понял C10 и C11 должны в ноль упасть в обработчике, но я чет не понял где ты их в 1 ставишь предварительно. А пробовал выносить моргание за if, просто в корень хэндлера?

Proton
03.06.2017
12:04:18
В мэйне я настраиваю пины, они работают отлично без прерывания.

Danil
03.06.2017
12:07:00
другие прерывания работают вообще? таймер например заведи

Proton
03.06.2017
12:19:45
Эх

metaclass
03.06.2017
12:21:16
надо посмотреть на живом контроллере. с ходу непонятно.

правда у меня libopencm3 вместо cmsis и прочего :)

Богдан
03.06.2017
12:25:16
правда у меня libopencm3 вместо cmsis и прочего :)
Почему вместо? Все эти библиотеки ведь внутри на cmsis

metaclass
03.06.2017
12:25:48
надо глянуть, с виду отличается.

такс, на exti0 все работает

надо попробовать переселить на этот exti9

а там вообще если input_float - внешняя ж подтяжка нужна?

да все работает собственно.

повесил на exti9_5 переключение частоты таймера-мигалки

Страница 303 из 718