Перейти к содержанию
    

STM32F0.. USB - CAN

В серии STM32F042, присутствуют и USB и CAN. Могут одновременно работать, или как в F103 серии, только по очереди? Хотел сделать мост USB - CAN.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Судя по даташиту и реф.мануалу - могут, но только в 48-ногом корпусе можно перенаправить CAN на другие ноги.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Судя по даташиту и реф.мануалу - могут, но только в 48-ногом корпусе можно перенаправить CAN на другие ноги.

Имхо этого недостаточно. Там у юсб и кана общий регистр управления, и либо то, либо то. Строго не судите, я мельком пробежался.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Имхо этого недостаточно. Там у юсб и кана общий регистр управления, и либо то, либо то. Строго не судите, я мельком пробежался.

USB и CAN действительно оба используют блок памяти для буферов и в семействе 1хх не могли работать одновременно.

В следующих семействах это дело исправили.

В F042 и F072 включенный CAN просто использует последние 256 байт, оставляя первые 768 байт для USB.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можете ли вы указать, где в документации на микроконтроллер есть эти данные: что именно последние 256 байт используются CAN?

Я уже несколько раз перелистал RM, но так и не нашел этих данных! В разделе о USB совершенно ничего не пишут о CAN, а в разделе о CAN — о том, что он использует эти 256 байт из регистров USB...

P.S. Нашел в самом начале раздела о USB, что последние 256 байт делятся с CAN, но что это за регистры CAN'а?

Изменено пользователем Ques

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не надо RM. достаточно github. На 042 USB и CAN прекрасно работают вместе. Проект найдете поиском. Так и код и плата. Я когда то понаделал плат себе. Правда только одну использовал для машины. С развязкой can от mcu (от TI).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дык, я и сам проверял - очень даже работает. Но закралось подозрение: а нельзя ли использовать под USB весь килобайт, одновременно с CAN? Ведь в RM вообще ничего нет о том, что же за регистры CAN'а лежат в тех последних 256 байтах памяти под USB.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А еще интересно: как определить нужный размер буфера под EP0? Скажем, сначала я сделал 64 байта на прием и передачу, сейчас попробовал с 8 байтами - все равно  работает! В интернете нашел, что для USB FS размер EP0 может быть от 8 до 64 байт. А как же определить, сколько реально нужно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 4/24/2019 at 4:59 PM, x893 said:

Проект найдете поиском. Так и код и плата. Я когда то понаделал плат себе.

Попробовал найти реализацию USB<>CAN на гитхабе. Ничего не нашел: либо калокуб, либо SPL. А без этой дряни? Хочется посмотреть, как другие люди обрабатывают ошибки и как умудряются не пропускать пакеты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 hours ago, Eddy_Em said:

Попробовал найти реализацию USB<>CAN на гитхабе. Ничего не нашел: либо калокуб, либо SPL. А без этой дряни? Хочется посмотреть, как другие люди обрабатывают ошибки и как умудряются не пропускать пакеты.

https://canable.io/

https://github.com/linklayer/cantact-fw

Не надо демонизировать Cube. Ничего страшного нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Cantact я уже смотрел - там кал.

В canable что-то ссылок на исходники не нашел, но подозреваю, что там — тоже кал.

1 hour ago, x893 said:

Не надо демонизировать Cube

Я и не демонизирую. Просто обычный шлак для ардуинщиков. Ничего нормального на калокубе точно не сделать!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, Eddy_Em said:

Ничего нормального на калокубе точно не сделать!

Кто-то может, кто-то нет. Дело хозяйское.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, если цель - "тяп-ляп и в продакшн" - и больше никогда это не поддерживать, то можно и в калокубе набыдлокодить.

А если делается для того, чтобы можно было поддерживать, а не поднасрать какому-нибудь другому программисту, который в этой белиберде будет разбираться, то кал/SPL/opencm3 точно не надо использовать. Я уж молчу о том, что все эти недобиблиотеки имеют огромный оверхед в виде излишних проверок, приравниваний и вычислений.

Если мне кто-то покажет header-only аналог хоть той же opencm3, то я еще подумаю - насколько оно юзабельно. Но в таком виде…

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...