Aktív témák
-
wnix
senior tag
-
wnix
senior tag
válasz
Flashback
#90
üzenetére
Úgy képzeld el, mintha lenne 3db RAM-chiped amit csak egy memória-címen keresztül egyenként tudsz elérni.
adott.
ram1 32byte-os
ram2 32byte-os
ram3 32byte-os
címző-chip 32byte-os
ezeket csak egy ''címző''-chip-en keresztül tudod elérni, de csak külön külön, mert a ''cimző''-chip is csak 32byte-os. Így a ''címző''-chip-nek meg kell mondanod, hogy melyik ram 32byte-ját (melyik bank-ot) akarod elérni. Ha ezt megmondtad neki, akkor a ''címző''-chip átmásolja a ram 32byte-ját a ''címző''-chip 32byte-jába és onnan ki tudod olvasni. Ezeket a ram-okat a ''címző''-chip segítségével ''bank''-ként kezeled így.
Így érthetőbb ?
Rover623:
szvsz mindenki alacsonyról indul. Én legalábbis így kezdtem. Speciel ATA-programozással, ahol néha az egész évi programozói-munkámat egy-két bit elírásával ''megformáztam''
. Jó lett volna akkoriban nekem is valaki, aki néhány dolgot megmagyarázott volna. Így továbbra is megpróbálok türelmes maradni, és egy szív-infarktus-mentes életet élni.
(Flashback CPUBurn programját ma is előszeretettel használom) -
wnix
senior tag
válasz
Flashback
#80
üzenetére
Én mindenhol regisztereket írtam, nem port-okat. I/O-Port csak az ISA-buszon vannak. Azon meg spórolni kell, mert csak 65536+-1 db van összesen.

'''Temperatur Sensor 2'' a Bank1-ben 4Eh-ba 81h-t írni és az 50h-t és a 51h-t kiolvasni.
Ez kb így néz ki:
PortOut(295h,4Eh); //* ezzel beadod az index-portba, hogy a 4Eh-regiszterrel akarsz valamit
PortOut(296h,81h); //* ezzel beadod a data-portba, hogy az előbb megadott regiszterbe 81h-t akarsz írni
PortOut(295h,50h); //* ezzel beadod az index-portba, hogy az 50h-regiszterrel akarsz valamit
érték50:=PortIn(296h); //* ezzel kiolvasod az előbb megadott regiszter értékét
PortOut(295h,51h);
érték51:=PortIn(296h);
Vagy akkor hogy lehet a 4eh portra írni?
PortOut(295h,4Eh);
PortOut(296h,érték);
lehet hogy a két parancs között egy kis időzítés kell, de nem biztos. (nem tudom milyen gyorsan dolgozik egy Winbond 83627HF chip)
[Szerkesztve] -
wnix
senior tag
válasz
Flashback
#67
üzenetére
Az érthetőség kedvéért:
a Port azt ami a 295h=661-en és a 296h=662-ön írhatsz/olvashatsz. Ezek az ISA-bushoz tartoznak. Ezeket írhatod a PortOut(Port,Érték) függvénnyel és olvashatod a érték:=PortIn(Port) függvénnyel.
pl: Kiolvasod a port 295h értéket: érték:=PortIn(295h);
Írhatod a port 295h-ot egy értékkel: PortOut(295h,érték);
a 295h az az ISA-index regiszter
a 296h az a ISA-data regiszter
csak ezeken keresztül érheted el a Winbond chip-et. (A PortIn,PortOut csak ezekre irányulnak)
A regiszterek a Winbond Chip regiszterei. Ezeket nem tudod elérni közvetlenül (pl regiszter 4Eh olvasni nem tudod így érték:=PortIn(4Eh) ), csak az ISA-porton keresztül.
pl: Winbond-regiszter 4Eh-t olvasod így: PortOut(295h,4Eh)
ekkor a Winbond Chippel közlöd, hogy a 4Eh regiszterhez szeretnél hozzáférni, de a regiszterben levő adatot még nem tudod. Ezt a 296h (data) porton olvasod ki így: PortIn(296h) közvetlenül az index-regiszter megadása után.
Tehát a 4Eh regiszter kiolvasása:
PortOut(295h,4Eh);
érték:=PortIn(296h);
Ha a winbond 4Eh regiszterét írni akarod akkor:
PortOut(295h,4Eh);
PortOut(296h,érték);
Mindig párosával használd az Index és a Data ISA-regisztereket. -
wnix
senior tag
válasz
Flashback
#63
üzenetére
A pontos lépésekkel nem szolgálhatok (nem vagyok benne biztos, hogy műkődik-e).
De szvsz próbáld meg, hogy a 4Eh regiszterbe beírsz egy Bank-címet, és megint kiolvasod az összes regisztert. De először ezt próbálnám.
Regiszter 4Eh-ba 80h-t beírni, és olvasni a 4Fh-regisztert. Most 5Ch-t kell, hogy kapjál.
Ha 4Eh-ba 00h-t írsz akkor 4Fh-t olvasva A3h-t kell, hogy kapjál. Együtt az 5Ch és a A3h a ''Winbond Vendor ID''. Így tudsz 16bit-es értéket kiolvasni (4Eh-ban a 7.bit írásával/törlésével)
Ezután próbálnám a bank-okat is sorban kiolvasni pl.
''Temperatur Sensor 2'' a Bank1-ben 4Eh-ba 81h-t írni és az 50h-t és a 50h-t kiolvasni. (59.oldal) -
wnix
senior tag
válasz
Flashback
#51
üzenetére
a registerek leírását a #8-as hsz-ben belinkelt (Bővebben: link) pdf-ben, a 38. oldaltól találod.
Megjegyzés:
1. szvsz a számokat ne 10-es alapu számrendszerbe írasd ki, mert ezeket megint vissza kell váltanod 2-es vagy 16-os alapúvá (fűggően melyik számrendszerben ''mozogsz otthonosan''). Itt regiszterekről van szó, itt a bit-eknek is van külön-külön jelentése.
2. amennyire átolvasgattam a fenti pdf-et, nem elég a regiszterek egyszerű kiolvasása, mert ebben a chipben több memoria-részre bontották a hardverinfok tárolását, (bank 1, bank 2, stb) így ezeket csak bizonyos regiszterek átírásával tudod kiolvasni.
3. az általad kiíratott regiszterek némelyike pl 79. (alias 4Fh) =163 (alias A3h) (pdf-ben 52.oldal) már jó, de pl ez a VendorID regiszter alsó 8bit-je, de hiányzik a felső 8bit. Az ilyen ''fix'' regisztereken lehet jól kipróbálni a programot műkődés szempontjából...
egyenlőre ennyi.... -
wnix
senior tag
válasz
Flashback
#18
üzenetére
Mást én se nagyon tudok. Elég komplikált egy érzékelő programozása, főleg, ha a ''chipset''-hez nincs külön leírás.
Talán még Bővebben: link.
vagy végsőként: Bővebben: link -
wnix
senior tag
válasz
Flashback
#16
üzenetére
Találtam egy kis delphi-source-ot, de csak Intel 82801 és 82371AB/EB (PIIX4). Asus 99127F vagy Winbond-ra lett írva. Talán így is segít !
Bővebben: link -
wnix
senior tag
válasz
Flashback
#11
üzenetére
MSN nincs, és ICQ sincs...

Idézet a 22.oldalról:
''port 295h: index port
port 296h: data port''
az index-port-ra beírod hogy melyik registerbe/ből akarsz olvasni/írni és akkor a data-port-ról olvashatod/írhatod a registert....
de mindent neked kell a chip-en programozni, az inicialialázálástól kezdve az adatkiolvasásig...( egy debugger sokat segít !)
sokat nem tudok segíteni, mert ezt a chipet még én se programoztam, ezért ajánlom figyelmedbe a linux-kernel-source-t, ebben van néhány érzékelő-driver, ami segíthet... -
wnix
senior tag
szvsz kezd a 22.oldalon a ''2. Hardware Monitor''-ral...
ezt a chipet még nem programoztam, de többnyire úgy szokott lenni, hogy van egy BASE register és van egy INDEX register. Ha beírod a BASE-registerbe az INDEX-register számát, akkor a következő olvasási ciklusban lehet kiolvasni/beírni azt ami kell.
a linux-kernel-source talán többet tudna segíteni ha értesz ''C++''-ul. mert abban is vannak pár érzékelő-driverek.... -
wnix
senior tag
Aktív témák
- Casco és kötelező gépjármű felelősségbiztosítás
- Linux Mint
- Formula-1
- Milyen billentyűzetet vegyek?
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Samsung Galaxy Felhasználók OFF topicja
- Házimozi haladó szinten
- Okos Otthon / Smart Home
- MWC 2026: Kezünkben a Vivo V70, megvan a magyar ára is
- Abarth, Alfa Romeo, Fiat, Lancia topik
- További aktív témák...
- GYÖNYÖRŰ iPhone 12 Pro Max 128GB Pacific Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3938
- BESZÁMÍTÁS! ASRock B450M R5 5600X 16GB DDR4 512GB SSD RTX 4060 8GB Zalman S2 TG Corsair 550W
- ÁRGARANCIA! Épített KomPhone Ultra 7 265KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Bontatlan HP Toll 2.0
- Samsung Galaxy S24 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
. Jó lett volna akkoriban nekem is valaki, aki néhány dolgot megmagyarázott volna. Így továbbra is megpróbálok türelmes maradni, és egy szív-infarktus-mentes életet élni. 
