8bit
Electronics & Computers
ATF16V8BQL
2023.06.13 23:31:02 end HW Gilhad

2   Pátrání

  • Pro programování PAL je potřeba nějaký HW programátor, který to tam vypálí a nějaký JEDEC soubor, který řiká, co se má vypálit

3   A naostro

  • Takže jsem to všechno postahal, nainstaloval, zupgradoval (no, aspoň trochu, chtělo by to prý víc, ale funguje to)

    git clone https://gitlab.com/DavidGriffith/minipro.git
    make
    make install
    https://github.com/Kreeblah/XGecu_Software
    unrar x xgproV1090_setup.rar
    unrar x XgproV1090_Setup.exe
    # http://www.xgecu.com/EN/download.html - novější verze
    minipro -F updateII.dat
    # read https://github.com/blurpy/minipro
    
    git clone https://github.com/daveho/GALasm.git
    make
    cp galasm ~/bin
    
  • a vyrobil návrh na dekodér adres a signálů pro Expanduino_I
    • v návrhu se nejdřív definují piny (ty dva řádky s NC na začátku - pokud tam uvede negaci, tak to znamená na schématu na krabičce přilepit zvenku kolečko pro negaci. Znamená to, že daný signál je aktivní v nule. Uvnitř (a tedy ve výrazech dál) už jen uvažuju signály jako aktivní/neaktivní, bez ohledu na to, jaké napětí na nožičkách to znamená. Takže pokud tam mám /RD, tak to znamená, že tou nožičkou jde dovnitř signál aktivní v nule, čili přez kolečko, uvnitř už se s ním počítá normílně, teda RD*cosi znamená pokud je RD aktivní a přitom cosi. A pokud to přiřadím do Q0 a ono bude aktivní (výraz platí), tak protože v definicích je s negací, tak se ta aktivita projeví GND na pinu.

    • návrh je tady ./SMdec01.pld

      GAL16V8  ; DEVICE
      SMdec01  ; COMMENT max 8 char
      
      NC /WR  A0  A1  A2 /RD /CS  NC  NC GND  ; pokus zde uvedu /CS, tak v soucinech uz chci * CS aby to slo, kdyz na ten pin privedu 0
      NC /Q7 /Q6 /Q5 /Q4 /Q3 /Q2 /Q1 /Q0 VCC  ; a tady jsou vsechny Q negovane, takze jsou aktivni v nule
      
      Q0 =  RD * /WR * /A0 * /A1 * /A2 * CS ; /Q0 = GND prave kdyz na /RD dam 0 a na /WR dám 1 a na  A0, A1, A2 dam 0 (Status Register)
      
      Q1 = /RD *  WR * /A0 * /A1 * /A2 * CS ; /Q1 = GND pri zapisu na adresu 000 (Control Register)
      
      Q2 =  RD * /WR *  A0 * /A1 * /A2 * CS ; R1
      
      Q3 = /RD *  WR *  A0 * /A1 * /A2 * CS ; W1
      
      Q4 =  RD * /WR * /A0 *  A1 * /A2 * CS ; R2
      
      Q5 = /RD *  WR * /A0 *  A1 * /A2 * CS ; W2
      
      Q6 =  RD * /WR *  A0 *  A1 * /A2 * CS ; R3
      
      Q7 = /RD *  WR *  A0 *  A1 * /A2 * CS ; W3
      
      
      DESCRIPTION
        Dekoder pro 6809 rozsirovaci desku s arduinem a 4R+4W registry
      
    • a z něj se vygeneruje magický ./SMdec01.jed, který už se dá vypálit a taky řada dalších souborů ./SMdec01.chp ./SMdec01.fus ./SMdec01.pin

      galasm SMdec01.pld      # > SMdec01.chp  SMdec01.fus  SMdec01.jed  SMdec01.pin
      minipro -p ATF16V8BQL -w SMdec01.jed
      minipro -p ATF16V8BQL -r SMdec01.readed
      
    • a taky stáhnout záloha ./SMdec01.readed

    • a vyzkoušet výsledek a ono to doopravdy funguje :)

    • (a v tom .jed/.readed je i vidět ta struktura - řádek 32 bitů odpovídá součinu, 4bity na signál (normální, negovaný, ??, ??), 8 řádků se sčítá do výsledku, od pozice 2056 je uložený ten COMMENT - a zbytek zatím nechápu)

    • (nějaký převodník bin-text například tady )

Takže mám svůj první funkční PAL


  • testování IC
while read line; do for i in `seq 10`; do echo;done; minipro -p 74373 -T; date "+                                                       %H:%M:%S"; done