SPI write/read függvény leprogramozása IC-hez.

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
Avatar
Toto
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2011. november 8. kedd, 7:00

SPI write/read függvény leprogramozása IC-hez.

Hozzászólás Szerző: Toto »

Sziasztok!

Teljesen kezdő vagyok a témában, de valamennyire tudom kezelni az AVR-ert.
Szeretnék egy olyan függvényt leprogramozni ATmega-hoz C-ben, ami SPI-n keresztül tudja olvasni, és írni az IC értékeit.
Feladat számomra úgy tűnik, hogy nehéz, de aki már ismeri a témát, annak lehet, hogy csak pár perc.

Szóval csak az a függvény kell, amivel ki tudom ebből a táblázatból olvasni az értékeket, és át tudom írni.
Segítségeteket előre is köszönöm!
spi_write_read.png
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Avatar
Toto
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2011. november 8. kedd, 7:00

Re: SPI write/read függvény leprogramozása IC-hez.

Hozzászólás Szerző: Toto »

Teljesen átláthatóan szeretném írni, teljes sort pl. 0b00110110 ha lehet.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: SPI write/read függvény leprogramozása IC-hez.

Hozzászólás Szerző: Robert »

Milyen chip? Meddig jutottál? Hol akadtál el?
Avatar
Toto
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2011. november 8. kedd, 7:00

Re: SPI write/read függvény leprogramozása IC-hez.

Hozzászólás Szerző: Toto »

SRC4398 az egy audio chip, amely SPDIF jelet fogad illetve jittert csökkent, DAC előtt van.

SRC4398-nak van egy SPI portja is, amit össze akarok kötni az AtMega16-al.
Illetve vezérelni akarom, értékeket szeretnék belőle kiolvasni, és írni az SRC4398-ba.
Hardweresen könnyű összekötni, azzal nem lesz gond.

De nem tudom, hogy milyen write függvényt és milyen read függvényt írjak src4398.c-be.
Minden itt van a képen, amit ír erről.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: SPI write/read függvény leprogramozása IC-hez.

Hozzászólás Szerző: Robert »

Avatar
Toto
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2011. november 8. kedd, 7:00

Re: SPI write/read függvény leprogramozása IC-hez.

Hozzászólás Szerző: Toto »

Köszönöm, ez már segítség.

Annyit még szeretnék kérni, hogy egy példával írd le, hogy olvasom ki a fenti táblázatból való értéket, és ami a legfontosabb, hogy írom át.
Találkoztam már hasonló példákkal, de én tényleg, csak a nagyon alap dolgokkal foglalkoztam, már elég rég.

ChipSelect van a chipen, illetve reset is.
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: SPI write/read függvény leprogramozása IC-hez.

Hozzászólás Szerző: kapu48 »

Tisztázni kellene pár kérdést!

Te képesnek érzed magad a probléma megoldására?
Akkor hozzá kellene fognod elvégezni a rabszolgamunkát.
És ha elakadtál, ismertetni mit hoztál össze.
Aztán kérni segítséget.

Vagy mással akarod megcsináltatni?
Akkor illene felajánlani valami ellenszolgáltatást!
8)
Avatar
Toto
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2011. november 8. kedd, 7:00

Re: SPI write/read függvény leprogramozása IC-hez.

Hozzászólás Szerző: Toto »

Nézd, pár sorról van szó, tényleg csak annyi, hogy azok a parancsok kellenének, amelyekkel SPI-n keresztül beletudok írni, és ki tudok olvasni.
Teljes kód nem kell, azt úgy érzem, meg tudom írni.
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: SPI write/read függvény leprogramozása IC-hez.

Hozzászólás Szerző: kapu48 »

Talán segít:
Stereo DAC (S/W Control) vs (H/W Control)
http://www.mikrocontroller.net/topic/287274

Azt a pár sort már Robert belinkelte!
Csak a define részen kel igazítanod.
És a CS kimenet vezérlését megoldanod a berakott ábra alapján.

http://e2e.ti.com/support/data_converte ... 35685.aspx :arrow:

Google: avr gcc spi :arrow:
:idea:
Avatar
Toto
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2011. november 8. kedd, 7:00

Re: SPI write/read függvény leprogramozása IC-hez.

Hozzászólás Szerző: Toto »

Nem tudok nagyon így eligazodni, megpróbáltam.
Na de itt van két példa függvény egy másik IC-hez. Az első hozzászólásban való táblázat alapján áttudnátok írni az SPI vezérlést ehhez az IC-hez?
Segítségeteket eddig is köszönöm!

Kód: Egész kijelölése

void spdif_write(uint8_t reg, uint8_t data) {
	PORTB &= ~(1 << SS_RECV);

	SPDR = 0b00100000;					// weird CS8416 chip address, lsb == 0 is for writing
	spi_wait();

	// send MAP (register address)
	SPDR = reg;		
	spi_wait();

	// send data
	SPDR = data;
	spi_wait();

	// raise SS_RECV
	PORTB |= (1 << SS_RECV);
}

uint8_t spdif_read(uint8_t reg) {
	PORTB &= ~(1 << SS_RECV);

	SPDR = 0b00100000; 					// write MAP
	spi_wait();

	SPDR = reg;							// MAP = reg
	spi_wait();
	PORTB |= (1 << SS_RECV);  			// finish partial cycle

	PORTB &= ~(1 << SS_RECV);			// open read cycle
	SPDR = 0b00100001;					// read operation
	spi_wait();
	SPDR = 0;
	spi_wait();

	// raise SS_RECV
	PORTB |= (1 << SS_RECV);
	
	return SPDR;
}
Válasz küldése