- Prohardver app (nem hivatalos)
- Apple iPhone 16 Pro - rutinvizsga
- Milyen okostelefont vegyek?
- Redmi Watch 5 - formás, de egyszerű
- Azonnali navigációs kérdések órája
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Milyen GPS-t vegyek?
- Megjelent a Poco F7, eurós ára is van már
- Itthon is kapható lesz a kerámia Xiaomi Band 10
- Mobil flották
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
Hirdetés
- Apple iPhone 14 128Gb Kártyafüggetlen, 1Év Garanciával
- Ikea Eilif Paraván - Asztali elválasztó
- Bomba ár! HP ZBook FireFly G8 - i7 I 16GB I 512SSD I 15,6" FHD Touch I Nvidia 4GB I Cam I W11 I Gar!
- Lenovo V130-15IGM laptop (Pentium Silver N5000/8GB/256GB SSD
- Csere-Beszámítás! Prémium vizhűtéses számítógép! I9 11900K / RTX 3090 / 64GB DDR4 / 1TB SSD
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest