|
|
  |
Как обойти совмещение пинов can и usb на stm32f103 |
|
|
|
Jul 22 2010, 06:02
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(adnega @ Jul 22 2010, 09:54)  Есть смысл посмотреть Connectivity Line STM32F105/107 96К RAM? Мне надо у меня много всякого одновременно работает. Переферия будет практически вся работать одновременно. Цитата(adnega @ Jul 22 2010, 09:57)  Хотя, можно завести питание с USB на ногу. Если напряжение есть, то активен USB, иначе CAN. Ногу подключать лучше даже если нету CAN. Именно так и предполагается действовать. Спрашиваю нет ли нюансов. Не будут ли , скажем, драйвера мешать друг другу. В смысле не буде ли драйвер CAN мешать USB?
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Jul 22 2010, 06:40
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(adnega @ Jul 22 2010, 10:28)  "В смысле не буде ли драйвер CAN мешать USB?" - конечно будет. Память у них общая... Имелся ввиду phy-драйвер. Цитата(adnega @ Jul 22 2010, 10:28)  На STM32F103T8 делал и CAN, и USB (но не одновременно) - ничего военного. Потом мне захотелось мост CAN<>USB (одновременно)... Переписал на 107 и получился мост CAN<>Ethernet )) Понятно, спасибо.
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Jul 22 2010, 07:47
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(adnega @ Jul 22 2010, 10:56)  на лапах PA11 и PA12 есть и CAN (CANRX и CANTX соответственно), и USB (USBDM и USBDP соответственно); Кроме того, есть PB8 и PB9, на которые дополнительно выведены CANRX и CANTX соответственно. То есть эти интерфейсы просто через одно место используются в самом процессоре, а физически разделить ноги возможность есть. Какая красота. Я просто документы на семейство изучаю скажем так с этого утра. До тонкостей не дошел. Спасибо за разъяснения.
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Jul 23 2010, 08:38
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 3-01-07
Из: Germany
Пользователь №: 24 071

|
Ноги разделить а в самом прерывании что то на подобии:
void USB_LP_CAN_RX0_IRQHandler(void) { if(CAN->RF0R & 0x3F) { CAN_Istr(); CAN->RF0R = CAN_RF0R_RFOM0; } else { USB_Istr(); } }
|
|
|
|
|
Jul 24 2010, 11:01
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 29-01-06
Пользователь №: 13 730

|
Поочередная работа CAN/USB в STM32F103 - абсолютно реально. Желательно учесть пару вещей (повторюсь с учетом ранее сказанного): - USB на ноги PA11-PA12; - CAN на ноги PB8-PB9; - кварц/генератор PD0-PD1 (внутренний генератор для CAN или USB не рассматривается); - вектора прерываний лучше в RAM (подменять/отключать при переключении драйверов CAN/USB); - "переключатель" делать в SVC с более высоким приоритетом чем CAN/USB; В моем случае STM32F103RC6(QFP-64) одновремено задействована перефирия: - USART2(полный)->GSM, USART3->GPS, USART1->DEBUG|ISO7816-3(shared), USART4->RS485(optional); - SPI1->LCD/MEMS/KBD/InOut, SPI2->SerialFlash(file system); - SDIO(4-bit)->SD(shared RS485); - CAN|USB(shared)->application/boot; - ADC, I/O; Промахнулся с SDIO. Хотелось запустиь в 1-bit режиме SD и одновременно RS485. Увы - только попеременно, как и в случае с CAN/USB.
|
|
|
|
|
Jul 26 2010, 08:39
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 29-01-06
Пользователь №: 13 730

|
Цитата(SpiritDance @ Jul 26 2010, 10:04)  Сейчас рисую схемку нигде не могу найти пример подключения JTAG по 2-проводам: везде данные контакты притянуты к земле. Это так надо или они не используются? Подскажите что нужно чтоб он заработал. Что за пин boot0? Если нет необходимости использовать внутренний загрузчик от ST, то ногу BOOT0 на землю (иначе - есть BOOT1). А если использовать JTAG в режиме SWD, то целесообразно задействовать 3 сигнала - SWDIO, SWCLK и TRACESW0.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|