Después de varios correos vamos con la versión 2 que es basicamente una ampliación de la memoria ram de 32kb de ram a 512kb de ram, esto debido a que 32 kb de ram se tornan insuficientes cuando se desarrolla algo en lenguaje C, la verdad está es una placa básica con fines didácticos para que los estudiantes tomen contacto con el lenguaje asembler que es la unión de entre software y hardware, pero bueno atendí razones y comencé está nueva versión.
Kit68k Versión 2
En la imagen presentada se puede observar el diseño de la nueva versión es muy parecíada a la Versión 1, como dije solo cambia la ram de 32kb por una de 512kb, se cambió la usart por una 16c450 y se mejoro el sistema de decodifican de io para permitir un rango más amplio de memoria para en el futuro diseñar una tarjeta de video en para el Kit68k v2
Esta es una pequeña modificación la gente de google removió los archivos que tenía en Google drive hoy me di cuenta así que no me queda más que dejar los archivos del proyecto en OneDrive adjunto el Link:
les comentare es algo diferente a la version 2 ya que mi idea es a futuro incorporar una tarjeta de video así que prepare la interfaz de expansion pensando en esto, en una próxima entrada comentare más de esto ya que conseguir los componentes se ha puestos difícil, pero en eBay se pueden conseguir de hecho ya los compré y estoy esperando me lleguen bueno hasta la próxima.
Bueno estimados les comento que me llego el emulador de Eprom y funciona muy bien ahora puedo decir con propiedad que lo recomiendo, pero este post es bien sencillo tenia los archivos guardados en una cuenta de Dropbox pero de la noche a la mañana se perdieron o la gente de Dropbox los borro no se aun con exactitud que paso lo concreto es ya no estan, debido a esto cambie los archivos a Google Drive y los empaquete usando winrar a continuacon les dejo el link
Por otro lado he recibido comentarios acerca de la poca capacidad de la memoria ram y las opciones de ampliacion, esto me llevo a trabajar en Sistema un poco mas ampliado en la porxima entrega comentare mas de esto.
Tambien comento que migre todo a Kicad 7.0
Les Adjunto una foto del Kit68K con el emulador.
Bueno en la proxima entrega espero tener mas completo el Kit69k o como dicen ahora mas complete el
Buenos esta entrada es muy sencilla y es para comentar el proceso de programación en asembler del Kit68K, para, realizar esta tarea como les comente uso el programa free code Easy68K el cual se distribuye gratis, con el genero el código y tiene un simulador que ayuda bastante y una vez que tengo el programa ensamblado y he generado el archivo S-Record lo tengo que convertir a binario usando el EasyBin que viene junto con el Easy68K hecho esto, la ultima parte es programar la eeprom (28C64) usando el programa eewrite y el programador Arduino que describí antes, con la eeprom bien programada la pruebo en el kit y veo como funciona el programa y si presenta algún problema que no pude detectar en el simulador ha repetir el proceso y así hasta que funcione bien con le viejo método del tira y error, lo cual ha veces se torna un poco cansador, entonces buscado en la red encontré un emulador de eeprom en ebay que se vende armado o en forma de kit les adjunto el Link :
Lo compre hace una semana y estoy esperando que llegue, la gracia será que eliminare el paso de conversión a bin y la programación de la eeprom, estoy preparándome para cuando llegue los pasos serán cargar Python 3.5 en mi maquina y preparar el entorno de ejecucion.
Buenas se cumplio mi sueño al fin un PCB con todas las de la ley en circuito impreso y listo para comenzar a trabajar en forma mas profesional por decirlo de laguna forma, fue mucho tiempo de trabajo ad Honorem como se dice (solo por el poder de hacerlo) les adjunto una foto para que lo vean.
Kit68K o Mini 68008 SBC
Bien ahi esta el trabajo de tanto tiempo, esta tal cual lo documente en entradas anteriores tiene una: CPU MC68008 de 8 Mhz, memoria EEPROM de 8 Kbytes, memoria RAM de 32 Kbytes y una interfaz de comunicacion USART 8251 y lo mejor de todo hecho con tal solo 3 circuios TTL un 7414 – 74LS05 – 72LS138 ademas para propositos del Debug uso un 74HC574 y para la generacion del Baud Rate de la Usart un 74HC04 con un CD4040, ademas para la comunicion uso un adaptador TTL a USB el UC-2102, como ven es un sistema muy minimo pero muy funcional tiene soporte para interrupciones desde la Usart y un bus con interrupciones para agregar diferentes perifericos como ser una PPI o tal vez alguna USART o un Display y Teclado opciones existen muchas ya veremos.
Con Respecto del Monitor es bien sencillo por el momento solo tiene la capacidad de recivir un Archivo en formato Hex S03, el que espero mejorar para dotarlo de mayores funcionalidades y enlazarlo con la aplicacion IDE68K para que la descarga sea mas facil.
Bueno con estos doy por terminada la primera parte que fue la implementacion del Kit68K o SBC Mini 68008, en un futuro presentare opciones mejoradas pasa el programa monitor y alguna interfaz de proposito general.
Al fin termine el pcb le agregue soporte para interrupciones y cambie la DUART MC68681 por la USART 8251 de Intel , estos debido a la complejidad que supone usar la DUART y difícil de conseguir, al usrat la USART de intel desde el punto de vista de hardware y software me tuve que pasar al modo auto vector para conseguir esto hubo que modificar el sch y rehacer algunas partes del pcb, pero la parte interesante fue en el manejo de la interrupción por parte de la 8251 y que pudiese generar el modo auto vector de interrupción tube que usar el pin RxRDY del 8251 el cual tuvo que pasar por un inversor para llegar a 2 pines del procesador 68008 uno INT2 y el otro VPA este último pin lo use que para que la CPU pasara al modo auto vector con esto cada vez que la 8251 recibe un carácter genera una interrupción en el procesador MC68008. adjunto los equematico y pcb del proyecto.
Ambos Esquematico Final con KiCAD
PCB Final con KiCAd
Detalle con circuito para la generacion Interrupcion
Pruebas
Con el esquemtico final y antes de implementar el PCB realice algunas ruebas con el fin de verificar que todo funcionase bien, lo primero fue verificar el circuito de Debug compuesto por 2 Led y el 74LS373, para esto use mi protoboard donde tengo una version del kit montado les adjunto una foto de este.
Como siempre y por cosas deWordpress solo puedo adjuntar una foto, no puedo adjuntar un video con el funcionamiento de este una pena que nos limiten de esta forma. pero bueno en la foto se aprecian los led y la implementacion de la tarjeta.
A continuacion les mustro el programa que use para realiar esta prueba.
Bueno después de muchas pruebas en mi protoboard con los consiguientes problemas de ruido cables que se sueltan decidí armar mi PCB, el problema con Eagle es la licencia desde que lo compro Autodesk creo que Eagle perdió algo, así que me dio pro probar KiCAD y fue una grata sorpresa, funciona bastante bien tiene casi todos los componentes y los pocos que tuve que crear es bien sencillo. asi que me di el trabajo de implementar mi proyecto en KiCAD adjuto los archivos.
Esquema sch en KiCAD del Kit Basico 68K
Como pueden ver ahí esta mi diseño bien básico tiene 2 entradas de interrupción y se comunica con una interfaz externa TTL a USB de esas que se usan en los Arduino, ademas le puse un conector de expansión con el fin de poder agregarle algunas capacidades para comunicarse con el mundo externo y por ultimo tiene 2 led que los uso para propósitos de debug de las aplicaciones a implementar.
PCB del Kit Basico 68K
ene sta imagen se puede apreciar el PCB no es muy grande es de 150 mm x 90 mm no es muy grande se alimenta con una fuente de celular de esas de 5 Vdc y que pueda proporcionar unos 200mA max. si me envían un correo les puedo adjuntar los archivos, también los pueden descargar desde Telegram Buscando kit68k, recuerden se abren usando KiCad la ultima version, para la próxima ocasion espero poder presentarles el monitor que estoy haciendo para esta tarjeta. hasta la proxima.
Bueno estimados después de mucho tiempo de probar diferentes opciones al fin tengo mi Kit Básico, quise que fuese lo mas sencillo posible sin entrar en las grandes y complejas opciones que provee el MC68000, asi que investigue y me aplique y aquí tengo lo mas sencillo que pude implementar, en el diagrama pueden ver que me decidi por usar la versión de 8 bit del MC68000, el cual provee un bus de 8 bits y simplifica mucho el diseño, para el apartado de memorias lo implemente con dos memorias una EEprom la 28C64 para el programa y una 62256 para los datos a eso agregue una interfaz de comunicación la 8251 con un 4020DN para generar el baud rate la cual funciona muy bien, para el circuito de reset use un 74LS14 en conjunto con 74LS05, para el decodificador de memoria y las entradas/salidas un 74LS138, para generar las señales RD y WR de la memoria un 74LS14 y por ultimo para el reloj del sistema use un block Oscilador de 8 Mhz.
A continuacion como quedo todo en mi fiel Protoboard.
Para la parte de sofware use una herramienta llamada Easy68k el cual se puede descargar de la red en forma gratuita, como pueden ver en la foto implemente una PPI y también le conecte un 74lS373 para fines de monitoreo y ver que todo va bien en la PPI bascula un led y a la PPI le conecte un display LCD de 2 filas donde imprimo el clásico mensaje de Brian Kernighan y Dennis Ritchie «Hello World», por ultimo adjunto el programa de pruebas. no me quedo otra mas que pegarlo a continuación por si alguien lo quiere usar. con est me despido espero para la próxima entrada poder publicar el archivo PCB que estoy desatollando y por ultimo les adjunto un LINK de mi dropbox donde pueden descargar todo esto y mas cosas que tengo para el MC68K.
*———————————————————– * Title : Monitor KB68k * Written by : Luis Muñoz * Date : 21-01-2018 * Description: Monitor Basico * 21-01-2018 : Lo unico que hace es encender en forma alternada 2 led a razon de 1 seg app. * 01-02-2019 : Alterna 2 led en la PPI 8255 * 11-02-2019 : Incorpora un panel LCD a la porta A de la PPI * 13-09-2019 : Ajusta tiempo y se prueba display LCD ok ********************************** * Defines * * Mapa memmoia * cs0 00000 – 07FFF Eprom 32k * cs1 08000 – 0FFFF RAM 32k * cs2 10000 – 17FFF USART * cs3 18000 – 1FFFF 373 * cs4 20000 – 27FFF PPI * cs5 28000 – 2FFFF disp * cs6 30000 – 37FFF disp * cs7 38000 – 3FFFF disp RAM_START equ $08000 RAM_END equ $0FFFF MAX_LINE_LENGTH equ 80
********************************* * Led Debug 74HC373 * LED373 equ $18000 * Monitor Led RAM_POS equ $09000 * posicion RAM
**** primeros 8 bytes cargados despues RESET **** DC.l STACK_START * stack pointer supervisor DC.l start * Initial PC
******************************************** * Punto de entrada al Monitor *
start: lea STACK_START,SP * Set our stack pointer to be sure move.b #$80,PPI_CONT * PPI programa todas las port de salida modo 0 bsr Ini_lcd lea msgHello, a0 bsr.w print_lcd
Disculpas por haber demorado tanto pero el vil trabajo me tenia todo mi tiempo tomado pero al fin me pude desocupar un poco y retomar esta actividad que me gusta mucho, bueno ahí en la foto les muestro mi grabador de EEPROM graba muy bien la 28C64 que son 8 kilos de eeprom, lo implemente y probé, para la carga de datos uso la aplicación que suministra el proveedor del grabador, adjunto el link de descarga aunque lo puse anteriormente lo repito. https://github.com/petersieg/eeprom ahora esta mas actualizado y permite eeproms 28c16 28c64 y 28c256 lo cual es muy bueno y como dicen nuestros amigos ingleses see you soon. (nos vemos pronto).
Buenas retomo el proyecto del Kit, esto a ha sido un poco mas difícil de la que pensé, s de la experiencia con el Free Running pareció que todo estaba listo para el próximo paso conectar las memorias eprom o eeprom, pero aquí es donde apareció la siguiente complicación como grabar las eprom me conseguí un grabador pero este el Mega Max se conecta al PC por la puerta paralela y en estos días ya no existen las puertas paralelas y apenas quedan pc con puertas RS-232, así que mi proyecto se vio abrupta-mente detenido sin grabado de memoria eprom poco se puede hacer en estos casos, así que me di a la tarea de investigar como hacer uno de hecho en mi juventud me hice para programar 2716 usando un zx spctrum el que después modifique para programar 8748 y 8751, pero también pensé en estos tiempos donde la Internet es tan comun capaz que alguien tenga algo hecho y comence y suerte al poco tiempo y por casualidad di con el siguiente proyecto :
En esta Dirección pueden descargar todo lo necesario, lo único que se necesita es saber un poco de Arduino y Programación de este yo implemente el proyecto en calidad de prototipo con un costo total de 25 mil pesos, el siguiente paso fue conseguirme la memorias eeprom por suerte en el comercio local aun venden algunos modelos en una tienda llamada Digicom encontré unas 28c64 8k de memorias a un precio de 4700 pesos, así que procedí a comprar 2 y por ultimo lo mas complicado para empezar un programa llamado ensamblador de 68k:
Al fin he logrado implementar en un protoboard los circuitos mas basicos es decir :
Circuito de Reloj
Circuito de Reset
Circuito Decodificador de Memorias
Y Logica de control para la señal DTACK
Y coneccionado Basico al MC68K
Con esto la alambre y lo energize y lo hice funcionar en modo free-running, es decir esta ejecutando siempre la instruccion NOP. Adjunto una foto donde se observa el funcioanmiento.
En el Osciloscopio se aprecia la señal AS :
El circuito de reset originalmente estaba pensado hacerlo con un LM555 en modo monoestable, pero me cambie y decidi probar el circuito que adjunto y funcioan bastante bien genera un pulso de rese de casi 10 segundos, lo cual es mas que suficiente para resetear la CPU y los chips perifericos.
Y por ultimo esta el circuito decodificador de memorias y generador de la logica DTACK, en la parte superior se puede ver como estamos decodificando la zonas de memorias para nuestro sistema utilizare la eeprom 28c256 estas corresponde a 32 kilo word rom (64 Kilo bytes), y la memoria ram 62256 tambien 32 Kilo word de ram (64 kilo bytes), por lo tanto el direccionamiento es como sigue :
000000 – 007FFF Eeprom
008000 – 00FFFF Ram
010000 – 017FFF Circuitos periferico
Con estos quedo explicado minimammente lo que hicimos hoy bueno continuare.