Programar un Z80

Sistemas 464, 664, 6128, 472, ...
Avatar de Usuario
mentalthink
Amiga 2500
Amiga 2500
Mensajes: 2840
Registrado: 11 Abr 2010, 15:06
Gracias dadas: 45 veces
Gracias recibidas: 14 veces

Programar un Z80

Mensajepor mentalthink » 28 Feb 2015, 16:22

Me habeís pillao productivo, o más bien pesao... :mrgreen:

Aunque no es una cosa que vaya a intentar hacer de inmediato, hay una serie de cosas que me tienen un poco liao...
Cuando programo un Arduino la cosa es facil le pones el cable le subes el programa y listo, pero es porque tienen memoria interna, pero y el Z80, supongo que necesito un programador Guillem?¿(he mirado programar Z80 en google, y no he visto que digan nada de un programador), y pensando en el Amstrad, lo que creo conprender si no me equivoco, es que el programa se localiza en los chips de Ram, y despues el PC counter del Z80 va mirando y va haciendo en tiempo real lo que va leyendo...

Por aclararme un poco un Z80 se programa con un programador (X) o se conectan las patillas a una Rom o Ram con datos y es ahí dónde realmente están los códigos que análogamente hago en un Arduino...

Gracias!!!

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 54 veces
Contactar:

Re: Programar un Z80

Mensajepor mcleod_ideafix » 28 Feb 2015, 20:46

El Z80 es un microprocesador, no un microcontrolador. No puedes programar un Z80 de la misma forma que lo haces con el Arduino, porque éste tiene dentro toda la circuitería para cargar el código que tú hayas hecho en su flash interna.
En un Z80 debe haber una ROM ya preprogramada, que permita usar al micro para, por ejemplo, cargar el resto del software desde algún sitio, tal como un puerto serie, o un cassette, pero por supuesto tienes que hacer la electrónica correspondiente para que el Z80 tenga ese puerto.

Una solución muy "cool" y muy "moderna" es usar un módulo FTDI245 y conectar sus GPIO's al Z80 haciéndolos ver como un puerto de E/S. Así, y con ayuda (por supuesto) de un programa en la ROM del Z80 puedes enviar programas completos a través del puerto USB.

Por otra parte, tienes el eZ80 que es la versión microcontrolador del Z80. O sea, un Z80, más rápido, y con periféricos, ROM y RAM incluidos, y ese sí se puede programar como un Arduino o cualquier otro microcontrolador.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
mentalthink
Amiga 2500
Amiga 2500
Mensajes: 2840
Registrado: 11 Abr 2010, 15:06
Gracias dadas: 45 veces
Gracias recibidas: 14 veces

Re: Programar un Z80

Mensajepor mentalthink » 01 Mar 2015, 00:56

Gracias McLeod, no sabía realmente la diferencia entre uCPU y uControlador , lo que comentas del Bus "cool" , eso tendré que buscar como se hace, demasiado avanzado para los pocos resquicios que me quedan como electrónico , lo de ese modelo de Z80 suena muy interesante, me lo miro.

Gracias.

Avatar de Usuario
explorer
MSX Turbo R
MSX Turbo R
Mensajes: 442
Registrado: 11 May 2014, 17:10
Sistema Favorito: Atari ST
primer_sistema: Atari 800XL/600XL
consola_favorita: Atari 2600
Primera consola: Atari 2600
Ubicación: Valladolid, España
Gracias dadas: 2 veces
Gracias recibidas: 158 veces
Contactar:

Re: Programar un Z80

Mensajepor explorer » 01 Mar 2015, 04:13

El Z80 no tiene memoria, y todos los datos los obtiene desde fuera, por medio del bus de direcciones y de datos. Si le conectas una ROM, EEPROM, RAM o cualquier cosa que imite un espacio de direcciones, entonces el Z80 iniciará y ejecutará los programas allí contenidos.

En cambio, un µcontrolador contiene suficiente RAM (flash) como para almacenar programas y no necesitar nada externo (normalmente).

Es un buen ejemplo de cómo la tecnología ha cambiado en estas décadas. No quiero decir que un µcontrolador sea mejor que un µprocesador -cada uno tiene su ámbito de aplicación-, sino que un µcontrolador de nuestros días tiene una potencia igual o superior a la de nuestros legendarios µprocesadores, o incluso µordenadores enteros.

Avatar de Usuario
mentalthink
Amiga 2500
Amiga 2500
Mensajes: 2840
Registrado: 11 Abr 2010, 15:06
Gracias dadas: 45 veces
Gracias recibidas: 14 veces

Re: Programar un Z80

Mensajepor mentalthink » 01 Mar 2015, 10:27

Gracias a ti tambień explorer, aunque nos salimos un poco del tema.. Porque se sigen usando procesadores?¿, si serían "inferiores" a lo que pueden hacer por defecto un uControlador.

Avatar de Usuario
jltursan
Amiga 2500
Amiga 2500
Mensajes: 4028
Registrado: 13 Oct 2006, 19:45
Sistema Favorito: MSX
primer_sistema: Dragon
Ubicación: Serracines, Madrid, España
Gracias dadas: 57 veces
Gracias recibidas: 157 veces
Contactar:

Re: Programar un Z80

Mensajepor jltursan » 01 Mar 2015, 10:32

Precisamente basado en el eZ80 existió un proyecto que parece que quedó en nada hace unos años, el CPCNG:

http://www.hanssummers.com/cpcng.html

Supongo que CPCNG viene de CPC Next Generation :-)

Porque se sigen usando procesadores?¿, si serían "inferiores" a lo que pueden hacer por defecto un uControlador.


Supongo que la respuesta es que para cada cosa hay que usar lo que mejor se ajuste. En ocasiones la velocidad o la memoria que trae un microcontrolador es insuficiente o el resto de extras que aporta innecesarios. Usar los componentes por separado permite ajustar las necesidades al máximo. Por otra parte, cuando se usa un microcontrolador normalmente supongo que es porque se busca la solución más compacta.

Avatar de Usuario
scooter
Amiga 1200
Amiga 1200
Mensajes: 1031
Registrado: 17 Jul 2012, 09:25
primer_sistema: C64
Ubicación: Alicante

Re: Programar un Z80

Mensajepor scooter » 01 Mar 2015, 15:50

En el fondo es lo mismo al 99,9% un microcontrolador no es mas que un ordenador en un chip, de hecho la frontera está muy difusa: ¿en que categoría ponemos una rPI? Desde afuera de la placa uno no sabe que es que.
Con facilidad se puede hacer una ROM para el spectrum para que se comporte como un arduino: que espere a que alguien le mande un programa por el puerto del cassette por ejemplo, y cuando lo reciba que lo ejecute.
El arduino es lo mismo, si quieres programar el chip se hace por SPI pero alguien le ha puesto un bootloader para recibir el programa vía serie.
Hay microcontroladores que se programan por la UART "de serie" porque el bootloader ya viene de fabrica, en algunos se puede eliminar y en otros no.
De los tiempos en que no se estilaba la flash ni las EEPROM tengo un emulador de rom que no es mas que una "RAM con puerto serie" es una caja con un micro, puerto serie y RAM. Tiene un conector que se por e en el zócalo estándar de las roms. El micro recibe el programa vía serie en un .hex .bin o como sea y escribe la RAM con él, después con unos buffers triestado desconecta la RAM de su circuito y la conecta a la placa (el spectrum en su caso) y hace un reset por una línea para que arranque. Lo bueno del emulador de ROM es que vale para cualquier micro, incluso con dos tarjetas permitía "programar" en 16 bits. Una vez depurado el programa se grababa una EPROM.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 54 veces
Contactar:

Re: Programar un Z80

Mensajepor mcleod_ideafix » 01 Mar 2015, 16:48

scooter escribió:En el fondo es lo mismo al 99,9% un microcontrolador no es mas que un ordenador en un chip, de hecho la frontera está muy difusa: ¿en que categoría ponemos una rPI?

Lo que lleva la Rasbpi es un SOC (System On Chip). La diferencia entre un SOC y un microcontrolador no es muy clara, en términos de hardware, pero sí en términos de software: el SOC está pensado para poder ser usado como sistema de propósito general, mientras que el microcontrolador está diseñado como sistema de propósito específico. En ese sentido, el microcontrolador posee periféricos "típicos" de los sistemas empotrados: timers, ADC, DACs, comparadores, etc. Tiene la RAM y la Flash incorporadas, y mecanismos para proteger su contenido. El SOC también tiene periféricos, pero están más dirigidos a poder enganchar externamente otros sistemas: tiene por ejemplo controladores PCI y PCIe, controladores DDR, etc, con idea de que se pueda expandir fácilmente.

Otra cosa en la que un microcontrolador y un SOC difieren es en su concepto de eficiencia energética: un microcontrolador es más probable que contenga mecanismos para reducir su consumo eléctrico a niveles de cuasi-hibernación cuando no se necesita toda su potencia, dado que el tipo de aplicaciones para las que será usado pueden incluir sistemas autónomos alimentados por baterías o paneles solares. Un SOC también es eficiente en términos energéticos, al menos comparado con un microprocesador de análogas prestaciones, pero no suele tener mecanismos tan... "drásticos".
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
scooter
Amiga 1200
Amiga 1200
Mensajes: 1031
Registrado: 17 Jul 2012, 09:25
primer_sistema: C64
Ubicación: Alicante

Re: Programar un Z80

Mensajepor scooter » 01 Mar 2015, 16:52

La verdad es que se solapan bastante los conceptos.
Muchos microcontroladores funcionan en modo microprocesador con RAM y/o ROM externa.
Algunas CPU llevan GPU...
Si uno no abre su PC no puede saber a ciencia cierta que hay dentro. Es un decir, si sabes las referencias de lo que lleva si que lo sabes, pero un señor usuario enfrente de un teclado y una pantalla, no sabe que es lo que hay detrás.

Avatar de Usuario
explorer
MSX Turbo R
MSX Turbo R
Mensajes: 442
Registrado: 11 May 2014, 17:10
Sistema Favorito: Atari ST
primer_sistema: Atari 800XL/600XL
consola_favorita: Atari 2600
Primera consola: Atari 2600
Ubicación: Valladolid, España
Gracias dadas: 2 veces
Gracias recibidas: 158 veces
Contactar:

Re: Programar un Z80

Mensajepor explorer » 01 Mar 2015, 17:27

mentalthink escribió:¿Por qué se siguen usando procesadores, si son "inferiores" a lo que pueden hacer por defecto un microcontrolador?

Los microprocesadores de hoy en día son miles de veces más potentes que los procesadores de nuestra época, por lo que son los adecuados para mover un sistema operativo y los dos centenares de procesos que solemos tener en marcha (mientras escribo, veo que en mi Linux hay 340 procesos).

Todo ese montón de información requiere una enorme cantidad de memoria, comparada con la que teníamos entonces, pero claro, en aquél momento solo necesitábamos ejecutar un programa cada vez :)

Un microcontrolador, por el contrario, resuelve problemas del tipo: necesito "algo" de inteligencia para resolver un problema de sensores y actuadores físicos.

Entonces, hace tiempo que la industria de la microinformática se dio cuenta de que había muchas ocasiones en las que para resolver ese problema se usaba una combinación procesador+memoria+ROM+convertidores A/D+puertos de E/S+... y se le ocurrió la solución obvia de meter todo eso en un mismo chip. Al principio tenían muy poca memoria, y pocos pines de E/S, pero hoy en día, hay monstruos de 40 pines, como el PIC16F877A, que se suele usar como cerebro de un sistema de ascensores. Incluso por medio de la voz :shock:

¿En ese tipo de problemas podríamos poner uno de nuestros procesadores conocidos, con algo de RAM y electrónica? Por supuesto, pero un microcontrolador te da la misma solución de forma más compacta, rápida y barata.

Los Z80, 6502, 6809... ya no se usan para "grandes" sistemas, sino para cosas sencillas.

Por ejemplo, tengo desde hace años un monitor Philips 200W. El año pasado, al arreglarle la fuente de alimentación, tomé nota del chip todo-en-uno (NT68F62) que gobierna la parte de la electrónica. Fui a ver su hoja de datos, y me llevo la enorme sorpresa de que ¡tenía un 6502! :D rodeado de muchas otras cosas, claro.
Adjuntos
NT68F62.png
NT68F62.png (49.56 KiB) Visto 9847 veces


Volver a “Amstrad CPC”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados