Цитата(pulo @ Sep 23 2011, 07:59)

Примером работы через SPI с KSZ8893 не поделитесь?
А что конкретно интересует? Сам интерфейс SPI - он там очень простой. К тому же мои функции низкого уровня вам не подойдут, я NXP использовал.
Там достаточно такие функции определить
Код
uint_fast8_t ks8893_read(uint_fast8_t addr);
void ks8893_write(uint_fast8_t addr, uint_fast8_t data);
void ks8893_write_mac(uint64_t data, unsigned addr);
uint64_t ks8893_read_mac(unsigned addr);
Для чтения и записи регистров и таблицы с mac адресами.
Для теста интерфейса я использовал примерно такой код:
Код
tmp = ks8893_read(0);
c_puts("Family ");
c_puthex(tmp,2);
if (tmp == 0x88) {
c_puts("OK\x0D\x0A");
} else {
c_puts("Failed\x0D\x0A");
}
tmp = ks8893_read(1) >> 4;
c_puts("Chip id ");
c_puthex(tmp,1);
if (tmp == 0x2) {
c_puts("OK\x0D\x0A");
} else {
c_puts("Failed\x0D\x0A");
}
for(i = 0; i < 0x100; i ++) {
ks8893_write(0x14, i);
tmp = ks8893_read(0x14);
if (tmp != i) {
c_puts("SPI test failed\x0D\x0A");
}
}
т.к. тестового регистра нет, использовал регистр который может принимать любые значения.