Fórum témák
» Több friss téma |
Fórum » Primo TV Computer
Témaindító: szikorapéter, idő: Márc 26, 2016
Témakörök:
Jó módszer a csipogtatás is, de az IC12 tartozik a D0-hoz, balról a negyedik. A 2-es és 14-es lábak össze vannak kötve.
Megpróbáltam kicsipogni, de nekem a 8 alsó IC közül a legbaloldalibbra csipog, ott is csak a 2-es láb. De legalább a többi 2-es lába nem csipog a D0 adatvezetékkel, tehát most azt gondolnám, ezt kell kiforrasztani.
De balról a negyedik, az a D7 nálam. Van itt valamiféle tükrözés, ami miatt a D7 a D0? Az IC12 valami beültetési rajzban található meg elhelyezkedésre? A Primo Hardver füzetekben nem találtam ilyet. A hozzászólás módosítva: Máj 16, 2022
Ne haragudj, elnéztem, az IC25 az, a bal szélső alul, itt viszont nincs összekötve a 2-es és 14-es láb, azért nem csipog. A 2-es lábnak kell csipognia a CPU D0 lábával. Illetve nekem az IC17 is gyanús, A 74LS373, azon keresztül olvassa a CPU a RAMokat.
A hozzászólás módosítva: Máj 16, 2022
Közben kicseréltem a baloldali 4116-os IC-t egy újra.
A jelenség pont ugyanaz most is. A memóriateszt továbbra is ugyanannyi hibát talál a 0. biten (100 körül). Ha a 74ls373 lenne rossz, akkor nem kellene sokkal több bitnek sérülnie? Persze ha meg nem az a rossz, akkor tippem sincs, hogy mi. Cseréljem ki az LS373-at egy újra? Egyáltalán: jól gondolom, hogy az 1-es helyiértéket tároló adatvezeték a D0? A hozzászólás módosítva: Máj 16, 2022
Nem feltétlenül rossz, csak néha hibázik, ez viszont akár a táp miatt is lehet. Ahogy nézem a rajzot, az IC57-nek is van köze a D0-hoz, illetve az EPROM-oknak is. A PEEK(5) (vagy PEEK akármi) egymás után sokszor ugyan azt adja, vagy néha mást?
Stabilan, mindig ugyanazt a rossz eredményt adja a PEEK(5). De már úgy tűnik, a BASIC hibázik, mikor nagyobb számokat kellene kezelnie.
Megpróbálom a memóriateszt programot fejleszteni, hogy több infót adjon, egyelőre jobb ötletem nincs. A tápegység nem eredeti, azom nincs. Csak egy PC táp adja a delejt. De a feszültségszintek rendbelévőnek tűntek
Kiderült, hogy elrontottam a memóriatesztelő programomat. A 0. bittel semmi baj nincs. Kijavítottam, és látszik, hogy az 5. és 7. bit hibás csak, a többi rendben van.
Kicseréltem mindkét memóriát, de az eredmény ugyanaz. Továbbra is az 5. és 7. bit a hibás. Ráadásul nem véletlenszerűen, hanem - úgy tűnik - mindig ugyanott.
További fejlemények:
1 - Kipróbáltam a kivett memóriákat a 0. bit foglalatába betenni, és ott mindegyik rendben van. 2 - Arra gondoltam, hátha a forrasztás közben valamelyik címvezetéket megsértettem. De ellenőriztem, és úgy tűnik, a kicserélt IC-k minden lába - a 2-es és 14-es kivételével - össze van jól kötve a többi IC azonos lábaival. 3 - A hibák mindig fixen, ugyanott vannak. A címek végződése azonban szabályszerűséget mutat: 4423, 4433, 4438, 44A3, 44B3, 44B8, 4533, 4623, 4633, 4638, ... Persze ez két IC-ből is származhat, de akkor is látszik, valami szabályszerűség, ami akár még jelenthet is valamit. Egyelőre azonban nincs jobb ötletem, mint hogy nem a megfelelő 4116-os IC-ket cseréltem ki. Más magyarázatot nem tudok elképzelni. Persze ez sem jó magyarázat, mert a Z80 D5 és D7 lábával való kontaktot ellenőriztem előtte a 4116-os 2-es lábával. A 7. bit szerintem balról a 4. IC, az 5. bit pedig balról a 7. Ezeket cseréltem.
A 373 gyanús. Az adatbuszt nem terheli valami túlzottan?
Ha a 373 lenne, akkor nem véletlenszerűnek kellene lennie a hibának?
Hogyan tudom ellenőrizni, hogy terheli-e valami az adatbuszt? Nem érzem, hogy bármi is jelentősen melegedne.
Attól függ, mi az IC baja.
Szkópod van? A busz bitjeinek amplitúdója egyenletes? Idézet: „nem véletlenszerűnek kellene lennie a hibának?” Talán mégis van benne logika: Idézet: „ 4423 -> 100 0100 0010 0011 4433 -> 100 0100 0011 0011 4438 -> 100 0100 0011 1000 44A3 -> 100 0100 1010 0011 44B3 -> 100 0100 1011 0011 44B8 -> 100 0100 1011 1000 4533 -> 100 0101 0011 0011 4623 -> 100 0110 0010 0011 4633 -> 100 0110 0011 0011 4638 -> 100 0110 0011 1000 ” A hozzászólás módosítva: Máj 17, 2022
Bocs, de nem értem.
A 373 nem az adatbuszra kapcsolódik? Az idézett értékek meg a címbusz értékei. És még a címekben sem látom a logikát, nemhogy a cím és az adat összefüggésében.
Ami még eszembe jutott, a hibás cellák adott bitje mindig ugyan az ?
Másik kérdés, hány kilobyteos a géped, lehet rossz blokkban keresed a hibát. Ha a kijelző területén lenne a hiba, az biztosan látszódna. Idézet: „És még a címekben sem látom a logikát” Szerintem feleslegesen ne forrasztgassál szegényben.
A64-es Primo gépről van szó. Úgy tudom, hogy a 4000-7FFF memóriatartomány a különálló alsó 8-as blokk, és a felső 32KB az egymás mellett lévő 2 darab 8-as memóriablokk. Ez lehet másként is?
A biteket megnézem még, hogyan térnek el. Az biztos, hogy általában 0 helyett 1 van, de azt hiszem, hogy fordítva is előfordul.
Gondolkodóba ejtett, amit írtál, ezért a tesztprogramomat szétbontottam külön memóriablokkokra. Ezek szerint a 4000-7FFF memóriablokkban az 5. és a 7. bit is rossz néha, de a 8000-AFFF blokkban már csak az 5. bit rossz. Ráadásul a B000-CFFF blokkban is rossz az 5. bit néha. (D000-tól kezdődik a programom, ami így elég kockázatos területen van.)
Lehet hogy a memóriablokkok egymást is befolyásolhatják? Ha a felső 32K-ban rossz egy 4116-os, az az alsó 16K RAM működését is befolyásolhatja? Akár más bitpozícióban is?
No várj, A32-ről volt szó, ott 16k RAM van csak.
Közben visszaolvastam, A64. Ez van ha az ember fáradt. Egy szkóp nagyon jó lenne a további hibakereséshez. Az opc1 16k-ja és az opc2 16k-ja is befolyásolja az alsó 16k-t. Más bitpozícióban nem, csak ott ahol a hiba van.
A hozzászólás módosítva: Máj 17, 2022
Közben legalább annyit leellenőriztem, hogy B300 felett van egy nagy összefüggő jó memóriaterület, tehát szerencsére a memóriateszt programom sértetlen helyen van.
Az azonban fura, hogy az E800 előtti bájtok az emulátoron futtatva is hibásnak minősülnek, sőt valahol az E8000 előtt az egyik teszt újraindítja az emulátort is. Mintha ott is valamiféle extra terület lenne, pedig erről nem is tudok. Amúgy ez az oldal tiltottnak minősítette az aktuális DIGI-s IP címemet, emiatt most máshonnan kell írnom. Nem tudom, miért lettem kitiltva, és mikor tudom újra elérni ezt az oldalt.
Azt a RAM tesztet talán érdemes lenne lényegesen kisebb órajellel is elvégezni....
Meg lehet érdemes lenne megnézni végre azt az A6 címbusz vezetéket, amit már régen...
A hozzászólás módosítva: Máj 19, 2022
Ami még kérdéses, a rom területről ugyanarról a címről többször olvasva mindig ugyan azt az értéket adja?
Az is lehet valaki tréfálkozik veled, mert a Basic területét bitorlod a teszteddel. ( bár az is érdekes lehet milyen nyelven írt programmal, hogyan tesztelsz. )
A program C-ben készült. A z88dk project képes arra, hogy C programot különböző Z80 alapú gépekre lefordítson. Ezt konvertálom WAV formátumra, amit aztán be tudok tölteni a LOAD paranccsal.
A teszt azt mutatja, hogy B300-E700 címtartomány között minden bit rendben van. Itt bőven elfér a tesztprogram. A ROM címek, amiket próbáltam már ezzel a teszt programmal is olvasni, mindig ugyanazt az értéket adják. Amúgy, ha a ROM olvasása labilis lenne, akkor gondolom a BASIC sem tudna elindulni, és a LOAD parancs sem tudna lefutni.
A 4116 dinamikus RAM. A tárolási terület 128 lapra van osztva, minden lapot 2ms -enként legalább egyszer frissíteni kell, hogy a tárolt adat "megmaradjon". A Z80 minden gépi utasítás első (M1) ciklusában egy lapot frissít. Egy utasítás végrehajtása (DMA aktivitás és Wait ciklusok nélkül) emlékeim szerint 4 .. 13 ciklust igényel.
2ms / 128 / 13 = 1.2us azaz 830 kHz. 1 MHz alá nem érdemes menni az órajel frekvenciájával. A Z80 órajelénak maximális frekvenciája 2.5 MHz, a Z80A 4 MHz.
Nem ismerem a szoftver pontos felépítését, majd javítsatok ki ha tévedek, de előfordulhat, hogy a "bootloader" rész hibátlan a ROM-ban, a gép el tud indulni, de ahol a "parancsok" vannak tárolva ott van gond, így ezeket már nem tudja hibátlanul értelmezni. Szkópot nem tudsz kölcsön kérni? Nagy segítség lenne.
Sajna nem tudok szkópot szerezni.
A "parancsok" alatt nem tudom, mit értesz, de ha a ROM BASIC parancsait, akkor szerintem az is rendben van, mivel a LOAD, FOR, PRINT is rendben lefut. Szerintem egyértelműen a BASIC változók tárolásához használt 4000 feletti terület hibája miatt működik rosszul a változók értékeinek tárolása. Lehet a hiba forrása a 4116 két végén lévő kondenzátorok sérülése?
A ROM BASIC parancsaira gondoltam, de ha rendben lefutnak akkor talán nem ott van a hiba. Emlékeim szerint a 4116-os annyira nem kényes a hidegítésre, de ez nagyon rég volt, egy visszhangosítót építettem velük, kondik nélkül, meg kb. az egész digitális részben mellőztem a hidegítést, mégis működött, de itt lehet okozhat gondot, bár akkor a kép is hibás lenne. Olyan DRAM-mal még nem futottam össze, aminek csak egy bizonyos címtartományban hibázott, amiket eddig hibásnak találtam azok vegyesen össze-vissza voltak hibásak, elejétől végig, de még túl fiatal vagyok, nem találkozhattam mindennel Merre laksz egyébként?
|
Bejelentkezés
Hirdetés |