Enterprise Forever

:HUN => Hardver => Topic started by: Povi on 2014.October.08. 11:04:51

Title: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2014.October.08. 11:04:51
Nyitottam egy új topicot, ide át lehetne tenni az ezzel kapcsolatos hozzászólásokat.

Összefoglalásképpen itt a hivatalos Application Note, hogyan működik ez az egész:
http://ww1.microchip.com/downloads/jp/AppNotes/00579b.pdf

Van egy kis példaprogram is. Eszerint, ha a Z80 RD, vagy WR jelet küld a PIC-nek, az a PIC-en megszakitást generál.
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2014.October.08. 11:10:47
Ide még összegyűjtöm a leírásokat, hogy könnyen megtalálható legyen a topic elején bármikor:
Using the 8-Bit Parallel Slave Port AN579 (http://ww1.microchip.com/downloads/jp/AppNotes/00579b.pdf)
Section 10. Parallel Slave Port (http://ww1.microchip.com/downloads/en/DeviceDoc/31010a.pdf)

A párhuzamos slave port általános jellemzői (http://www.t-es-t.hu/elokep/pic/felhkk/kk/sz1401.htm)
A párhuzamos slave port vezérlő regiszterei (http://www.t-es-t.hu/elokep/pic/felhkk/kk/sz1402.htm)
A párhuzamos slave port működése (http://www.t-es-t.hu/elokep/pic/felhkk/kk/sz1403.htm)
A párhuzamos slave port kezelése (http://www.t-es-t.hu/elokep/pic/felhkk/kk/sz1404.htm)
A párhuzamos slave port illesztése (http://www.t-es-t.hu/elokep/pic/felhkk/kk/sz1405.htm)

MODERN MICROCONTROLLERS AS VIRTUAL DEVICES FOR OLD MICROPROCESSOR SYSTEMS  (http://www.ace.tuiasi.ro/users/103/Bind3.pdf)
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Ferro73 on 2014.October.15. 17:26:06
Nézegettem a PIC-ek között és ráleltem a PIC16(L)F1459 típusra.
Ennek van beépített USB vezérlője és még marad kimenet is.
Tervem szerint a PIC RA0,RA1 re menne az USB+ USB- , RC0-RC7 lenne az EP B5 port billentyűzet értéke, az RB4-RB7 lenne az EP B5 port sorcím, az RA3-RA5 pedig lehetne egy INT a PIC-nek amit az EP WR0 / OUT (0B5h),A /.
Mivel ez a PIC akár 48MHz is működik így 12x több utasítást hajthat végre.
Ez elegendő lehet a normál 4 MHz es Z80A CPU-hoz.
Mert elég csak a pillanatnyi sor értékét ki írni.
 
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2014.October.15. 18:16:40
Ja, ja, csak az a baj, hogy ez úgy nézem, nem támogatja a PSP módot. Meg Pickit 2 se égeti (nekem az van), hanem 3-as kell hozzá.

Amin meglepődtem, (pont ma néztem), hogy a 16f887-es se tudja a PSP-t, csak a 877-es, pedig az a régebbi modell.
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Ferro73 on 2014.October.15. 18:52:25
Ahogy elnéztem a PSP-t csak olyan PIC támogatja ami minimum 40 lábú
Viszont a PIC16C765 PSP-t és USB 1.1 tartalmaz ez elég lehetne a billentyűzetnek de csak 24 MHz.
Ami csak 6x a Z80 hoz képest.
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2014.October.17. 11:45:13
Ahogy elnéztem a PSP-t csak olyan PIC támogatja ami minimum 40 lábú
Sajnos ez se igaz, mert a 887-es is 40 lábú, még se tudja... :-)
Egyébként végre most 7végén úgy néz ki, lesz is egy kis időm foglalkozni vele.
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2014.October.18. 11:40:54
áááá, ez se akar működni...

úgy néz ki, bennem van a hiba valahol

a PIC megkapja a 8MHz-et a gépről, el is indul rajta a program, egy 7szegmenses kijelzőre kirak egy nullát, de portolvasásra és írásra nem történik semmi...

port írásra a port alsó négy bitjét kéne hexában kiírni a 7szegmenses kijelzőre...
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Ferro73 on 2014.October.18. 11:45:13
Sajnos ez se igaz, mert a 887-es is 40 lábú, még se tudja... :-)
Egyébként végre most 7végén úgy néz ki, lesz is egy kis időm foglalkozni vele.
Én nem azt írtam hogy, minden 40 lábú PIC támogtja hanem ami támogatja a PSP-t azok mind minimum 40 lábú.
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Ferro73 on 2014.October.18. 11:49:22
áááá, ez se akar működni...

úgy néz ki, bennem van a hiba valahol

a PIC megkapja a 8MHz-et a gépről, el is indul rajta a program, egy 7szegmenses kijelzőre kirak egy nullát, de portolvasásra és írásra nem történik semmi...

port írásra a port alsó négy bitjét kéne hexában kiírni a 7szegmenses kijelzőre...
Milyen nyelven írod? assembleben lehet tudok segíteni.
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2014.October.18. 11:56:28
mármint melyik assembly-re gondolsz? PIC, vagy Z80?

EP-ről csak sima port írást, olvasást küldtem BASIC-ből

a PIC-en lévő program pedig a gyári PSP-s példaprogram egy nagyon kicsit módosítva (egyébként volt benne hiba, lehet, hogy nem vettem észre mindet és azért nem működik)
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Ferro73 on 2014.October.18. 12:07:46
mármint melyik assembly-re gondolsz? PIC, vagy Z80?

EP-ről csak sima port írást, olvasást küldtem BASIC-ből

a PIC-en lévő program pedig a gyári PSP-s példaprogram egy nagyon kicsit módosítva (egyébként volt benne hiba, lehet, hogy nem vettem észre mindet és azért nem működik)
Igen PIC assemblerről , egyébként milyen PIC 16xxxxx ?
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2014.October.18. 12:10:33
16F877A
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2014.October.18. 12:13:57
ezt a programot használtam, ami ennek az AN-nek a végén van:
http://ww1.microchip.com/downloads/jp/AppNotes/00579b.pdf

a 43. sorban van egy hiba, a movlw 0xff helyett clrw (vagy movlw 0x00) kellett volna

és ezek alapján még máshol is lehet... :-)
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Ferro73 on 2014.October.18. 12:31:33
A 106 és 107 sornál mi értelme portD kiolvassa és D be rakja ????
A 107. sort talán  MOVWF PORTD
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2014.October.18. 12:47:39
A 106 és 107 sornál mi értelme portD kiolvassa és D be rakja ????
A 107. sort talán  MOVWF PORTD
tényleg!
ettől még a port írásnak mennie kellett volna... :-)
félek, hogy valahol az init-nél lehetnek problémák
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Ferro73 on 2014.October.18. 12:59:41
nem ismerem teljesen de nem kell minden új megszakításnál be állítani a megszakítás engedélyezését mint EP nél az out (0b4h),a.
FLAGREG lesz valahol a ludas valamelyik  BCF, BSF re tippelek így hirtelen
PIC 16c74 en próbálkozol ?
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Ferro73 on 2014.October.18. 13:06:15
Minden vissza térésnél :
    bcf    PIRx,PSPIF    ;a megszakítás jelzőbit nullázása
     retfie         ;visszatérés a megszakításkezelésből
ezt kellene meg próbálni.
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2014.October.18. 13:23:21
na, ami probléma lehet, mindjárt ki is próbálom:

induláskor alapból analóg a PORTE

ezt digitálisra kell állítani a PSP módhoz (ADCON1 regiszter)
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2014.October.18. 13:26:48
mondjuk azt se értem, az INT vektort miért 0x05 címre teszi, amikor 0x04-re kéne...
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Ferro73 on 2014.October.18. 13:39:14
mondjuk azt se értem, az INT vektort miért 0x05 címre teszi, amikor 0x04-re kéne...
Akkor:  org 04
           nop
           .....
így próbáld nem lesz probléma
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2014.October.18. 22:12:21
még mindig nem megy, úgy hogy előbb utóbb összerakom csak LED-ekkel (mivel TTL probe-om nincs), a buszbővítő meg tud hatjani egy LED-et (kb. 15-20mA lábanként)?
néha az exdos-kártyát se látja, kicsit játszani kell a bedugásnál, mondjuk az is igaz, hogy azon már talán oxidáltabb a csatlakozó.
vagy az EP-n is meg kéne tisztítani? (bár akkor szerintem 8MHz-et se kapna a PIC)
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Ferro73 on 2014.October.19. 08:54:28
Ha nincs műszered de van 2 LED-ed 2 ellenállásod némi vezeték csinálhatsz egy H-L tesztert.
Én is ilyen kézi műszerrel ellenőriztem van-e jel változás.
Mert a normál digitálisról  nem lehet pontosan kideríteni mit is mérek néha.
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Ferro73 on 2014.October.19. 09:58:20
Még egy dolog próbáld 8MHz helyett 4MHz et
Elképzelhető hogy sokáig tartja a PIC INT-jét a Z80 -as.
Nem láttam a kapcsolási rajzot, lehet ott is vannak problémák.
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2019.January.31. 10:43:55
MŰKÖDIK!!!!!

PIC-et rákötöttem az EP-re, és működik a PSP mód! Határtalan lehetőségek nyílnak az EP-s tábor előtt! :-) Este rakok fel képeket, egyelőre csak LED-eket villogtatok, és még csak a port írást teszteltem.

De!!! A PIC-en van SPI és I2C port, amit aztán EP-ről el lehet majd érni! Első körben egy RTC modult kötök rá I2C porton.
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2019.January.31. 19:39:00
https://youtu.be/vFT5-7WoZ1E

Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2019.February.08. 18:56:09
jelentem: működik az RTC!!!!

Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: gflorez on 2019.February.08. 19:59:45

Nagy!

Milyen RTC chipet használtál?
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: lgb on 2019.February.08. 21:03:52
Nagy!

Milyen RTC chipet használtál?

this one>
https://www.hestore.hu/prod_10038042.html

(I am Povi hacking LGB's PC) LGB: no, not really, just too much beer :D
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2019.February.09. 15:37:00
No, most már működik a dátum beállítása is!
És csináltam gyorsan egy progit is, ami lekérdezi az I2C buszon lévő eszközöket.
Kérdés a gurukhoz: mi legyen a készülődő új kártya portcíme?
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2019.February.11. 22:25:47
újabb fejlemény:
most már állítható a I2C busz sebessége, a default 400kHz-ről 100kHz-re is.

a PIC egyik lábát rákötöttem a Z80 /WAIT lábára, hogy megállítsa a Z80-at, miközben dolgozik, azonban így se tökéletes: mivel a PIC már csak akkor állítja 0-ra a /WAIT lábat, miután ráfutott a megszakítási rutinra, ezért egy kis idő eltelik. A tapasztalatom szerint két Z80 port írás/olvasás utasítás között 12 órajelnek el kell telnie (4MHz-es gépen), hogy biztosan jól működjön (néha a 8 is elég, de nem mindig). Szóval ha port írás után rögtön olvasnánk, akkor sajnos be kell szúrni három NOP-ot, vagy egy INC HL/DEC HL-t (ez is 12 órajel, de egy bájttal rövidebb). Szóval a lényeg: két portművelet ne legyen közvetlenül egymás után, legyen közte 12 órajelnyi egyéb művelet is!

BASIC-ből rögtön lehet használni az OUT és IN utasításokat egymás után, az interpreter volta miatt bőven több, mint 12 órajel telik el a két utasítás között :-)

Port kérdés: ez a lista (http://ep.lgb.hu/doc/ports.html) vajon mennyire jó?
Ahogy nézem, az ismétlődések nincsenek benne (pl. APU elvileg 0x50..0x57 porton látszódik, de itt csak a "hivatalos 0x50..0x51 port van feltűntetve). Csak amiatt, hogy milyen portot foglaljak le magamnak? (pl. gondoltam a 0x2c portra, ha már i2c :-)).
De mi van pl. 0x02-vel? Elvileg nincs ott semmi, gyakorlatban nem látszik ott is a Mészáros-féle egérkártya?
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: gflorez on 2019.February.11. 23:00:40
Azt hiszem, meg kell nézni a soros kártya rendszerét, mert néha a portok dekódolása nem helyes, és megduplázódik.

A1 és A2 címsorok, ahol a bal oldali lebegő, így a 0x00 port a 0x02 és 0x04 & 0x06, és a 0x01 a 0x03 és 0x05 & 0x07 tükröződik.

0x08 és 0x0f között még mindig szabad.

-------------------------_

I think you should look at the scheme of the serial card, because sometimes the decoding of the ports is not correct and is duplicated.

A1 and A2 address lines where left floating so port 0x00 is mirrored on 0x02 & 0x04 & 0x06 , and 0x01 is mirrored on 0x03 & 0x05 & 0x07.

0x08 to 0x0f are still free.

(http://www.ep128.hu/Ep_Hardware/Pic/Rajz_Sorosk.gif)
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2019.February.12. 10:55:09
oké, akkor a 8-as portot elfoglalhatom? (hátha sorozatgyártás is lesz belőle :-) )

ok, should I occupy the port 0x08?
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Zozosoft on 2019.February.12. 11:05:00
08-0Fh az már SID kártya (https://enterpriseforever.com/hardver/sid-illesztes-ep-hez/msg48161/#msg48161) :oops:
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Povi on 2019.February.12. 11:19:11
0x28? az szabad még?
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: gflorez on 2019.February.12. 11:34:55
A SE-ONE # 20 - # 27, feltételezem, hogy a többi szabad.

--------

SE-ONE is at  #20 -#27, I assume that the rest are free.
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Tutus on 2019.February.12. 14:56:51
08-0Fh az már SID kártya (https://enterpriseforever.com/hardver/sid-illesztes-ep-hez/msg48161/#msg48161) :oops:
2015 óta áll a SID kártya. Nem akarok okoskodni, de akkor ne tartsátok fent a 08-0Fh-t neki...
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Zozosoft on 2019.February.12. 15:03:28
ne tartsátok fent a 08-0Fh-t neki...
Amikor már az emulátorban is benne van, és lejátszó is van hozzá?
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: gflorez on 2019.February.12. 15:35:29
Azt hiszem, még mindig nincsenek hozzárendelt kikötők, amit csak meg kell tennünk, nem rossz dekódolással.

Az I2C busz érdekes ténye, hogy 112 - 1136 csomópont csatlakoztatható (a szabványtól függően), a NET-hez hasonló módon. Minden csomópont lehet processzor, memória, RTC-k, LCD-képernyők stb (https://rn-wissen.de/wiki/index.php/I2C_Chip-%c3%9cbersicht).

-------

I think there are still enough unassigned ports, what we just have to do is not to waste them with bad decoding.

The interesting fact about the I2C bus is that it can have from 112 to 1136 nodes connected(depending on the standard), in a way much similar to the NET:. Every node can be a processor, memory, RTCs, LCD screens, and more (https://rn-wissen.de/wiki/index.php/I2C_Chip-%c3%9cbersicht). 
Title: Re: PIC illesztése Z80-hoz Parallel Slave Port használatával
Post by: Ferro73 on 2019.February.12. 20:11:15
Azt hiszem, meg kell nézni a soros kártya rendszerét, mert néha a portok dekódolása nem helyes, és megduplázódik.

A1 és A2 címsorok, ahol a bal oldali lebegő, így a 0x00 port a 0x02 és 0x04 & 0x06, és a 0x01 a 0x03 és 0x05 & 0x07 tükröződik.


Ha megbontod az U3 IC 1 láb /A3/
A3  --------- U3 1
A3  --- X --- U3 1
közbe raksz sorosan pl. 1n4148
A1  ---|>--- U3 1
és így teszel az  A1,A2
A1  ---|>--- U3 1
A2  ---|>--- U3 1
megszűnik a tükröződés.