PinDA CPUBUS: Difference between revisions

From Appelwiki
mNo edit summary
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 2: Line 2:
Omdat de besturing mogelijk is door alle lijnen direct aan te sturen of door IO extenders te gebruiken is er een soort abstractie laag gemaakt.
Omdat de besturing mogelijk is door alle lijnen direct aan te sturen of door IO extenders te gebruiken is er een soort abstractie laag gemaakt.


* Direct, de data en adres lijnen komen direct overeen met lijnen op de arduino.
* [[CPUBUS_DIRECT]], de data en adres lijnen komen direct overeen met lijnen op de arduino.
* SPI, de data en adres lijnen worden door twee 16 bits IO extenders gestuurd via een SPI koppeling. (arduino/rpi)
* [[CPUBUS_SPI]], de data en adres lijnen worden door twee 16 bits IO extenders gestuurd via een SPI koppeling. (arduino/rpi)
* I2C, de data en adres lijnen worden door twee 16 bits IO extenders gestuurd via een I2C koppeling. (arduino/rpi)
* [[CPUBUS_I2C]], de data en adres lijnen worden door twee 16 bits IO extenders gestuurd via een I2C koppeling. (arduino/rpi)


zodra de bus gedefineerd is is de bus te lezen en te schrijven.
zodra de bus gedefineerd is is de bus te lezen en te schrijven.
Line 30: Line 30:


[[File:mega-6802.png]]
[[File:mega-6802.png]]
''2716 ROM''
Voorbeeld van het uitlezen van een CHEETAH U6 rom
CPUBUS init
READ FROM 0 = 87
READ FROM 1 = 248
READ FROM 2 = 0
READ FROM 3 = 0
READ FROM 4 = 19
READ FROM 5 = 16
READ FROM 6 = 1
READ FROM 7 = 80
[[File:cheetah.jpg]]
''PIO 6821''
[[File:cpubus_pio.jpg]]
  //A als ingangen
  Cpubus.write( pia_cra,0);
  Cpubus.write( pia_ddra,0);
  // B uitgang
  Cpubus.write( pia_crb,0);
  Cpubus.write( pia_ddrb,255);
  Cpubus.write( pia_crb,4);
  // met om en om patroon
  Cpubus.write( pia_ddrb,0x55);
Geeft op de monitor:
PRA = 251
DDRA = 0
CRA = 0
PRB = 85
DDRB = 255
CRB = 0




{{PinDA}}
{{PinDA}}

Latest revision as of 16:59, 5 April 2013

De CPU bus is een interface naar de memory/databus van de cpu borden. Omdat de besturing mogelijk is door alle lijnen direct aan te sturen of door IO extenders te gebruiken is er een soort abstractie laag gemaakt.

  • CPUBUS_DIRECT, de data en adres lijnen komen direct overeen met lijnen op de arduino.
  • CPUBUS_SPI, de data en adres lijnen worden door twee 16 bits IO extenders gestuurd via een SPI koppeling. (arduino/rpi)
  • CPUBUS_I2C, de data en adres lijnen worden door twee 16 bits IO extenders gestuurd via een I2C koppeling. (arduino/rpi)

zodra de bus gedefineerd is is de bus te lezen en te schrijven.

  • constructor(bustype, MPUtype, snelheid)
  • read_byte( address )
  • write_byte ( address, value )
  • read_word( address )
  • write_word ( address, value_16 )


Arduino Mega -> 6802 socket

PA0-7 A0-A7
PC0-7 A8-A15
PL0-7 D0-D7
PF0   R /W
PF1   E
PF2   VMA
PF3   /RESET
PF4   /HALT
PF5   MR
PF6   /IRQ
PF7   /NMI


Error creating thumbnail: Unable to save thumbnail to destination

2716 ROM Voorbeeld van het uitlezen van een CHEETAH U6 rom

CPUBUS init
READ FROM 0 = 87
READ FROM 1 = 248
READ FROM 2 = 0
READ FROM 3 = 0
READ FROM 4 = 19
READ FROM 5 = 16
READ FROM 6 = 1
READ FROM 7 = 80
Error creating thumbnail: Unable to save thumbnail to destination

PIO 6821

Error creating thumbnail: Unable to save thumbnail to destination
 //A als ingangen
 Cpubus.write( pia_cra,0);
 Cpubus.write( pia_ddra,0);
 // B uitgang
 Cpubus.write( pia_crb,0);
 Cpubus.write( pia_ddrb,255);
 Cpubus.write( pia_crb,4);
 // met om en om patroon
 Cpubus.write( pia_ddrb,0x55);

Geeft op de monitor:

PRA = 251
DDRA = 0
CRA = 0
PRB = 85
DDRB = 255
CRB = 0


PinDA - CPUBUS - MC6821