¿Qué componentes/placas adicionales se necesitan para usar CAN con un STM32?

Tengo un STM32F103C8T6 (después quiero más a STM32F407VET6). Ambos tienen soporte para CAN. Pero ¿qué significa esto?

Compré (aún no lo he recibido) un controlador CAN MCP2551 . ¿Necesito esto o esta funcionalidad ya está integrada en mi STM?

¿Y creo que también necesito un transceptor CAN como TJA1050 ?

De acuerdo con este circuito de ejemplo, se utilizan ambos y la entrada del MCP2551, pero tiene un SPI como entrada y el STM tiene RX/TX como entrada/salida CAN, que es similar a los 'conectores' para MCP2551. Pero creo que este circuito de ejemplo no está diseñado para STM32 (ya que SPI no se usa para CAN en STM32).

(Quiero hacer un bus CAN de unos pocos metros, solo dos, luego tal vez 3 dispositivos, preferiblemente con una velocidad de 1 mbps).

¿Quiere que el bus esté eléctricamente aislado de la MCU?
@DirkBruere No lo creo ... Solo lo conecto a dispositivos 'conocidos' (es decir, otro STM32 compatible con CAN que quiero usar). Por otro lado, si se necesita el MCP2551 para el aislamiento eléctrico ... Ya lo compré, así que si tiene una ventaja (como el aislamiento eléctrico) lo voy a usar.

Respuestas (2)

Debe tener al menos dos nodos y un par trenzado con terminaciones de 120 ohmios en cada extremo. Los identificadores deben ser únicos. Infórmese sobre los distintos formatos (11/29 bits) y CAN-FD frente a CAN. Sugiero comenzar con 11 bits. El identificador con el número más bajo es el de mayor prioridad.

Por lo general, cuando un microcontrolador es compatible con CAN, significa que la segunda capa de red (enlace de datos) es compatible con CAN MAC. Por lo general, debe proporcionar un transceptor (la capa física). CAN tiene requisitos exigentes (eléctricamente) para la tolerancia máxima de voltaje que normalmente serían incompatibles con los procesos monolíticos de bajo costo que admiten la complejidad del microcontrolador. También puedes comprar chips con interfaces seriales que implementen el MAC, que puedes conectar a casi cualquier microcontrolador con (p. ej.) SPI.

Existen varios protocolos de alto nivel que pueden ir por encima de las 2 capas especificadas por CAN, o para una aplicación simple, puede implementar la suya propia. Los mensajes CAN se transmiten esencialmente y cada nodo puede usarlos o descartarlos, como multidifusión o transmisión.

Un analizador de protocolos CAN puede ser útil; puede comprarlos por el valor de una o dos horas de depuración.

Gracias por tu respuesta detallada. Ya discutí con otro miembro aquí que los cables/conectores RJ45 serían buenos (suficientes). Leí mucho sobre CAN los últimos días (durante el tiempo libre, es un pasatiempo). 29 bits es algo que quiero, pero de hecho, empiezo mejor con 11 bits. Desearía poder usar CAN-FD, pero parece que STM32 no lo admite. Probablemente haré mi propio protocolo ya que mis requisitos son bastante simples. Pero aún no estoy seguro, dices que necesito un transceptor... así que supongo que necesito el TJA1050. No estoy seguro sobre el MCP2551.
Tengo un analizador de lógica/protocolo, aún no se ha comprobado si es compatible con CAN (es un dispositivo simple de 5 euros más o menos).
@MichelKeijzers El MCP2551 y el TJA1050 parecen partes diferentes de diferentes proveedores que hacen esencialmente lo mismo (transceptor CAN). Puede haber algunas diferencias sutiles. $5? Interesante.
¿Cómo es que hay placas que tienen MCP2551 y TJA1050? ebay.com/itm/…
Para ver un ejemplo de dicho analizador: aliexpress.com/item/…
Oye, ¿no deberías estar en una clase? El que acabo de ver estaba bastante descerebrado, por eso estoy aquí revisando SE.
@OlinLathrop Sí, haciendo el ARM LwIP/RTOS práctico... y multitarea yo mismo.
Mi conclusión hasta ahora: el MCP2551 no era realmente necesario (está en mi STM32, se necesitará el TJA1050... Corrígeme si me equivoco, por favor :-)

Esto funciona, y se toma de un diseño de trabajo. proporciona aislamiento eléctrico.

ingrese la descripción de la imagen aquí

¿Ese ADM es tan similar al TJA1050? Ya que no puedo encontrar el primero en aliexpress.
@MichelKeijzers El ADM proporciona aislamiento. El TJA1050 es probablemente más barato
Ok, claro... dado que mi proyecto (más un proyecto de aprendizaje) probablemente no tendrá problemas, primero pruebo un TJA1050.