Comenzar a trabajar con freescale

Mira podes bajarte de la pagina P&E Micro el winide para el jk1 armarte el programador que dice la hçoja de datos del mismo y comenzar con eso, tengo algunos programitas sencillos que pueden servirte,m tengo experiencia en Freescale pero nada de PIC podemos intercambiar si te parece
Salu2
 
Buenas, quisiera armar un programador que me permita hacer In-Circuit Simulation con mi JK3, el programador actual del que dispongo en uno clase III, que trabaja a 9600 baudios con conexión via RS232, usa un cristal de 5 MHz, además de una MAX232, una 74LS125 y dos reguladores de voltaje, (5 y 8 voltios). como oscilador externo uso un cristal de 4 MHz con dos condensadores de 22pF y una resistencia de 10M para trabajar en el protoboard.

Gracias de antemano
 
Buenas, quisiera armar un programador que me permita hacer In-Circuit Simulation con mi JK3, el programador actual del que dispongo en uno clase III, que trabaja a 9600 baudios con conexión via RS232, usa un cristal de 5 MHz, además de una MAX232, una 74LS125 y dos reguladores de voltaje, (5 y 8 voltios). como oscilador externo uso un cristal de 4 MHz con dos condensadores de 22pF y una resistencia de 10M para trabajar en el protoboard.

Gracias de antemano

Hamt, lo mejor que vayas pensando en usar los micros de la serie HCS08, no los HC08. Los primeros si permiten hacer In circuit debugging a través de un solo pin. Y si quieres un micro de 8-bit con low pin-out y con mejores características que el JK3, te recomiendo el QG8. Si necesitas un programador mucho más barato que el DBM multilink, te recomiendo este:

http://www.didacticaselectronicas.c...ategory_id=117&option=com_virtuemart&Itemid=6

Ese te servirá para los demás micros de la serie HCS08 y Coldfire V1.

Éxitos
 
Muchas gracias, pero por ahora lo que necesito es lo anterior, lo que quiero es armarlo, no importa si se usan varios pines para el In-Circuit Simulation, y lo necesito para HC08, sin embargo muchas gracias por responder tanrápido, eres genial!.

Gracias.
 
Buenas, quisiera armar un programador que me permita hacer In-Circuit Simulation con mi JK3, el programador actual del que dispongo en uno clase III, que trabaja a 9600 baudios con conexión via RS232, usa un cristal de 5 MHz, además de una MAX232, una 74LS125 y dos reguladores de voltaje, (5 y 8 voltios). como oscilador externo uso un cristal de 4 MHz con dos condensadores de 22pF y una resistencia de 10M para trabajar en el protoboard.

Gracias de antemano

el que te podés armar es el de la hoja de datos del jk3. Ese te sirve para hacer debugueo. Al que me armé yo le puse un cristal de 9.8304 MHz para poder hacer la conexion a 9600 baudios.
 
Gracias Foso, pero hoy en la mañana me dio por sacar el jk3 de la base de mi board, y hacerle puentes con cables del zócalo al protoboard, en Zonatecno.net encontré un artículo donde describían cómo hacer debbug quitando o desconectando los pines IRQ1, PTB0, PTB1, PTB2 y PTB3 del micro después de programar, lo hice así pero no funcionó, luego empezé a intentar con cada cable y resultó que después de programado debía quitar todos los mencionados menos el IRQ1, y funcionó!, estoy lleno de emoción escribiendo esta cita jejjejeje. Ha funcionado perfecto, pero aún no logro hacer que el CodeWarrior me saque de una instrucción BRSET o BRCLR, por ejemplo tengo

start:

BRSET 4,PTB,salto
BRA start

salto:

BSET 6,PTD

el CodeWarrior se queda en la rutina 1 y no puedo pasar a "salto". Espero puedan ayudarme.

PD: para la conexión a 9600 Baudios uso un cristal de 5 Mhz.
 
bueno si se te queda en la 1º rutina es porque no se dan las condiciones, asegurate de que el pin PTB4 esté en alto en el momento que se ejecuta la instruccion.

no se porque pero a ese micro no le pusieron pull-up al puerto B.

saludos
 
Última edición:
jajajajaa, si le puse pull-up, por supuesto, pero había puesto mal un cable, el de entrada, jejje, aún no lo pruebo, voy a probar más tarde a ver como me va, muchas gracias por responder tan rápido, agradezco mucho la ayuda de todos ustedes. En veerdad muchas gracias.

Cordial saludo desde Zipaquirá Colombia.
 
hola!!!...tengo un DEMOQE128 (32bits) y quiero saber como utilizarlo, no he encontrado muchos tutoriales sobre esto.... deseo saber como utilizar comandos AT ya que voy a adicionar a el un modem--- espero que alguien me pueda ayudar!!!!
 
contactores, es decir trabajar en un ambiente industrial la parte de control lo realize con un pic 18f1452 y al conmutar las solenoides o los contactores el pic se reseteaba o terminaba por bloquearse,

Estos micos funcionaban perfectamente en el laboratorio con un PCB bien diseñado, pero en la vida real no eran confiables. Hasta la memoria se les borraba!

Que les puedo decir... yo trabajo con estos micros 18F en algunas aplicaciones ligeras en mineria, en camiones gigantes (acondicionadores de frecuencia/voltaje y cambios controlados de transmision automatica)

Anteriormente los trabaje en automotores y si hay dificultades!!! pero eran de mi parte.

Me explico una ocacion diseñe un equipo que era instalado muy cerca al motor y el pic se calentaba por conveccion de los gases calientes del escape.

Sucedia que al apagar el motor un condensador se quedaba cargado y como el pic trabaja hasta 2V, el seguia corriendo, no habia un resest instantaneo, el pic seguia trabajando y cuando el voltaje baja de 2.7 el pic se loqueaba, detectaba pulsos falsos en los pines y hacia que interprete todo mal, incluso programaba cualquier cosa en la eeprom.

En laboratorio nunca sucedia, hasta que lo calente con un cautin hasta mas o menos 80°C y lo apague y se produjo el error!!! BINGO, la solucion fue usar el BOR a 2.7V, no lo quise poner mas alto por miedo a que se resete por un bajon del voltaje de la bateria. Sucedia que entre 2.7V y 2V y a esa temperatura los voltajes de VIH y VIL de los pines se solapan y detecta cualquier cosa.

Otro caso que me sucedio es cuando el micro tomaba la señal del RPM del motor desde la bobina de ignicion por medio de un filtro (los picos llegan a 300V, y en el otro lado del trafo de ignicion a 15kV) un buen dia a un carro que tenia instalado mi equipo se le metio agua a los cilindros, y hacia que parte de los 15kV regresen al primario de la bobina (que en realidad es un transformador) y pues... ahi si lo reseteaba a veces, o le hacia perder la comunicacion serial.... pero seamos comprensibles son 15kV.

De preferencia nunca uso el MCLR, siempre lo desactivo me ahorro unos cuantos componentes y reseteos por ruidos, para evitar cuelgues siempre blindo el area del cristal y nunca mezclo esa tierra con el resto de las tierras, es como una isla. Siempre usar los condensadores de bypass, etc... Hasta ahora no me dan mayores problemas.

Incluso llegue a sumergir un circuito con su pic, solo se cuelga si el agua toca a los pines del cristal, los caliento con cautin para ver que tanta temperatura soporta, algunos de mis equipos llevan mas de 3 años instalados en automoviles sin mayores problemas.

Saludos
 
Hola,

No he encontrado nigun tema de FLASH-2 en el foro, asi que creo que este es el mejor sitio. Mi cuestion es del siguiente micro controlador MC68HC908GZ60. No he encontrado nada relacionada con la flash-2 por eso abro este tema. Intento grabar y borrar informacion en la memoria FLASH-2 del MC68HC908GZ60 de la misma forma que lo hacia en la FLASH-1,con las mismas instruciones pero cambiando los registros del 1 al 2. El problema que me encuentro es que siempre que intento grabar algo en la FLASH-2 me sale en todas las posiciones de memoria el valor 0xAD y yo intento grabar cualquier otra valor. Os pongo aqui el codigo de como grabo y borro en la FLASH-1 que me funciona.
y de como grabo y borro en la FLASH-2 que no me funciona y siempre que intento grabar en una direccion, me sale 0xAD en todas las posiciones de esa parte de la FLASH-2.

FLASH-1 Codigo:
__________________________________________________​________________________________
extern void GRABAR_FLASH(unsigned char bits);
extern void BORRAR_FLASH();

#define __DI() \
{ asm sei; } /* Disable interrupts */ \
#define __EI() \
{ asm cli; } /* Enable interrupts */ \

UINT8 *PunteroMemoria=(UINT8*)0;
extern UINT8 *PunteroMemoria;

void GRABAR_FLASH(unsigned char bits)
{
char VARIABLEINUTIL;
char DELAY = 1;

__DI();
//1
setReg8Bits(FL1CR,FL1CR_PGM_MASK);
//2
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
VARIABLEINUTIL=FL1BPR;
//3
PunteroMemoria = 0;
PunteroMemoria += 0xFFD0;
*PunteroMemoria = 25;
//4
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//5
setReg8Bits(FL1CR,FL1CR_HVEN_MASK);
//6
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//7
PunteroMemoria = 0;
PunteroMemoria += 0xFFD0;
*PunteroMemoria = bits;
//8
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//10
clrReg8Bits(FL1CR,FL1CR_PGM_MASK);
//11
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//12
clrReg8Bits(FL1CR,FL1CR_HVEN_MASK);
//13
for (VARIABLEINUTIL=0;VARIABLEINUTIL<200;++VARIABLEINU​TIL){};
__EI();
}

void BORRAR_FLASH()
{
char VARIABLEINUTIL;
char DELAY = 1;

__DI();
//1
setReg8Bits(FL1CR,FL1CR_ERASE_MASK); //ERASE
clrReg8Bits(FL1CR,FL1CR_MASS_MASK); //MASS
//2
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
VARIABLEINUTIL=FL1BPR;
//3
PunteroMemoria = 0;
PunteroMemoria += 0xFFD0;
*PunteroMemoria = 25;
//4
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//5
setReg8Bits(FL1CR,FL1CR_HVEN_MASK);
//6
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//7
clrReg8Bits(FL1CR,FL1CR_ERASE_MASK);
//8
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//9
clrReg8Bits(FL1CR,FL1CR_HVEN_MASK);
//10
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
__EI();
}
_____________________END FLASH1____________________________________________

FLASH-2 Codigo:
__________________________________________________​___________________________

extern void GRABAR_FLASH(unsigned char bits);
extern void BORRAR_FLASH();

#define __DI() \
{ asm sei; } /* Disable interrupts */ \
#define __EI() \

{ asm cli; } /* Enable interrupts */ \

UINT8 *PunteroMemoria=(UINT8*)0;
extern UINT8 *PunteroMemoria;

void GRABAR_FLASH(unsigned char bits)
{
char VARIABLEINUTIL;
char DELAY = 1;

__DI();
//1
setReg8Bits(FL2CR,FL2CR_PGM_MASK);
//2
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
VARIABLEINUTIL=FL2BPR;
//3
PunteroMemoria = 0;
PunteroMemoria += 0x0462;
*PunteroMemoria = 25;
//4
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//5
setReg8Bits(FL2CR,FL2CR_HVEN_MASK);
//6
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//7
PunteroMemoria = 0;
PunteroMemoria += 0x0462;

*PunteroMemoria = bits;
//8
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//10
clrReg8Bits(FL2CR,FL2CR_PGM_MASK);
//11
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//12
clrReg8Bits(FL2CR,FL2CR_HVEN_MASK);
//13
for (VARIABLEINUTIL=0;VARIABLEINUTIL<200;++VARIABLEINU​TIL){};
__EI();
}

void BORRAR_FLASH()
{
char VARIABLEINUTIL;
char DELAY = 1;

__DI();
//1
setReg8Bits(FL2CR,FL2CR_ERASE_MASK); //ERASE
clrReg8Bits(FL2CR,FL2CR_MASS_MASK); //MASS
//2
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
VARIABLEINUTIL=FL2BPR;
//3
PunteroMemoria = 0;
PunteroMemoria += 0x0462;
*PunteroMemoria = 25;
//4
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//5
setReg8Bits(FL2CR,FL2CR_HVEN_MASK);
//6
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//7
clrReg8Bits(FL2CR,FL2CR_ERASE_MASK);
//8
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
//9
clrReg8Bits(FL2CR,FL2CR_HVEN_MASK);
//10
for (VARIABLEINUTIL=0;VARIABLEINUTIL<DELAY;++VARIABLEI​NUTIL){};
__EI();
}

______________________END FLASH2____________________________________________

Gracias.
 
Sigo mirandome el datasheet y lo unico que no me cuadra es esta nota:

NOTE
The vector locations and the FLASH block protect registers are located in
the same page. FL1BPR and FL2BPR are not protected with special
hardware or software. Therefore, if this page is not protected by FL1BPR
and the vector locations are erased by either a page or a mass erase
operation, both FL1BPR and FL2BPR will also get erased.

Pq el resto del proceso es identico el algoritmo de la FLASH-1.

Un saludo.
 
Hola,

Al final la solucion es que cuando grabas o borras en la flash-2. las rutinas del codigo de programa para realizar esta accion tienen que estar en la flash-1.
Teniendo en cuenta esto no hay ningun problema con el codigo que he puesto.

Gracias a todos.
 
No he encontrado hilos sobre este tema y quise lanzar esta pregunta acá, ya que vi que hay expertos en el tema de freescale :D
Quisiera saber como extraer el firmware de un freescale o leer el código que este tiene, el modulo que tengo es ZFSM-101-3, tengo el programador USB-Multilink, tengo el Codewarrior Development Studio v6.3 y la v10.6, tengo la interfaz para programar del modulo ZFSM-101-3 para USB, si algo podría darme indicaciones de como hacerlo o si conocen de alguien que pueda colaborame en esa parte.
:confused:
De ante mano gracias quien pueda colaborarme.
 
Atrás
Arriba