MCP23S17

Kalman coloman50mail at t-online.hu
Thu Aug 31 01:05:19 CEST 2006


Sziasztok

Tárgybéli IC-vel szenvedek.
Használt már valaki ilyet ?

Mikrochip 16 I/O SPI buszos expander.
Pic18F6622.  20MHz.
Az SPI a D4, D5 (SPI2) lábakra drótozva.

Az eszköz három címvezetéke 0-ra kötve, reset 10K-val a tápon.
MiniLA a clk, SI, So Cs lábakon.
Az  adatlap szerint CS low, 0x40, ill 0x41 eszközcímet használook,

Beírok a 0x40 0x41 címzéssel attól függően, hogy a regisztereibe írni, vagy olvasni szeretnék.
Aztán az ominózus regisztercím, majd adat küldés, vagy fogadás.

MiniLA analizátoron amit csinálok OK.
Csakhogy olvasni nem azt olvasom ki, amit beírtam. Pontosan vagy 0x00,
vagy 0xFF. Ha a portra 1 szinet teszek, a port0-n 0 a kiolvasott byte,
ha a port1 -re, akkor 2 helyett 1 ... ha a port 4- re akkor 7 stb.

A CCs progi részlete
setup_spi2(SPI_MASTER | SPI_H_TO_L| SPI_XMIT_L_TO_H|SPI_SS_DISABLED | SPI_CLK_DIV_16);
// ================================================== //
//              EXTIO write
// ================================================== //
void write_EIO (int card, int devad, int adress, int data)
{
        if (card== 1) output_low(D1_CS); else output_low(D2_CS);
        spi_write2(devad);
        spi_write2(adress);
        spi_write2(data);
        if (card== 1) output_high(D1_CS); else output_high(D2_CS);
}
// ================================================== //
//              EXTIO read
// ================================================== //
int read_EIO (int card, int devad,int adress)
{
        int data;
        if (card== 1) output_low(D1_CS); else output_low(D2_CS);
        spi_write2(devad|1);
        spi_write2(adress);
        data = spi_read2(0);
        if (card== 1) output_high(D1_CS); else output_high(D2_CS);
        return(data);
}

A card a cs választás mivel két bővítőt használnék.

A portokra a másik kártyán nem ültettem semmit, hogy ne zavarjon.

Mi a bánat lehet ilyen neoprimitív dologgal a gond?

-- 
Best regards,
 Kalman                          mailto:coloman50mail at t-online.hu



More information about the Elektro mailing list