SpiritDance 0 22 июля, 2010 Опубликовано 22 июля, 2010 · Жалоба Смотрю на блок/диаграмму даже нового XL density stm32. Нужны оба интерфейса. Понятно что одновременно заставить работать их не получиться. Хотелось бы понять будут ли они функционировать попеременно: Подключено USB - значит включен модуль USB, нет - значит включен CAN. Или имеются какие то нюансы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 22 июля, 2010 Опубликовано 22 июля, 2010 · Жалоба Есть смысл посмотреть Connectivity Line STM32F105/107 Хотя, можно завести питание с USB на ногу. Если напряжение есть, то активен USB, иначе CAN. CAN физически подключить на отремапленные ноги. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 22 июля, 2010 Опубликовано 22 июля, 2010 · Жалоба Есть смысл посмотреть Connectivity Line STM32F105/107 96К RAM? Мне надо у меня много всякого одновременно работает. Переферия будет практически вся работать одновременно. Хотя, можно завести питание с USB на ногу. Если напряжение есть, то активен USB, иначе CAN. Ногу подключать лучше даже если нету CAN. Именно так и предполагается действовать. Спрашиваю нет ли нюансов. Не будут ли , скажем, драйвера мешать друг другу. В смысле не буде ли драйвер CAN мешать USB? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 22 июля, 2010 Опубликовано 22 июля, 2010 · Жалоба "В смысле не буде ли драйвер CAN мешать USB?" - конечно будет. Память у них общая... Когда работает USB, CAN будет простаивать. Допустимо ли это для Вашего случая? Судя по вопросу драйвера Вы планируете брать чьи-то. В случае самописных драйверов ситуацию можно разрулить (повторюсь, ценой простоя CAN; с учетом приоритета USB над CAN). На STM32F103T8 делал и CAN, и USB (но не одновременно) - ничего военного. Потом мне захотелось мост CAN<>USB (одновременно)... Переписал на 107 и получился мост CAN<>Ethernet )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 22 июля, 2010 Опубликовано 22 июля, 2010 · Жалоба "В смысле не буде ли драйвер CAN мешать USB?" - конечно будет. Память у них общая... Имелся ввиду phy-драйвер. На STM32F103T8 делал и CAN, и USB (но не одновременно) - ничего военного. Потом мне захотелось мост CAN<>USB (одновременно)... Переписал на 107 и получился мост CAN<>Ethernet )) Понятно, спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 22 июля, 2010 Опубликовано 22 июля, 2010 · Жалоба "Имелся ввиду phy-драйвер." В контексте 103 (и других тоже) серии имеем: на лапах PA11 и PA12 есть и CAN (CANRX и CANTX соответственно), и USB (USBDM и USBDP соответственно); Кроме того, есть PB8 и PB9, на которые дополнительно выведены CANRX и CANTX соответственно. Т.е. подключаем USB к PA11-PA12, CAN к PB8-PB9. в регистре AFIO_MAPR поле CAN_REMAP устанавливаем в 2. Все: физики не мешают друг другу! Кста, справедливости ради замечу, что CAN зачем-то можно отремапить на PD0-PD1... на ноги внешнего кварца... т.е. можно запускать системы с CAN на внутреннем генераторе. По-моему, бредовенько ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 22 июля, 2010 Опубликовано 22 июля, 2010 · Жалоба на лапах PA11 и PA12 есть и CAN (CANRX и CANTX соответственно), и USB (USBDM и USBDP соответственно); Кроме того, есть PB8 и PB9, на которые дополнительно выведены CANRX и CANTX соответственно. То есть эти интерфейсы просто через одно место используются в самом процессоре, а физически разделить ноги возможность есть. Какая красота. Я просто документы на семейство изучаю скажем так с этого утра. До тонкостей не дошел. Спасибо за разъяснения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 22 июля, 2010 Опубликовано 22 июля, 2010 · Жалоба Когда дойдете до тонкстей реализации... будьте аккуратны с библиотеками, предоставляемыми ST. Кому-то они нравятся (типа, можно быстро запустить какой-нить узел; тот же USB)... кто-то разочаровался и пишет код сам, заглядавая в них при необходимости. Можно читать AN, аккуратно. Я же отношусь к этому так: "можно было сделать лучше" / "демки от ST не истина в последней инстанции". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prgjz 0 23 июля, 2010 Опубликовано 23 июля, 2010 · Жалоба Ноги разделить а в самом прерывании что то на подобии: void USB_LP_CAN_RX0_IRQHandler(void) { if(CAN->RF0R & 0x3F) { CAN_Istr(); CAN->RF0R = CAN_RF0R_RFOM0; } else { USB_Istr(); } } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ssergy 0 24 июля, 2010 Опубликовано 24 июля, 2010 · Жалоба Поочередная работа 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 26 июля, 2010 Опубликовано 26 июля, 2010 · Жалоба Всем признателен. Подкиньте еще материалу. Сейчас рисую схемку нигде не могу найти пример подключения JTAG по 2-проводам: везде данные контакты притянуты к земле. Это так надо или они не используются? Подскажите что нужно чтоб он заработал. Что за пин boot0? Пока не привык к документации st, времени ее штудировать построчно сейчас нет, нужно нарисовать первый вариант схемки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ssergy 0 26 июля, 2010 Опубликовано 26 июля, 2010 · Жалоба Сейчас рисую схемку нигде не могу найти пример подключения JTAG по 2-проводам: везде данные контакты притянуты к земле. Это так надо или они не используются? Подскажите что нужно чтоб он заработал. Что за пин boot0? Если нет необходимости использовать внутренний загрузчик от ST, то ногу BOOT0 на землю (иначе - есть BOOT1). А если использовать JTAG в режиме SWD, то целесообразно задействовать 3 сигнала - SWDIO, SWCLK и TRACESW0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться