Chip de comunicación de línea de alimentación ST7590 integrado con un microcontrolador PIC18

0

Estoy utilizando el chip ST7590 para fines de PLC que se integra con un controlador STM, pero mi empresa utiliza controladores de microchip. He firmado un acuerdo de nivel de servicio por lo que no publicaré ni hablaré sobre la información no pública. La información pública a la que me refiero es la hoja de datos del chip y la design guía .

He seguido el guía de diseño a la letra en el hardware, aparte del chip STM que se está utilizando, USB, lector SDC y JTAG (pero estos son periféricos).

Estoy usando el PIC18F45K40 para controlar el ST7590. EUSART, reloj de 8MHz , Digital IO y el trabajo analógico en el PIC18.

En la configuración:

Enable Clock; 
Delay; 
PLC_RESET=0;
DFU =0; 
Delay; 
PLC_RESET=1. 

En main:

Set EUSART; 
If(CTS ==0) 
    // send the appropriate string of bytes through EUSART; 
Delay; 
If(CTS ==1) 
    // send the appropriate string of bytes through EUSART; 
//long delay and Loop.

Superviso el TX del ST7590 con una sonda lógica y no obtengo respuesta.

En el bucle principal, también he intentado alternar el pin DFU entre el envío de cadenas de bytes.

Las cadenas de bytes que envío las he comprobado varias veces, pero si estuvieran equivocadas, el chip todavía enviaría una respuesta de error. Por lo tanto, solo puedo asumir que es el firmware del chip el que está dañado o perdido; como alternativa, no está en el estado para ser enviado comandos.

También he reemplazado el chip por uno nuevo varias veces para asegurarme de que el firmware funciona.

¿Tienes alguna sugerencia?

Sé que he dado muy poca información, pero tengo las manos atadas y el soporte para este chip con un controlador terciario es limitado.

    
pregunta Gareth T.

1 respuesta

2

Voy a sugerir un enfoque de solución de problemas que he usado en situaciones similares. Podría parecer que esto va "en el camino más largo", pero tiene la ventaja de obtener más ayuda del fabricante, y por lo tanto puede ser una ruta más corta hacia el éxito al final.

Según tengo entendido, el ST7590 generalmente está controlado por una MCU STM (supongo que STM32, como en su placa de evaluación ST7590) y esa es la única configuración en la que ST ofrecerá asistencia. Por lo tanto, el enfoque es bastante simple, aunque a un costo financiero inicial:

  • Compre la placa de configuración / evaluación admitida por el fabricante, utilizando el ST7590 y la MCU STM32 adecuada.

  • Depure cualquier problema al usar el firmware STM32 compatible con ST en ese hardware. ST debería apoyarlo durante esta etapa, ya que se asegura de que la combinación de ST7590 + STM32 sea su estándar y amp; configuración compatible.

  • Una vez que esté funcionando, realice una ingeniería inversa de la interfaz entre el STM32 y el ST7590, utilizando un osciloscopio, un analizador lógico, etc., caracterice completamente las señales, los comandos, el tiempo, las respuestas, etc.

  • El resultado de ese ejercicio de ingeniería inversa se convierte en su plan para lo que debe duplicar en su diseño PIC18.

  • En la etapa en esa , si el diseño de su PIC18 no funciona correctamente, entonces debe haber diferencias con el comportamiento de la placa STM32: búsquelos y repárelos, observando el plan de comportamiento correcto que creó. más temprano. Parece que no tendrá la ayuda de ST para esta última etapa de ST7590 + PIC18, pero sigue refiriéndose a la configuración ST7590 + STM32 compatible para ver cómo funcionan deberían .

    Incluso podría utilizar pasos de diseño híbrido, p. ej. ese reloj de 8MHz que pretende suministrar desde el PIC18 en el diseño final, podría suministrarse desde un PIC18 (que no hace nada más) mientras que el código principal aún se ejecuta desde el STM32 de funcionamiento confirmado. Si ese reloj provisto por PIC18 es suficiente para detener el funcionamiento de la placa ST7590 + STM32 (donde la única parte inusual es que el PIC18 proporciona el reloj), usted identificó esto como un problema definitivo para investigar, antes de migrar todo el código al PIC18. .

respondido por el SamGibson

Lea otras preguntas en las etiquetas