Забавно...

Mar 19, 2018 14:48

Если с неподключенного по SPI интерфейсу датчика попробовать прочитать данные 666 раз -- то получится ;-)
Read more... )

работа

Leave a comment

suvorow_ March 19 2018, 12:15:40 UTC
Ну, у меня есть подпрограмма, определяющая, что на SPI есть только 50-Гц наводка, и ничего более...

Reply

andy_68 March 19 2018, 12:43:58 UTC
Мне просто число повторов понравилось ;-) А так-то все понятно. Жопа она, эта ваша SPI

Reply

suvorow_ March 19 2018, 12:50:58 UTC
I2C куда большая жопа. Не хотит работать, хоть тресни!
Притом, что на AVR она у меня завелась с пол-пинка!

Reply

andy_68 March 19 2018, 12:58:59 UTC
Где? На STM32 ? Не знаю, у меня отлично полетето. Но я через HAL цеплялся.

Reply

andy_68 March 19 2018, 13:08:38 UTC
А, кстати -- если работаешь черех хал, там есть забаная приколка -- адрес пишется сдвинутым влево. То есть если хочешь обратиться с 0x3f -- пишешь 0x7f или 0x7e. Это не шутка!!

Я это нашел сканированием (ну вот типа все правильно, а устройства не видно -- дай поищу от 00 до ff), а потом по результатам полез в гугель -- оказывает, это бага давно в трекере, и она вроде как и не база, а почти хорошая фича.

Reply

suvorow_ March 19 2018, 17:32:50 UTC
Это, собственно, прямое следствие архитектуры I2C - сначала передаётся 7-битный адрес, а потом бит чтения или записи. Но в даташите AVR это прописано в явном виде. Поэтому недоразумений не вызывает.

Reply

andy_68 March 19 2018, 18:14:56 UTC
Оно конечно так, но адрес должен быть адресом, это же адрес!

Reply

suvorow_ March 19 2018, 18:35:14 UTC
а в сопроцессоре Weitek адрес был командой! В зависимости от того, в какое место окна писался операнд, сопроцессор решал, что с этим операндом делать! Кажется, это было ещё до появления i2c стандарта...

Reply

andy_68 March 19 2018, 18:49:12 UTC
А в вызове это поле называется адрес. Значит должно содержать адрес, мое такое вот хо. А что у тебя с i2c не идет-то?

Reply

suvorow_ March 19 2018, 20:32:39 UTC
Да чёрт его знает, у меня осциллограф сдох - виснет через несколько минут использования, приходится УСБ выдирать и вставлять.
Если пишу в регистр адреса, то прога виснет и дальше не идёт.
Я скачал пример работы с акселерометром ADXL345, смотрю, а там программная эмуляция I2C при наличии двух аппаратных хостов. "Неладно что-то в королевстве датском!"©

Reply

andy_68 March 19 2018, 20:56:53 UTC
> Если пишу в регистр адреса, то прога виснет и дальше не идёт.
На каком проце счастие-то происходит?

Reply

suvorow_ March 19 2018, 21:00:32 UTC
ADuC7126. Ядро ARM7TDMI.
Используется по причине того, что мне был обещан радхардовый аналог этого чипа.

Reply


Leave a comment

Up