No se si esto lo he comentado alguna vez, si es asi disculpas y que borren el post.
El asunto, es que me gustaría conectar el puerto de usuario del CPC, que creo que hay salidas directas del Z80 a un Arduino.
Supongo que es tan sencillo como el bus de 8 bits del Z80 y conectarlo a 8 patillas en modo INPUT del Arduino, pero mi duda es, si en el Arduino tengo 0 voltios porque está entrando Información y el Z80 me está sacando una señal alta de TTL que creo que son 4V y pìco, entonces estoy generando un corto-circuito?¿, por lo que alguno de los dos saldrá escaldao del experimento... a no ser que como el arduino se traga la señal y la impedancia cambia no pasa nada...
Por lo que os pregunto a los que sabeís, que hay que poner un array de resitencias, de Transistores conectando la base de alguna manera?¿... otra cosa
Gracias.
Conectar 2 CPU's entre si... Z80<<->>Arduino
- mentalthink
- Amiga 2500
- Mensajes: 2840
- Registrado: 11 Abr 2010, 15:06
- Gracias dadas: 45 veces
- Gracias recibidas: 14 veces
- mcleod_ideafix
- 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: Conectar 2 CPU's entre si... Z80<<->>Arduino
mentalthink escribió:Por lo que os pregunto a los que sabeís, que hay que poner un array de resitencias, de Transistores conectando la base de alguna manera?¿... otra cosa
El bus del Z80 es bidireccional. Todo depende de cómo quieras usarlo desde el Arduino. En el caso general, lo que se necesita es un arbitrador del bus. En la práctica puedes hacer como hizo Sinclair, y es aislando el bus de datos del Z80 del resto del circuito usando 8 resistencias de 330 ohmios en serie, uniendo cada bit del bus de datos del Z80 con el correspondiente bit del puerto del Arduino con el que lo quieras conectar.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
- scooter
- Amiga 1200
- Mensajes: 1031
- Registrado: 17 Jul 2012, 09:25
- primer_sistema: C64
- Ubicación: Alicante
Re: Conectar 2 CPU's entre si... Z80<<->>Arduino
Personalmente veo mucho mas interesante hacer un puerto serie de verdad en el spectrum y allí conectar lo que quieras.
Ahora mismo he abierto un hilo en vaderetro (si no está permitido hablar de otros foros, si es así borrad esto) para ver si lo hacemos.
Otra opción seria i2c, spi etc. Me explico, eso solo seria útil para hacer DMA o algo semejante, si conecto un arduino al bus pierdo un saco de pines y no gano gran cosa.
Personalmente veo "obsoleto" conectarlo al bus del sistema.
Ahora mismo he abierto un hilo en vaderetro (si no está permitido hablar de otros foros, si es así borrad esto) para ver si lo hacemos.
Otra opción seria i2c, spi etc. Me explico, eso solo seria útil para hacer DMA o algo semejante, si conecto un arduino al bus pierdo un saco de pines y no gano gran cosa.
Personalmente veo "obsoleto" conectarlo al bus del sistema.
Última edición por scooter el 01 Mar 2015, 12:51, editado 1 vez en total.
- mentalthink
- Amiga 2500
- Mensajes: 2840
- Registrado: 11 Abr 2010, 15:06
- Gracias dadas: 45 veces
- Gracias recibidas: 14 veces
Re: Conectar 2 CPU's entre si... Z80<<->>Arduino
Gracias a los 2, como comenta Scotter miraré esa opcion que comentas, porque aunque un Mega tiene un chorrón de patillas, si por el tema de las velocidades y teniendo aquí en casa chips I2C quizás sea más interesante.. aunque no obvio probar lo que comenta McLeod...
Gracias como siempre.
Gracias como siempre.
- scooter
- Amiga 1200
- Mensajes: 1031
- Registrado: 17 Jul 2012, 09:25
- primer_sistema: C64
- Ubicación: Alicante
Re: Conectar 2 CPU's entre si... Z80<<->>Arduino
Si quieres hacer mas "asíncrono" habría que poner dos latch con salidas triestado uno mirando hacia cada lado tipo 74373,374,573 o 574 de forma que el speccy escribe algo y cuando pueda el arduino lo lee y viceversa. Sin hard en medio es complicado de sincronizar, había que usar interrupciones y no se si serían lo bastante rápidas, me parece que necesitarías un microcnotrolador algo mas rápido.
Ahora que me acuerdo, algunos PIC tienen un "modo paralelo" o algo parecido, de forma que 10 pines se comportan como 8 lineas de bus de datos, RD y WR y se puede usar el microcontrolador como si fuese un "latch listo", por el lado del spectrum solo haría falta un decodificador de direcciones y el pic. Nunca lo he usado, que conste.
Ahora que me acuerdo, algunos PIC tienen un "modo paralelo" o algo parecido, de forma que 10 pines se comportan como 8 lineas de bus de datos, RD y WR y se puede usar el microcontrolador como si fuese un "latch listo", por el lado del spectrum solo haría falta un decodificador de direcciones y el pic. Nunca lo he usado, que conste.
- explorer
- 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: Conectar 2 CPU's entre si... Z80<<->>Arduino
El PIC 16F877A, por ejemplo, se le puede poner el puerto D en modo "puerto paralelo esclavo", por el que se comporta como tal lo describes.
Documentación: Section 10. Parallel Slave Port
Documentación: Section 10. Parallel Slave Port
- scooter
- Amiga 1200
- Mensajes: 1031
- Registrado: 17 Jul 2012, 09:25
- primer_sistema: C64
- Ubicación: Alicante
Re: Conectar 2 CPU's entre si... Z80<<->>Arduino
Que yo sepa el arduino no tiene ese modo, o si lo tiene el AVR no lo soporta el wiring que yo sepa.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados