Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибки записи/считывания из SJA1000
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
Sevens
Возникла проблема с некоректным считыванием из SJA1000. Схема состоит из мк AT89C5131 с кварцен на 12 МГЦ и растянутым в MOVX сигналами RD и WR (AUXR=0x21). Кварц у SJA1000 на 24 МГц, и SJA1000 подключено как внешнее устройство памяти. Сигнал CS постоянно в ноль.

Записываю данные и после считываю

CAN_TX_BUF[2]=0xFF;
CAN_TX_BUF[3]=0x00;

first=CAN_TX_BUF[2];
second=CAN_TX_BUF[3];

Так вот first никак не получается 0xFF, как правило считывается что-то типа 0x24. Если же записать CAN_TX_BUF[2]=0xFE, то без проблем всегда считывается 0xFE.

В чем может быть проблема?

Заранее спасибо!
Седой
В каком режиме SJA1000 - BasicCan или PeliCan?
Sevens
Цитата(Седой @ Oct 19 2006, 20:10) *
В каком режиме SJA1000 - BasicCan или PeliCan?


BasiCAN
Седой
Смотрите, что у вас происходит на шине. Проверьте соблюдение временных интервалов.
Sevens
Цитата(Седой @ Oct 20 2006, 15:29) *
Смотрите, что у вас происходит на шине. Проверьте соблюдение временных интервалов.

На шине все происходит красиво. Временные интервалы тоже соблюдаются (частота контроллера в 2 раза ниже частоты CAN контроллера + растянуто время записи во внешнюю память).

Оказалось, что проблема в помехах (хотя по осцилограммам все красиво). Так как паяется макет и соединение проводами, то просто после укладки проводов чуть по другому считываться стало нормально. Но это не выход, т.к. стоит чуть дёрнуть провода и всё снова сбивается sad.gif Думаю, что делать....
spf
Цитата(Sevens @ Oct 22 2006, 18:12) *
Оказалось, что проблема в помехах (хотя по осцилограммам все красиво). Так как паяется макет и соединение проводами, то просто после укладки проводов чуть по другому считываться стало нормально. Но это не выход, т.к. стоит чуть дёрнуть провода и всё снова сбивается sad.gif Думаю, что делать....

Можно сказать что в очередной раз подтрержден известный факт - SJA1000 требует нежной разводки.
Выходом может быть установка последовательно с проводами сопротивлений в пару десятков Ом, как можно ближе к выводам SJA1000. Если и это не поможет то придется еще и пикушек наставить.
Sevens
Цитата(spf @ Oct 22 2006, 18:04) *
Цитата(Sevens @ Oct 22 2006, 18:12) *
Оказалось, что проблема в помехах (хотя по осцилограммам все красиво). Так как паяется макет и соединение проводами, то просто после укладки проводов чуть по другому считываться стало нормально. Но это не выход, т.к. стоит чуть дёрнуть провода и всё снова сбивается sad.gif Думаю, что делать....

Можно сказать что в очередной раз подтрержден известный факт - SJA1000 требует нежной разводки.
Выходом может быть установка последовательно с проводами сопротивлений в пару десятков Ом, как можно ближе к выводам SJA1000. Если и это не поможет то придется еще и пикушек наставить.


Спасибо, только вот пару вопросов возникло:

Не совсем понял, что даст последовательное сопротивление, ведь и МК и SJA на 5В...

И ещё, что вы подразумеваете под "пикушек наставить"?

Спасибо
Седой
А может лучше развести и заказать плату?

PS. Мы лет пять тому назад отказались от макетеривания проводочками. Заказываем плату, получается дешевле, быстрее и вопросов меньше.
spf
Цитата(Sevens @ Oct 22 2006, 22:36) *
Не совсем понял, что даст последовательное сопротивление, ведь и МК и SJA на 5В...

На проводах наводятся помехи.Для того чтобы их уменьшить ставят в разрез сопротивление как можно ближе к чувствительному элементу.Это сопротивление совместно со входной емкостью входа образует фильтр.
Цитата
И ещё, что вы подразумеваете под "пикушек наставить"?

Если входной емкости входа недостаточно то ее увеличивают, ставят емкость в несколько пик.

PS:
На реальной плате при качественной разводке этого не требуется.
Sevens
Цитата(spf @ Oct 23 2006, 05:40) *
Цитата(Sevens @ Oct 22 2006, 22:36) *
Не совсем понял, что даст последовательное сопротивление, ведь и МК и SJA на 5В...

На проводах наводятся помехи.Для того чтобы их уменьшить ставят в разрез сопротивление как можно ближе к чувствительному элементу.Это сопротивление совместно со входной емкостью входа образует фильтр.
Цитата
И ещё, что вы подразумеваете под "пикушек наставить"?

Если входной емкости входа недостаточно то ее увеличивают, ставят емкость в несколько пик.


Спасибо, буду иметь в виду. На счёт сопротивлений - их только на управляющие сигналы ставить или на адрес/данные тоже?

Цитата
PS:
На реальной плате при качественной разводке этого не требуется.

Да уж, но вот с этим сложнее sad.gif Плата для диплома, а разводить и изготавливать - получается дороговато.


Что сделал, после чего проблем стало меньше: поставил кварц к контроллеру 16 МГц, и от этого же кварца тактирую SJA. То что кварц не 24 МГЦ видимо сказывается положительно.

Ещё оттащил максимально далеко провода A\D от управляющих и обмотал этот пучок земляным проводом.

Что думаю сделать:
Экранировать таким же образом провода RD,WR,ALE и тактовый.
К корпусу кварца припаять землю. Вот.
spf
Цитата(Sevens @ Oct 23 2006, 15:53) *
Спасибо, буду иметь в виду. На счёт сопротивлений - их только на управляющие сигналы ставить или на адрес/данные тоже?

Начни с управляющих, а там по обстоятельствам.

Цитата
Да уж, но вот с этим сложнее sad.gif Плата для диплома, а разводить и изготавливать - получается дороговато.

А если при помощи утюга?

Цитата
Ещё оттащил максимально далеко провода A\D от управляющих и обмотал этот пучок земляным проводом.

Красотища. Резисторы не поленись вставить раз у тебя там провода такие длинные, чтоб меньше было непрятных моментов.
Было опыт у товарища (года четыре назад), пытался sja1000 прицепить на LPT, плата на разъеме - проводники минимальны. Заработало нормально только после того как во все линии врезал сопротивления.

Цитата
Что думаю сделать:
Экранировать таким же образом провода RD,WR,ALE и тактовый.

Резисторы больше помогут, на управляющие и пикушки не помешают.

Цитата
К корпусу кварца припаять землю. Вот.

Это на любителя. wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.