Перейти к содержанию
    

Друзья помогите разобраться с проблемой.

Сейчас по SPI делаю тупо цикл чтения из любого читаемого регистра контроллера MCP2515, конкретно из регистра статуса контроллера по адресу 0F. Все входящие линии вижу на осциллографе CS, SDI, SCK, а ответа от контроллера в виде байта данных по линии SDO нет, там прост высокий импеданс и все.

Не пойму в чем дело?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А самое интересное, что запись проходит. Диаграммы все такие же, тока инструкции разные на запись и чтение. Адрес 0Fh. По этому адресу пишем и видим результат, а вот прочитать не можем, на SO - высокий импеданс. Не пойму(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А еще интереснее то, что заменили на MCP2510 и все заработало, а именно чтение и в частности линия SO.

Не пойму в чем дело, ведь микросхемы в принципе одинаковые.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А еще интереснее то, что заменили на MCP2510 и все заработало, а именно чтение и в частности линия SO.

Не пойму в чем дело, ведь микросхемы в принципе одинаковые.

Может просто микросхем дохлая попалась?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так этих микросхем 35 штук в составе готового изделия. И все ведут себя одинаково, чтение не работает, линия SO постоянно в высоком импедансе. Если вся партия тока хреновая. Думал, мож для MCP2515 надо че-то записать для активации SO или че-нить в этом роде, но почитал доки на MCP2510 и MCP2515 вроде все одинаково в принципе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так этих микросхем 35 штук в составе готового изделия. И все ведут себя одинаково, чтение не работает, линия SO постоянно в высоком импедансе. Если вся партия тока хреновая.

Или что-то с диаграммами (так, что команда чтения на самом деле интерпретируется как какая-то другая, не требующая активации SO - я бы попробовал смакетировать отдельно, с малыми скоростями, и большими задержками), либо и в самом деле дефектная партия (после того, как я нарвался на образцы MCP3553, работающие вовсе не так, как описано в даташите - легко поверю в такой вариант), тогда надо добыть кристаллы другого года выпуска и проверить (так мне и пришлось поступить с MCP3553).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот щас новую микруху MCP2515 из новой партии проверили, тож самое)) я фигею)

Значит MCP2510 и MCP2515 не полностью совместимы получается.

Да можно конечно попробовать скорость понизить SPI и проверить на MCP2515 ,хотя ща у меня 4МГЦ SPI, у нее же 10 заявлена предельная)

а MCP2510 на 4-х пашет, хотя это практически предельная для него))

Но ща придется везде MCP2510 ставить)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похожа, но немного не то. Там SPI полностью не работает, а у меня запись проходит и CLKOUT формируется, а у них нет, как раз из-за кондера на осцилляторе, они поменяли 22пкФ на 16пкФ и все заработало. Тем не менее я на 15 пкФ поставил, но бесполезно, тоже самое( А так у нас 100нФ стоит кондер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похожа, но немного не то. Там SPI полностью не работает, а у меня запись проходит и CLKOUT формируется, а у них нет, как раз из-за кондера на осцилляторе, они поменяли 22пкФ на 16пкФ и все заработало. Тем не менее я на 15 пкФ поставил, но бесполезно, тоже самое( А так у нас 100нФ стоит кондер.

Это на кварцах у вас стоит 100nF ? А не многовато? Вообще-то нагрузочные емкости осциллятора "от-балды" не ставят.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, я уже думал об этом, что многовато. А тогда какой порекомендуете на кварц JO75 на 16Мгц? :unsure:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. Скажите, при переполнении счётчика ошибок приёма и передачи MCP переходит в режим bus-off. Судя по даташиту, сбросить регистры 1С(кол-во ошибок передачи) и 1D (чтения) нельзя. В разделе 6 сказано, что только в регистре 2D (ERROR FLAG) можно сбросить BIT6, BIT7.

 

bit7 RX1OVR: Receive Buffer 1 Overflow Flag bit

- Set when a valid message is received for RXB1 and CANINTF.RX1IF = 1

 

bit6 RX0OVR: Receive Buffer 0 Overflow Flag bit

- Set when a valid message is received for RXB0 and CANINTF.RX1IF = 1

 

Что они означают?

И вообще, что делать если какой либо счётчик превысил значение 127 или предупреждающие 96?

Изменено пользователем KARLSON

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И ещё. Поясните пожалуйста про 3 регистра CNF1 (адрес 2A), CNF2 (29), CNF3 (28). Как эту скорость настроить?

У меня кварц 8МГц, частота шины 250 кбит/с, стандарт J1939.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И ещё. Поясните пожалуйста про 3 регистра CNF1 (адрес 2A), CNF2 (29), CNF3 (28). Как эту скорость настроить?

У меня кварц 8МГц, частота шины 250 кбит/с, стандарт J1939.

 

Посмотри здесь:

http://electronix.ru/forum/index.php?showtopic=87635

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...