Hogyan lehet PC rendszermemóriájába ágyazni ISA slotban lévő 16 bites kártya memóriáját?
Úgy hozta az élet, hogy most kellene egy 40 MHz (40 Msps) 8 vagy 16 bites TTL analizátor.
Így ha már úgy is ekkora sebesség kell, titeket olvasgatva vettem TLC5540-es A/D chipet. Gondolván, hogy ha úgy is meg kell oldanom 40 Msps beolvasását, akkor pont jól illeszkedik ehhez az oszcilloszkóp 40 Msps mintavételezéssel.
Kipróbálva az általam eddig elérhető lehetőségeket arra jutottam, hogy legolcsóbban - és legegyszerűbben - a 16 bites ISA slotba dugott kártya 32 kByte-os memóriájával lehetne megvalósítani a feladatot.
Ugyanis a kártyán akár egy bittel lapozható 2x32 kB és innentől az egyiket a PC felől mint belső memóriát lehet olvasni, a másikba pedig pöröghet 40 MHz-cel az adat.
[b]És itt elakadtam. Hogyan kell megoldani azt,[/b] hogy az ISA slotban lévő kártyán lévő memóriát lássa a PC (CPU, buszvezérlés, stb.) a megadott címtartományban és ne a rendszer RAM-ját? ( Úgy mint például a videokártyák RAM-jánál van ugyanez.)
Azaz hogyan lehet úgy beágyazni az ISA kártya memóriáját, hogy azt a részt tartsa tiszteletben a bootoló gép?
1. ISA busz már a mai gépekben nincsen
2. amiben van, ott úgynevezett modul szeletek, 64kb-os lapok kerülnek be egy adott tartományba, melyet még az XTtől örököltünk, és a gyári 640k-s terület feletti, eredetileg 1 megáig címezhető területre mennek fel ezek a modulok (pl vga bios, vagy lan boot eprom)
3.Természetesen ez már egy 386-oson is csak egyfajta emuláció, ami valós módban amikor a rendszer elindult, egy ilyen fél virtuális XT szerűséget ad, mondjuk a DOS alá.
4. Valójában védett módban illető memóriaterület a gép akár több mb memóriája fölé lapozható be, illetve akár "közé" is, a chipsetre jellemző egyedi konfigurációs regiszterek bizergálásával, illetve mindez már összeolvad az ISA plugplay történettel, aminek csak a rövid és vázlatos leírása 450 tömény oldal.
Hogy jelentkezik egy kártya címért, mit csinál a hardver a gép indulása közben, milyen feladatai vannak a biosnak, hogyan kell egy felhasználói drivernek, (amit a windows elvégez mondujuk) evvel az egésszel kommunikálni.
A feladathoz a gyors ram írását megoldó logikát sokkal nehezebb megépíteni, mint egy egyszerű akár mikrokontrolleres illesztőt, ami átjátssza az adatot pl usb-n PC-re.
Ezekhez komplett források, ötletek, rajzok, stb is vannak a neten, szemben az ezeréves ISA mizériával.
Btw én inkább vettem egy minila-t, az kész van, többezer embernek működik, van megoldása USBre, stb.
Nagyon szépen köszönöm a választ!
Egyszerűsítve az érdekel, hogy egy 16 bites ISA slotba dugott kártya - mint például egy SVGA kártya - hova ír be bootoláskor ahhoz, - vagy milyen io címen reagál mondjuk egy visszaadott számmal,- hogy a boot folyamatban ne ütközzön a kártyáéval azonos fizikai címen lévő rendszermemória.
Csak tippelek, hogy a boot során a kártya saját boot progija valahová beír a rendszermemóriába vagy io címre és ebből a BIOS tudni fogja a 640k feletti foglalását.
[A többi részlettel tisztában vagyok: cím, adat és vezérlőbusz jelek kezelése, DMA folyamat, stb. Csak az ütközésmentesítés (kizárás) hiányzik a feladat megoldásához.]
Esetleg erről lehetne többet tudni?
első találat, egyenesen a micro$ofttol
Vagy:
Normál módban amugy egy 486-on vagy 386-os lapon meg fog jelenni, ha beteszed egy általában üres lapra, nem tul reális scenárió, hogy valaki majd awe32-t, gravist, video-digikártyát dug mellé, és akkor összeakad, ezek a dolgok meg egyébként hótgyári hardverekkel is tudtak akadozni anno
Nekem nem látszik az értelme, hogy miért jó 486osokkal szívni 2015ben, de akkor csinálnám inkább IO mapped-re ahogy az összes ISA szkópkártya ilyen is volt anno
Még egyszerűbb is, hiszen a számláló ugyis ottvan ami mintavételezés közben címzi a ramot, csak egy porton át vissza kell az értékeket olvasni, memory mapped-hez meg az egész cimbuszt bonyolultan multiplexelni kell
Ezt a választ is nagyon szépen köszönöm!
Közben megoldódott a probléma. Kiderült, hogy alapból (reset-kor kikapcsolt elérhetőség esetén) az "üres" címekre nem lapoz be memóriát sem a BIOS, aem a HIMEM.SYS. Az EMM386.exe-t pedig pld.: x=A000-EFFF paranccsal utasíthatjuk arra, hogy "Ő" se lapozzon oda rendszermemóriából. Így a kártyamentes memória szakasz tartalma minden byte-on FFh a ráírási próba után is.
Vagyis a kezelő program indulásakor kereshet magának egy "üres" ablakot, majd beállíthatja oda a kártyán lévő, beágyazandó-belapozható memória címzését.
A miértekre egyszerű a válasz:
Sok olyan alaplap+proci+memória van amit a mai programok és/vagy a sulykolt/reklámozott miatt, igazából valóban nyomós ok nélkül cserélnek le újabbakra. Így bőven van 16 bites ISA-val szerelt alaplap forrásként.
Másfelől még ma is eléggé húzós ára van egy 40 Msps képességű oszcilloszkóp kártyának.
Ugyanakkor pici barkácsolással egy "öreg" alaplappal 1-2 ezresből elkészíthető.
Tetejében amellett, hogy nagy képernyős oszcilloszkóp, még pár százasból nagy pontosságú U-I-R-L-C-F-T mérőműszer készíthető belőle. Miután a gép eleve adva van a mérési adatok feldolgozásához és az illesztő is lehetővé teszi, további lehetőségként sokcsatornás nagy sebességű digitális analizátor, fordulatszám mérő, IrDa teszter, E és H térerősség mérő és még sok minden készíthető, szintén pár fillérből.
Miután minden kalibrálási folyamathoz a programozás lehetősége rendelkezésre áll.
Mindemellett mindezt az egyébként kidobásra szánt elromlott CD/DVD-HDD-FDD meghajtókból régi, ma már az új gépekben nem használható kártyákból kiemelt alkatrészekkel meg lehet csinálni.
Azaz egy fajta újrahasznosítás mellett oktatási és amatőr célokra különösen kedvező tevékenység az elkészítés-felhasználás.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!