hi, hat jemand von euch schonmal irgendwo im netz schonmal was zum PCI oder ISA Bus gefunden? Wär doch mal cool ne eigene PCI Karte zu basteln. Ich google hier schon die ganze zeit und such irgendwelche projekte oder dokus zu dem thema aber ich find einfach nix :/ MFG Marcel
Also ISA ist sicherlich der einfacher Standart, aber wenn du was zu selbstgebauten PCI-Karten suchst, kannst du mal unter: http://elm-chan.org/works/pci/report_e.html gucken. Rudolph
also der isa-bus scheint wohl ein wenig einfacher zu sein g hättet ihr auch noch was zu isa? MFG Marcel
ISA (Vater in estonian!) ist TOT, kannst du gleich vergessen. für PCI is am einfachsten die chips from www.plxtech.com zu benutzen, das ist einfach. www.opencores.com hat freie verilog code auch aber das ist nicht so einfach www.latticesemi.com hat freie code (für ispMACH) die meisten anedere PCI IP cores cost über 1000 EUR antti
jo klar isa ist nicht wirklich up to date aber irgendwie total einfach... kennt denn niemand von euch ne seite auf der man wirklich ne ganz simple pci-karte zu sehen bekommt und auch versteht? g MFG Marcel
Also Kolter ist für billige minimale Sachen brauchbar, aber wirklich nur dafür, denn die PCI-Prototyp-Karte stellt nur 16 Bit zur Verfügung, hat kein DMA usw.. Bei HK bekommt man bessere PCI-Karten: http://www.bln.de/hkmessysteme/ Und für ganz billige u. einfache Sachen sollte man eher den Parallelport nehmen, denn der reicht schon aus um LEDs anzusteuern und ist sehr einfach zu programmieren.
jo ich weiß das der parallelport easy zu verwenden is :) ich würde aber gerne eine EIGENE pci-karte basteln ohne irgendwelche prototyp-karten oder sonstiges... einfach eine ganz ganz ganz simple pci-karte die z.b. ne led zum leuchten bringt. Könnt ihr mir da weiterhelfen? MFG Marcel
Ohne fertige Prototyp-Karte hast Du praktisch keine Chance, allein schon weil auf dem einen Bus sowohl Daten als auch Adressen übertragen werden. Dazu kommt noch die Kommunikation mit dem PCI-Controller, damit es bei den Interrupts u. Adress-Räumen keine Konflikte gibt. Das ganze muss bei mind. 33,33 MHz und zudem bei variablen Takt funktionieren. Du kannst natürlich selber eine Prototyp-Karte entwickeln, aber schon das Löten der ICs mit den engen Pins wird schwierig.
jo aber für die ganze kommunikation mit dem pci controller usw. kann man doch von verschiedenen controllern machen lassen oder? Hast du vielleicht einen schaltplan von einer minimalen pci-karte? Marcel
ok, es is eigentlich moglich eine 'poor mans' PCI karte zu machen, es gibt beispiele wie POST CODE tester that has LED on port 0080X and ist mit zwei GALs getan. ich hatte es for mit einem XC9536 eine sehr einfache karte zu machen, es ist moglich! tricks sind dabei das man den ganzen plug and play weglasst und nur auf config space antworted. ich glaube um einen LED under software zu kontrollieren kann man karte machen mit etwa 20 macrocells. dann mus der Treiber jedoch direct auf den slot zu greifen all enumaration ist weg
oh docs gibt es haufen menge - zb die offizielle PCI docs kann man auch von internet finden, wenn man ordentlich sucht. aber genugend info gibt es auch in docs from vershieden PCI chips zb von oxford semiconductor ,tja aber eine proto platine mit irgenwas logic musst du doch machen antti
@Antti Ist ja mein reden, PCI Karte ist kein 10 Euro Hobby-Projekt. Und ohne entsprechende Messgeräte ist die Fehlersuche wohl auch nahezu unmöglich. Es ist halt nicht damit getan man nehme eine paar 74xx IC und ein paar Zeilen VB-Code und schon läufts. So ein Projekt ist nun mal nicht unbedingt ein Anfänger-Projekt.
@mitti Ja, meine ich auch. Bei ISA kann man einfach ein paar ICs zusammenlöten und die Karte normalerweise hot swap ein- u. ausbauen und wenn man denn alle Verbindungen nach dem Schaltplan mit Durchgangsprüfer durchgetestet hat, funktioniert das problemlos. Bei PCI gibt es aber schon bei "professionellen" Karten viele Probleme: Manche arbeiten auf einigen Mainboards überhaupt nicht, manche nur in einem Slot usw. und manche machen den Rechner einfach instabil. Das hatte ich schon einige male erlebt. Man kann sich zwar zuverlässige Board mit einem zuverlässigem Chipsatz wie Serverworks III oder AMD MPX kaufen, die auch mit nicht der PCI-Spezifikation genügenden Karten zurechtkommen, aber ich weiß von der Kolter-PCI-Prototyp-Karte, dass die schon ein kompliziertes Timing auf der Prototyp-Seite hat und es zudem noch eine erhebliche Exemplarstreuung gibt, so dass ich die nicht empfehlen kann.
Gibt es nicht Experimentierkarten in PCI? Elektor hat mal eine im Feb2002 veröffentlicht. Die Karte kümmert sich um die Kommunikation mit dem Bus und stellt diverse Ports zur Verfügung. Da kannst Du bestimmt Deine Schaltung anbinden.
Ja, die gibt´s hier: http://www.bln.de/hkmessysteme/ Allerdings kosteten die fast 900 DM, also nicht billig. Dafür ist die Qualität wirklich gut und man hat 3 verschiedene DMA-Modi, die man nutzten kann.
Wie Steuert man denn eigentlich so ein Teil an, falls man es gebaut bekommt? Da muss man doch sicherlich einen Treiber entwickeln, mit outp() wird da wohl nix mehr gehen oder? MfG Torsten
Mit pci-Funktionen bekommt man die Adressbereiche und da gibt´s immer einen (meist der erste) für einfaches direktes I/O. Provisorisch kann man in /proc/pci (Linux/Unix) nachsehen und die Adressen nehmen. Es ist wohl kompliziert, wenn man mehrere gleiche Karten hat, denn die Busse u. Devices den einzelnen Slots zuzuordnen ist ohne Kennzeichnungen an den Slots nur mit Ausmessen möglich.
wenn man kann grob es macht dann kann man mit sehr wenig hardware was zum basteln machen nur die signale clk frame cben und ein ADx signal damit kann man schon ein LED zum beispiel ansteurn :) is dann aber nur durch access zu config space antti
oje oje oje :) also werd ich wohl doch ne isa-karte basteln... mal sehn wo ich nen testrechner mit nem isa-steckplatz her bekomme g MFG Marcel
Es gibt ja viele alte Pläne für solche Karten. Beispielsweise die MC-Port-Karte oder wie die heißt. Die müsste von 1988 sein.
Hallo ich habe jetzt mein erstes PCI design geschaft siehe anhang da ist VHDL für BIOS Post Code tester zeigt ganz gut C1 wenn ich RAMs von computer enterferne :) antti
kommt alles in message ************ library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity pm_pci_lc_33 is Port ( -- 7 Segment LED's seg_led_1 : out std_logic_vector(6 downto 0); seg_led_2 : out std_logic_vector(6 downto 0); -- PCI AD_I : in std_logic_vector(7 downto 0); CBE_I : in std_logic_vector(3 downto 0); FRAME_I : in std_logic; IRDY_I : in std_logic; PCLK : in std_logic); end pm_pci_lc_33; architecture Behavioral of pm_pci_lc_33 is signal data80: std_logic_vector(7 downto 0); COMPONENT pm_pci_port80 PORT( clk : IN std_logic; frame : IN std_logic; irdy : IN std_logic; cbe : IN std_logic_vector(3 downto 0); ad : IN std_logic_vector(7 downto 0); portdata : OUT std_logic_vector(7 downto 0)); END COMPONENT; COMPONENT led7seg_decoder PORT( data : IN std_logic_vector(3 downto 0); seg : OUT std_logic_vector(6 downto 0)); END COMPONENT; begin -- PCI: Port80 Latch Inst_pm_pci: pm_pci_port80 PORT MAP( clk => PCLK, frame => FRAME_I, irdy => IRDY_I, cbe => CBE_I, ad => AD_I, portdata => data80); -- Segment LED decoders to port 80 Data register Inst_led7seg_decoder1: led7seg_decoder PORT MAP( data => data80(3 downto 0), seg => seg_led_1); Inst_led7seg_decoder2: led7seg_decoder PORT MAP( data => data80(7 downto 4), seg => seg_led_2); end Behavioral; ************************************** -- -- Poor Man PCI Interface: BIOS POST Code Tester (LED's to Port 0x0080) -- Checked with Memec Spartan-IIS200 PCI Board -- Copyright 2003 Nugis Foundation. All rights reserved. -- library ieee; use ieee.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity PM_Pci_Port80 is port( -- PCI Signals CLK: in std_logic; FRAME: in std_logic; IRDY: in std_logic; CBE: in std_logic_vector(3 downto 0); AD: in std_logic_vector(7 downto 0); -- Lathced Port 0xXX80 data output portdata: out std_logic_vector(7 downto 0)); end PM_Pci_Port80; architecture arch of PM_Pci_Port80 is signal pci_io_write: std_logic; signal pci_state_idle: std_logic; signal pci_state_1: std_logic; signal pci_addr: std_logic_vector(7 downto 0); begin process (CLK) begin -- on falling edge of PCI Clock! if (CLK'event) and CLK = '0' then -- transaction done if (FRAME = '1') and (IRDY = '1') then -- idle, abort transaction ! pci_state_idle <= '1'; pci_state_1 <= '0'; else -- transaction in progress, track ? if pci_state_idle = '1' then pci_state_1 <= '1'; -- to next state pci_state_idle <= '0'; -- clear idle -- first phase after idle,latch! -- we are active, latch all stuff: address pci_addr(7 downto 0) <= AD(7 downto 0); -- latch address! -- and io write pci_io_write <= not CBE(3) and not CBE(2) and CBE(1) and CBE(0); end if; if pci_state_1 = '1' then pci_state_1 <= '0'; -- exit state -- if address xx80 then latch data if (pci_io_write = '1') and (pci_addr(7 downto 0) = "10000000") then portdata <= AD(7 downto 0); -- latch PORT 0080! end if; end if; end if; end if; end process; end arch; ************* -- -- 7 Segment decoder (4 to 7) -- Copyright 2003 Nugis Foundation. All rights reserved. -- -- --0-- -- 5 1 -- --6-- -- 4 2 -- --3-- library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity LED7SEG_Decoder is Port ( data : in std_logic_vector(3 downto 0); seg : out std_logic_vector(6 downto 0)); end LED7SEG_Decoder; architecture Behavioral of LED7SEG_Decoder is begin with data(3 downto 0) select seg <= "0000110" when "0001", -- 1 "1011011" when "0010", -- 2 "1001111" when "0011", -- 3 "1100110" when "0100", -- 4 "1101101" when "0101", -- 5 "1111101" when "0110", -- 6 "0000111" when "0111", -- 7 "1111111" when "1000", -- 8 "1101111" when "1001", -- 9 "1110111" when "1010", -- A "1111100" when "1011", -- B "0111001" when "1100", -- C "1011110" when "1101", -- D "1111001" when "1110", -- E "1110001" when "1111", -- F "0111111" when others; -- 0 end Behavioral;
na das ist naturlich WAS! when du das mit Xilinx free tools zu .BIT file machst und diesen .BIT file in ein XC2S200 z.b. einspeist der auf einer PCI karte sitzt und 2 7-segment leds hat dann hast du eine PCI karte der die BIOS post test-codes als hex ziffer auf LEDs schreibt. das ganze ist so klein das es auch in XC9536XL reinpasst, und XC9536 kostet 1 dollar amerikano ist zwar die billigste PCI baustein dann. damit kann man noch nicht viel machen, aber es ist minimal write only port on PCI bus, kann schon was steuern oder was machen. für richtige volle PCI unterstützung braucht man ein bishen mehr zu schreiben :) löten braucht man heutzutage nicht mehr :) antti
An R.Freitag Erstmal vielen Dank für die üble Nachrede hier im Forum. Leider habe ich das Formum erst heute entdeckt, so dass ich hierzu Stellung nehmen kann. Wenn ich mich noch richtig an Ihr Zufallsgenerator-Projekt erinnere, hatten Sie neben meinem PCI-Dekoder noch eine TTL-Schaltung mit an den PCI-Bus angeschlossen, was lt. Spezifikation nicht erlaubt ist. Bus-Signale dürfen bei PCI-Steckplätzen nur mit einem Gatter mit max. 10pF belastet werden! Hierzu empfiehlt sich ein kurzer Blick in die PCI-Spezifikation - und ganz nebenbei hatte ich auch am Telefon noch darauf hingewiesen. So auch, dass der Dekoder nur für einfache I/O-Operationen mit geringem Datenvolumen bei 16bit entwickelt wurde. Dies alles steht auch auf der FAQ-Seite unter: http://www.pci-card.com/faq008.html P.S. Sie sollten fairerweise auch noch auf den günstigen Preis eingehen. Birnen mit Äpfel vergleichen, halte ich ebenso für unsportlich. In diesem Sinne... mfg
Hi, ich glaube, dass du mit dem ISA Bus erstmal ganz gut fahren würdest. Er ist relativ simpel zu programmieren und ich halte das auch für nen normalen Mikrocontroller (Avr oder Pic) noch machbar, da der ISA Bus Waitstates für langsamere Peripherie unterstützt. Der Bus selbst läuft normalerweise mit 8,33Mhz. Genauere Informationen zum ISA Bus findest du in dem Referenzbuch "ISA & EISA - Theory and Operation" von Edward Solari aus dem Jahre 1994. Das Buch gibts in fast jeder Uni Bibliothek - man kann es aber auch noch online kaufen (hab die Adresse leider nicht mehr, aber googeln wird wohl helfen). Darüber hinaus ist ISA noch nicht ganz so tot, wie mancher glauben mag. Wenn Ihr Euch mal die PC/104 Spezifikation anschauen, so werdet Ihr feststellen, dass dies ein normaler ISA Bus mit anderem Stecker ist. Ihr findet diesen Bus auf vielen PC embedded Boards - eben weil er so einfach ist. Ich habe Euch mal ein Bild meines Boards angehängt. Ihr seht oben ein Arbor N511 embedded X86 Board (Geode 300Mhz, CF Karte mit Debian Linux, 64MB Ram usw.) und ein Xilinx Spartan 3 Starterkit, welches über das Kabelgewusel an den PC/104 Bus angeschlossen ist. Ich erreiche beim 16bit Transfer ungefähr eine Transferrate von 1,5MByte/s. Die Ansteuerung des ISA Buses unter Linux ist auch sehr simpel. Bei Bedarf poste ich Euch gern ein Beispiel. Achtet bitte darauf, dass ISA Signale 5V haben und der Spartan3 eigentlich nur bis 3,3V (ich glaube er ist tolerant bis 4,5V) verträgt. Meinen Spartan hats hier aber trotzdem noch nicht gegrillt :) Gruß, Thomas
Autor: Marcel Block Datum: 22.05.2003 16:45 also der isa-bus scheint wohl ein wenig einfacher zu sein g hättet ihr auch noch was zu isa? MFG Marcel _______________________________________ Die Industrie fertigt auch aktuell noch Mother-Boards mit ISA- BUS an, wegen der riesigen Menge exzellent funktionierender ISA-Entwicklungen bei der Kundschaft. Hier mal eine meiner letzten Entwicklungen für den ISA-BUS. Die Schrittmotortreiber habe ich übrigens in einer alten Festplatte Pinmäßig überprüft und zum funktionieren gebracht,anschließend extrahiert und auf dem eigenen Board integriert. Das Ganze war für einen Dipl. Arbeitsplatz mit wenig Kohle für seine Rüstzeug gedacht. Letztlich wird an dem Schrittmotor ein Hebelchen befestigt, an welchem eine fixierte Heuschrecke gegen akustische Signale richtungsabhängig verdreht wird. Der "uralte" Elektronikschrott ist HighTech und wertvoll für knappe Kassen.
Hi, ja der Thread ist 3 Jahre al, ist aber doch sehr interessant. Hier habe ich eine Signalbeschreibung ergoogelt: http://hwb.sunsite.dk/co_ISA.html Hat jemand noch einen Tipp, wo man eine gute Beschreibung für das notwendige Timing, für den ISA-Bus, bekommt? Feadi
Soso, "isa bus timing" bei Google, gleich das erste Ergebnis. Jetzt schäme ich mich aber :( Gruß, Feadi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.