jueves, 30 de mayo de 2019

KIT MOTOR ELECTRICO (PARTE 2): CAMBIANDO FIRMWARE CON EL STLINV2





Vamos al lío.

Para cambiar el firmware de serie del controlador del motor con el nuevo necesitamos acceder a su chip, para ello usaremos la entrada del sensor de velocidad al motor.

Aquí hay dos motores distintos, los que tienen acelerador (Throttle) y los que no, los primeros llevan un cable con un conector de 8 pines y los segundos de 6 pines.

De estos 8/6 pines nosotros necesitaremos solo 4.

El conector que sale del motor es una entrada hembra pero no lleva un conector estándar, lleva un conector Higo mini tipo A que no se vende en Europa, por lo que para poder conectarnos podemos optar por estas opciones:

  • Cortar el conector Higo y cambiarlo por un conector estanco estándar de 8/6 pines (habría que cambiar también el conector Higo del sensor de velocidad)
  • Conseguir un conector HIGO en el mundo (cosa que parece imposible)
  • Comprar un nuevo sensor de velocidad y cortar el conector
  • Comprar un alargador de cable o un adaptador de 8 a 6+2
  • Usar punteras de cable de 0,5mm y conectarlas 1 a 1.
De todas las opciones la más económica es el adaptador que adapta el conector Higo de 8 pines a 6 pines y a 2 pines.

NOTA: El cable adaptador para poder ponerle luces no sirve, solo trae 2 cables.

El color de los cables que necesitamos y su orden para conectarlos a los pines del programador es el siguiente:

  • cable morado - pin RST
  • cable naranja - pin GND
  • cable negro - pin SWIM
  • cable marrón-  pin S VCC / 5V

Una vez conseguido el cable y adaptado a nuestras necesidades, necesitamos el interface que nos permita comunicarnos con el controlador, el chipset es el STM8 y para programarlos existe en el mercado el programador STLinkV2, este programador permite a través de la conexión USB de un PC con Windows/Linux comunicarse con el controlador y acceder al firmware para cambiarlo o editarlo. Hay en el mercado clones de este programador a precios ridículos.



Es importante que a la hora de hacernos el conector casero no pongamos cables de más de 10cm, si necesitamos mas longitud se aconseja usar un alargador de USB.








Ahora tenemos que descárganos el firmware que seleccionemos:
  • Firmware de marcoq para pantallas de serie (VLCD5, VLCD6 y XH18)
  • Firmware de casainho para pantalla KT-LCD 3 (en este caso hay que instalar también el firmware en la pantalla y adaptar el cable al conector del motor) ver tutorial aqui
Tanto el firmware de marcoq com el de casainho es propiedad de ellos y lo han cedido para su uso sin fines comerciales para todos los usuarios particulares del motor TSDZ2, desde aqui mi mas sincero agradeciemiento a ambos.

Yo solo explicare el firmware de marcoq puesto que es el que he probado.
El firmware de marcoq viene con un configurador en java, por lo que tendremos que tener instalado en nuestro sistema lo siguiente:
  • Una version de Java funcional
  • Compilador de C para pequeños dispositivos, SDCC
  • Windows 64 bits, para 32 bits debemos reemplazar un archivo en el zip de marcoq, concretamente el archivo sh.exe ubicado en la ruta .. \ tools \ cygwin \ bin \ por el archivo zsh.exe de estas utilidades, se reemplaza con el mismo nombre sh.exe.
  • Software STVP de las herramientas ST Tool
Todos los instamos en la raíz de nuestra unidad principal C:\, sin carpetas por el medio.

Empezamos con la programación. 

Se quita la conexión de la batería al motor y nos aseguramos que se descargan los condensadores encendiendo la pantalla, toda la programación se hace sin alimentación de la batería, el STLinkV2 suministrara al chip la energía necesaria.

La primera vez es bueno que realizacemos una copia de seguridad del firmware del sistema, para ello abrimos el STVP y conectamos el PC al controlador del motor con el programador STLinkV2 y nuestro cable.

Una vez abierto el STVP de las herramientas ST Tool vamos a configurar el interface, elegimos en configuración la opción ST-LINK y ahí la opción SWIN y dentro de todos los controladores el que pone STM8S105x6 (daría igual el x4 pero este da menos fallos)

Una vez configurado vemos tres pestañas:
  • Program memory: es el firmware en bruto, el core del motor, en teoría el mismo para cada motor
  • Data memory: son las distintas opciones configurables para cada motor
  • Option byte: es la parte del firmware que tiene los protocolos de comunicación
En esta pestaña vamos a seleccionar una a una y a pinchar el icono que aparece un chipset en verde,se selecciona y se le da a file-save, asi en cada pestaña, al final tenemos que tener tres archivos grabados el Program memory, el Data memory y el Option byte.



Ya podemos cerrar el programa ST Tool .


Abrimos el configurador java de marcoq

Este configurador lo hace todo automáticamente, únicamente tenemos que seleccionar ciertas opciones que podemos cambiar libremente.

Vamos a ver que podemos modificar nosotros a mano en el configurador java de marcoq

Dentro de esta opción podemos configurar:
  • el tipo de display que tenemos VLCD5/6 (esto solo es para mostrar bien el nivel de batería)
  • si tenemos acelerador o sensores de freno
  • si queremos usar el botón de luces por defecto del display
  • si queremos introducir en el configurador el perímetro de la rueda o usar el de por defecto del display

  • si queremos configurar el modo de asistencia a pie o usar la de por defecto del display
  • si queremos configurar el modo de asistencia a pie con posibilidad de dejarla funcionando sin mantener pulsado el botón (con el display XH18 no he conseguido que funcione, se supone que con el nivel 1 seleccionado al pulsar el mando hacia abajo se tendria que quedar activado, a mi se me apaga) 
corrijo el comentario, hay que poner en la casilla walk assit off delay el tiempo que queremos que dure la asistencia...yo lo dejaba por defecto 2" y se paraba a los 2" marcoq pone 60"

  • si queremos mantener o no encendido siempre el display o que se desconecte tras no mostrar actividad en un periodo de 5 min.
  • si queremos usar la ultima versión de firmware beta
  • si queremos desconectar la resistencia del motor al pedalear hacia atrás
  • si queremos activar la protección de temperatura del motor (es necesario tener el sensor instalado)

  • si queremos configurar el modo calle o usar el de por defecto del display
  • si queremos usar el modo boost y como lo queremos configurar si por cadencia o por velocidad.


Ahora tenemos otros campos que debemos configurarlos en sus pestañas respectivas del configurador
BATERIA:

En este caso debemos introducir manualmente:

  • watios y amperios que tiene nuestra batería (Max Battery Power y Max battery current source). 
  • La disposición de celdas nuestra bateria (Battery Cells number), en este caso 10.
  • El valor de corte del motor (Battery Low Voltage cut-off) que esta en 29v por defecto para baterías de 36v. 

El resto de valores son valores estándar para celdas de 196.


MOTOR
En esta pestaña seleccionamos la batería que alimenta a nuestro motor, 36v o 48v.

THOTTLE
Se deja por defecto esta pestaña, si tienes acelerador le puedes cambiar los valores máximos que entrega el motor al pulsar los botones del acelerador

TORQUE SENSOR

Por defecto se deja en 0,637, si se toca este valor se modifica el factor de torque y se consigue que el motor interprete mas o menos potencia al pisar el pedal


PAS
numero de imanes máximos que se pueden poner en la rueda trasera, este numero se configura mejor en el display por lo que no se toca

PEDAL ASSIST: 

Y llegamos a la mejor parte, esta la opción que configura la potencia máxima que entrega el motor en cada uno de los niveles de asistencia. Va de 10 a 500%, de esta forma podemos configurar el motor a nuestro gusto. En esta pantalla se usa el last code beta, que es un firmware que entrega mucha potencia, de ahí los valores tan bajos. 


Aqui otra pantalla que trae por defecto.

Lo normal que suelo poner para montaña son valores de 30/60/90/120 mas o menos, mas de 300 no tiene sentido porque el motor no entrega tanto.

Una vez configurado y conectado el cable con el STLINKV2 solo nos queda darle a conpile y luego a program, el propio programa detecta el software STVP, borra los valores del motor y carga los nuevos valores program data, data memory y option byte.  

si marcamos la casilla save file.ini podemos dejar grabada nuestra configuracion en la casilla experimental settings.



Si queremos cambiar las opciones directamente en el STVP podemos hacerlo en la pestaña DATA MEMORY




La asignación de memoria va del 0x004000 al 0x00401F, Pero entendamos que esta opciones hay que ponerlos en valores hexadecimal y nosotros los calculamos en decimal.

Concretamente de los valores de cada una de las direcciones de memoria


una vez cambiados estos valores se le da al icono con el chipset en rojo para grabarlos en el controlador.

No hay comentarios: