Arduino Mega & LIN Transceiver (MCP2004)

0

Estoy tratando de conectar un Arduino Mega con otro dispositivo utilizando un Transceptor LIN. Decidí usar un LIN MCP2004 Transceiver para esto.

Ahora estoy tratando de entender el diseño de referencia de MCP2004. Se me ha ocurrido el siguiente diseño, pero tengo un par de preguntas:

  1. ¿Se debe tirar de RxD hasta 5 voltios o 12 voltios?
  2. ¿Los valores para R1 y R2 son correctos?
  3. No entiendo qué hacer con el pin V_REN?

Gracias.

PS, no sugiera otros transceptores LIN ya que solo tengo acceso a MPC2004.

simular este circuito : esquema creado usando CircuitLab

    
pregunta theAlse

2 respuestas

1
  

¿Se debe extraer RxD hasta 5 voltios o 12 voltios?

A 5V, o de lo contrario se quedará sin especificaciones con el Arduino.

  

¿Los valores de R1 y R2 son correctos?

Se ve bien. RXD es un pasador de drenaje abierto. Conectará la resistencia de + 5V flotante a GND cuando esté activa.

  

No entiendo qué hacer con el pin V_REN?

Mi opinión (de la lectura de la hoja de datos) es que este circuito, cuando se usa en una aplicación automotriz, puede mantener una MCU conectada en modo de reinicio / apagado hasta que la tensión del sistema se haya estabilizado. En la hoja de datos, el circuito hace esto usando el pin V_REN conectado a un regulador de voltaje que impulsa la MCU conectada. Se supone que el regulador de voltaje tiene un pin de apagado o similar que puede ser controlado por V_REN. La razón para hacer esto es que el bus LIN no debe ser perturbado por datos extraviados cuando el vehículo se enciende y la MCU podría estar en un estado indefinido.

    
respondido por el Dejvid_no1
1

Su esquema mantendrá el transceptor permanentemente despierto, ya que CS nunca bajará. Esto puede no ser lo que quieres. Se espera que la mayoría de los diseños LIN se desactiven cuando el bus no esté activo para ahorrar energía. Si no planea usar marcos WAKEUP, no necesita implementar el modo de suspensión.

El pin V_REN también está relacionado con el modo de suspensión. La idea es mantener solo el transmisor LIN encendido durante la suspensión, apagando la MCU. Cuando llega un marco de DESPERTAR, el pin V_REN se moverá hacia arriba para encender la MCU. En el caso de Arduino, tendrás que deshacerte del gestor de arranque si quieres usarlo en este modo, de lo contrario, al activarse, estará esperando una secuencia de programación en lugar de reaccionar a los mensajes LIN.

    
respondido por el Dmitry Grigoryev

Lea otras preguntas en las etiquetas