Заблудился, пытаясь подключить Intel Edison SPI к ADC с помощью Intel XDC и узла

Я впервые использую Intel XDK и пытаюсь получить данные с этого SPI ADC ADS7951SRGER, 12-битный аналого-цифровой преобразователь 8, вход 1 SAR 24-VQFN (4x4) http://www.ti.com/lit/ds/symlink/ads7950.pdf

это связано так

SPI
var x = new m.Spi(0);
x.bitPerWord=12;
x.frequency = 20;


var buf = new Buffer(4);
buf[0] = char('0x0b');
buf[1] = char('0x11');
buf[2] = char('0x11');
buf[3] = char('0x11');
var buf2 = x.write(buf);


console.log("Sent: " + buf.toString('hex') + ". Received: " + buf2.toString('hex'));
RXD -> MISO SPI
var x = new m.Spi(0);
x.bitPerWord=12;
x.frequency = 20;


var buf = new Buffer(4);
buf[0] = char('0x0b');
buf[1] = char('0x11');
buf[2] = char('0x11');
buf[3] = char('0x11');
var buf2 = x.write(buf);


console.log("Sent: " + buf.toString('hex') + ". Received: " + buf2.toString('hex'));
TXD -> MOSI SPI
var x = new m.Spi(0);
x.bitPerWord=12;
x.frequency = 20;


var buf = new Buffer(4);
buf[0] = char('0x0b');
buf[1] = char('0x11');
buf[2] = char('0x11');
buf[3] = char('0x11');
var buf2 = x.write(buf);


console.log("Sent: " + buf.toString('hex') + ". Received: " + buf2.toString('hex'));
CLK -> SCLK SPI
var x = new m.Spi(0);
x.bitPerWord=12;
x.frequency = 20;


var buf = new Buffer(4);
buf[0] = char('0x0b');
buf[1] = char('0x11');
buf[2] = char('0x11');
buf[3] = char('0x11');
var buf2 = x.write(buf);


console.log("Sent: " + buf.toString('hex') + ". Received: " + buf2.toString('hex'));
FS0 -> ADC_CS

Я никогда раньше не использовал SPI, я очень растерялся. Я ищу уже 24 часа, и я не намного ближе к пониманию того, что я должен здесь делать.

вот текущий код приветствия, который я пытаюсь. все, что я возвращаю, это ffffffff

var x = new m.Spi(0);
x.bitPerWord=12;
x.frequency = 20;


var buf = new Buffer(4);
buf[0] = char('0x0b');
buf[1] = char('0x11');
buf[2] = char('0x11');
buf[3] = char('0x11');
var buf2 = x.write(buf);


console.log("Sent: " + buf.toString('hex') + ". Received: " + buf2.toString('hex'));

Любая помощь приветствуется


person user3634054    schedule 09.10.2016    source источник
comment
Попробуйте '\x0b' вместо char('0x0b').   -  person Ismael Miguel    schedule 09.10.2016
comment
Спасибо за ответ, попробовал \ x0b, ответ не изменился   -  person user3634054    schedule 10.10.2016
comment
Вы можете показать определение функции char?   -  person Ismael Miguel    schedule 10.10.2016
comment
функция char (x) {return parseInt (x, 16); }   -  person user3634054    schedule 10.10.2016
comment
Что ж, тебе не нужен весь этот танец. вы можете просто написать 0x0b и 0x11. Кроме того, есть ли у вас какие-либо ошибки или что-то в этом роде?   -  person Ismael Miguel    schedule 10.10.2016
comment
ошибок нет. 0x11 - это просто то, что я видел, как кто-то другой использовал для другого ADC. Я полагаю, я упустил команду или что-то в этом роде. но я действительно понятия не имею, и я не нахожу много документации, которую я понимаю   -  person user3634054    schedule 10.10.2016
comment
Теперь я использую этот код для отправки и получения возврата 00000000 var buf = new Buffer (4); buf [0] = '\ x0b'; buf [1] = '\ x00'; buf [2] = '\ x00'; buf [3] = '\ x00';   -  person user3634054    schedule 10.10.2016
comment
Последний код, который вы отправили, вроде как ожидается, так как \x00 это 0. Что происходит, когда вы делаете '\x11'?   -  person Ismael Miguel    schedule 10.10.2016
comment
То же самое. возврат 00000000   -  person user3634054    schedule 10.10.2016
comment
Это так странно. Чего-то не хватает.   -  person Ismael Miguel    schedule 10.10.2016
comment
Да, я подумал, что мне что-то не хватает с FS0- ›Cs   -  person user3634054    schedule 10.10.2016


Ответы (1)


В конце концов, мне пришлось вытаскивать CS (SPI_2_FS0 -> ADC_CS) вручную, опуская низкий уровень перед каждой записью / чтением, а затем снова высокий.

person user3634054    schedule 07.11.2016
comment
Что странно. Водитель должен сделать это за вас. Но глядя на старое ядро, мои глаза в слезах. Попробуйте поиграть с апстримом ядра. (У меня есть ADC, включающий Edison Arduino в моем списке TODO, но SPI там прекрасно работает в режиме PIO) - person 0andriy; 16.11.2016
comment
Я просто счастлив, что это работает. У меня не было проблем с этим - person user3634054; 17.11.2016