90 lines
4.1 KiB
Plaintext
90 lines
4.1 KiB
Plaintext
{{
|
|
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
│ Autor: Reinhard Zielinski -> Original-Code: Ingo Kripahle │
|
|
│ Copyright (c) 2013 Ingo Kripahle │
|
|
│ See end of file for terms of use. │
|
|
│ Die Nutzungsbedingungen befinden sich am Ende der Datei │
|
|
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
|
|
|
Informationen : hive-project.de
|
|
Kontakt : zille9@googlemail.com
|
|
System : Hive
|
|
Name : Bus-Erweiterung für Hive-Computer
|
|
Chip : Venatrix
|
|
Typ : Treiber
|
|
Version : 01
|
|
Subversion : 00
|
|
Funktion : Bus-System für Erweiterungsmodule
|
|
|
|
Der integrierte Loader kann Venatrix mit einem beliebigen Code versorgen
|
|
|
|
20-11-2013 -I2C-Slave Funktion hinzugefügt, damit die Bus-Karte vom Hive (Plexus) erkannt werden kann (Adresse 5)
|
|
|
|
|
|
COG's : MANAGMENT 1 COG
|
|
-------------------
|
|
1 COG
|
|
|
|
}}
|
|
CON
|
|
_CLKMODE = XTAL1 + PLL16X
|
|
_XINFREQ = 5_000_000
|
|
Treiberversion= 1
|
|
|
|
' /cs --------+
|
|
' clk -------+|
|
|
' /wr ------+||
|
|
' /hs -----+||| +------------------------- /cs ->bei Venatrix P24 statt P23
|
|
' |||| | -------- d0..d7
|
|
DB_IN = %00001000_00000000_00000000_00000000 'maske: dbus-eingabe
|
|
DB_OUT = %00001000_00000000_00000000_11111111 'maske: dbus-ausgabe
|
|
|
|
M1 = %00000010_00000000_00000000_00000000 'busclk=1? & /cs=0?
|
|
M2 = %00000011_00000000_00000000_00000000 'maske: busclk & /cs (/prop4)
|
|
|
|
M3 = %00000000_00000000_00000000_00000000 'busclk=0?
|
|
M4 = %00000010_00000000_00000000_00000000 'maske busclk
|
|
|
|
|
|
|
|
|
|
#0, D0,D1,D2,D3,D4,D5,D6,D7 'datenbus (Port A)
|
|
#8, B0,B1,B2,B3,B4,B5,B6,B7 'Port B
|
|
#16, C0,C1,C2,C3,C4,C5,C6,C7 'Port C
|
|
#24, BUS_CS 'Chip-Select
|
|
BUSCLK 'bustakt
|
|
BUS_WR '/wr - schreibsignal
|
|
BUS_HS ' '/hs - quittungssignal
|
|
|
|
SDA_PIN = 29
|
|
SCL_PIN = 28
|
|
|
|
obj
|
|
bus :"Venatrix-Bus" 'allgemeine Bus-Funktionen
|
|
i2c_slave: "AiChip_I2cSlave_Slave_003"
|
|
|
|
Var
|
|
byte proghdr[16] 'puffer für objektkopf
|
|
long plen 'länge datenblock loader
|
|
|
|
PUB main | zeichen,i 'chip: kommandointerpreter
|
|
''funktionsgruppe : chip
|
|
''funktion : kommandointerpreter
|
|
''eingabe : -
|
|
''ausgabe : -
|
|
|
|
bus.bus_init
|
|
i2c_Slave.Start( SCL_PIN, SDA_PIN, $5, 0, 0, 0 )
|
|
|
|
|
|
repeat
|
|
zeichen := bus.bus_getchar 'kommandocode empfangen
|
|
case zeichen
|
|
|
|
' ---------------------------------------------- CHIP-MANAGMENT
|
|
96: bus.mgr_getcogs 'freie cogs abfragen
|
|
97: bus.mgr_load 'neuen venatrix-code laden
|
|
98: bus.bus_putchar(Treiberversion) 'Rückgabe Testwert (Version des Venatrix-Treibers)
|
|
99: reboot 'Venatrix neu starten
|
|
|