Keresés

Új hozzászólás Aktív témák

  • salazol

    őstag

    válasz sonar #1 üzenetére

    Használok ilyen kütyüt, saját fejlesztés. A programját először turbó pascalban irtam, nagyon egyszerű, ott a port[] nevű tömböt kell irni-olvasni, ezt a pascal lekezeli I-O műveletekre. A port elemszáma a fizikai portcím. Vigyázat, a freepascal nem tudja ezt.
    Később igény lett a csicsás felületre, akkor átirtam delphire. A delphi nem ismeri a port[] tömböt, igy assembly betét lett a dologból, az egész néhánysor. Viszont ez a módszer csak win9x alatt használható, az NT alapú vindowsok tiltják a közvetlen portra írást.
    Hamarosan átalakítom USB-re a kütyüt, hogy haladjak a korral. Javaslom neked is ezt megfontolni, ha van rá keret, kapható USB-s áramkör, amelyet felkészítettek a TTL illetve CMOS áramkörökkel illesztésre. A szoftvere pedig virtuális COM portot hoz létre, amit könnyű irni-olvasni gyakorlatilag bármelyik programnyelvből.

  • salazol

    őstag

    válasz sonar #1 üzenetére

    Ja és a hardveres részhez javaslom a ''PC hardver kézikönyv'' című művet, már vagy 6-8 kiadást megélt alapmű, nagyon hasznos információkkal.

  • salazol

    őstag

    válasz tomcs #17 üzenetére

    Konkrétan nézd meg:
    http://www.soselectronic.hu oldalon az USB egyszerűen kezdetű cikket. Ők árulják a kütyüt, amiről irtam. Nekem már itt figyel az asztalon, csak még nem volt időm beüzemelni. Ez a szoftver irányába egy virtuális COM port, a hardvered irányába meg 8 bites kétirányú port FIFOkkal, 3,3 illetve 5 V-os rendszerekhez könnyen illeszthető.
    Ha maradsz a párhuzamos portnál, próbáld meg úgy tervezni a kütyüt, hogy csak az alap 8 bitet használja (a printerport adatbuszát), a vezérlő vezetékeket lehetőleg ne, mert akkor gyakorlatilag nulla nehézséget okoz a későbbiekben áttérni az USB-re ezzel a cuccossal.

  • salazol

    őstag

    válasz tomcs #19 üzenetére

    Olyan 8e körül volt valahol, nem emlékszem pontosan, a számla meg már a könyvelőmnél van.
    Egyébként a kezemben van éppen az előző párhuzamos portos cuccom, very primitiv de működik, csak már túlhaladtam rajta. Ezen a panelon 3 db 74573 van, meg egy 5 V-os stabIC, meg 20 db ellenállás 20 tranyóval. Ez a kütyü 20 db opencollector kimenetet produkál. Ha kell valainek, odaadhatom. De postára nem adom, ha valaki eljön érte, viheti, csak ne kukában végezze. Én 2 évig vezéreltem ezzel 20db reflektort színpadon.

  • salazol

    őstag

    válasz sonar #21 üzenetére

    Elküldhetem az a procedure-t, ami a párhuzamos porton irást végzi.
    De a legfontosabb, hogy a kijelző, amit kezelni akarsz, milyen felületen irható. Úgy tudom, ezek gyakorlatilag kivétel nélkül egybe vannak építve a vezérlőjükkel, és többnyire sorosan írhatók. Tudni kellene, hogy szinkron vagy aszinkron sorosan, illetve párhuzamosan irható kijelződ van-e, illetve ha párhuzamos, hány vezeték kell a vezérléshez, mik ezek (pl. 8 bit adat + 1 bit write, vagy handshake két vezetéken)?
    Ha ezeket meg tudod adni, akkor néhány perc alatt megirhatom a neked való procedure-t pascal vagy delphihez, C-t még nem tudok annyira.

  • salazol

    őstag

    válasz sonar #21 üzenetére

    Itt egy példa handhake-es párhuzamos kiirásra, primitiv, hibája, hogy ha nem kap választ a hardvertől, akkor végtelen sokáig várakozik (fagy). Mivel állandóan csatlakoztatott kütyühöz van, igy nem foglalkoztam ennek a kiküszöbölésével.
    XP és 2000 alatt ez nem működik.


    unit DMX;
    interface
    type
    TDMX = class
    procedure ByteOut(data : byte) ;
    private
    procedure portout(addr : word; data : byte);
    function portin(addr : word) : byte;
    { Private declarations }
    public
    { Public declarations }
    end;
    const
    PPort : word = $378;
    Implementation
    {$R *.DFM}

    procedure TDMX.portout(addr : word; data : byte);
    asm
    mov al,data
    mov dx,addr
    out dx,al
    end;

    function TDMX.portin(addr : word) : byte;
    var b : byte;
    begin
    asm
    mov dx,addr
    in al,dx
    mov b,al
    end;
    Portin := b;
    end;

    procedure TDMX.ByteOut (data : byte);
    begin
    While (PortIn(PPort + 1) And 64) = 0 Do;
    PortOut(PPort, data);
    PortOut(PPort + 2, 13);
    While (PortIn(PPort + 1) And 64) = 64 Do;
    PortOut(PPort + 2,12);
    end;

    end.

  • salazol

    őstag

    válasz atesz27 #25 üzenetére

    Én pont ezt építettem párhuzamos portra, a PIC-et egy ismerős programozta fel, aki sajnos kiment franciaországba, a forráskód nincs meg nekem.
    A hardvermunkát illetve a pascal, később delphi progit (assembly betéttel) én követtem el. A pichez is én írtam le szavakkal az algoritmust, a haver lekódolta és beégette.
    Sajnos a működő példányon kívül semmi nincs a birtokomban, a pic forráskód sem.
    Amit tudok mondani, hogy a google-ban a munka elkészülte után találtam egy komplett leírást kapcsrajzzal és pic programmal együtt, ami valaki külföldön megépített és közzétette a teljes dokumentációt.
    Amit mi megcsináltunk:
    DMX512 adó, párhuzamos portról vezérelve
    valamint egy olyan vevő,
    ami fogad egy bejumperelt címtől kezdve 8 bájtot és a legmagasabb bitje kapcsol egy-egy kimenetet. Ezzel nullátmenettel kapcsolok PAR64 refiket, amikor van munkám.
    Az adót leteszteltük robotlámpával is, jól működik.
    Tudom, ezzel nem segítek, de a google jó, én is utólag jöttem rá, miután pár hónapot el...tam(tunk) a fejlesztésre.
    Ha mégis magad fejlesztesz, akkor is google, ugyanis van egy olyan gyári termék, amihez találtam letölthető programot nagyon jó grafikus felülettel, csak nem volt kompatibilis az én hardveremmel. Ha már fejlesztesz, akkor tedd a gyárival kompatibilissé és nem lesz gondod a PC-s programra. Az a hardver Escape-szekvenciákkal valósította meg a vezérlést, én pedig a nem használt pin-ekkel, mint LF, FF, PE.

  • salazol

    őstag

    válasz atesz27 #28 üzenetére

    Odaadnám, csak ott a gond, amit fentebb írtam. Hogy nincs meg a forráskód.
    Azt nem tudom, hogy a srác, aki égetett nekem, levédte-e kiolvasás ellen a picprogramot. Ha jól emlékszem, ez egyetlen paraméter állítása volt.
    Amúgy odaadnám akár a kész kütyüt is, hogy másold le, de ha nem tudod kiolvasni a progit, akkor annyi.
    Amúgy akkor nagyon beleástam magam a DMX-be, kentem-vágtam valóban. De ez nagyon régen volt, csak annyira emlékszem, hogy volt a startjel, időzítésekkel sokat pöcsöltünk, a ciklushosszok kiegyenlítése egyformára NOP-okkal, meg ilyesmi.
    Az adatok a printer port DATA vezetékein mennek, a start jelet azt hiszem a lapdobáson küldöm, utána jönnek sorba a bájtok és kész.
    Egyébként én meg vevőt nem fejlesztenék ma már, mert Százhalombattán komplett panelt kapsz, ha megegyezel a gyártóval. Léptetőmotorokat, dimmereket vezérelnek, van elég nagy választék. Tőle vásárolja a legtöbb magyar scanner- ás robotgyártó is, ha jól tudom.
    Ha módod van kipróbálni, hogy kiolvasható-e a kód a PIC-ből, akkor kölcsönadhatom, de csak ha nyilatkozol, hogy nem akarsz üzletet csinálni a dologból, csakis saját használatra kell. A cucc egy rack-méretű 1H magas doboz, tehát postára nem szívesen adnám. Pilisvörösváron van a dolog.
    Üdv.

Új hozzászólás Aktív témák