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

Работаю с MAX3100 (УАРТ с SPI-интерфейсом).

 

У него есть фифо. так вот посылаю я туда по уарту последовательность

"12345678", а считываю по SPI из фифо "1357".

 

Вопрос: а почему через 1 байт считывается? что я не так делаю?

 

УРА (озарение пришло на сл. день)

Я все понял.

Я после считывания делал запись этого же байта (для эха), так вот эта запись подпольно считывает сл. байт (правда про это в даташите написано).

Как-то это они некрасиво сделали - работать неудобно будет

 

Вопрос снят

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


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

хм... У меня появилась проблема со схожими симптомами, но, похоже, что с другими причинами.

 

Подключаю я через max3100 блютузку... Пытаюсь на оную послать строку: INQUIRY 5 NAME#d#a.

В результате, после получения символа #0a блютузка отдаёт мне строку, которую она получила, и говорит что в ней синтаксическая ошибка. Посмотрев на строку, я согласился. INUR AE#a(два пробела) То есть, до блютузки дошли первый, и все чётные символы... А нечётные ушли в небытие...

 

Посылка осуществляется по spi-ному прерыванию следующим образом:

(изначально запихнули read config и из ответа получили R и T)

Если T то посылаем (write data)

Иначе посылаем dummy_write (write data с битом nTE = 1)

 

Трассировка показала на следующее поведение:

шаг 1) T=1, посылаем "I" (0x8249)

шаг 2) T=1, посылаем "N"(0x824E)

шаг 3) T=1, посылаем "Q"(0x8251) <<--<<--<<--

шаг 4) T=0, посылаем dummy write (0x8600)

шаг 5) T=0, посылаем dummy write (0x8600)

шаг 6) T=0, посылаем dummy write (0x8600)

шаг 7) T=0, посылаем dummy write (0x8600)

шаг 8) T=1, посылаем "U"(0x8255)

шаг 9) T=1, посылаем "I"(0x8249) <<--<<--<<--

шаг 10) T=0, посылаем dummy write (0x8600)

шаг 11) T=0, посылаем dummy write (0x8600)

шаг 12) T=1, посылаем "R"(0x8252)

шаг 13) T=1, посылаем "Y"(0x8259) <<--<<--<<--

шаг 14) T=0, посылаем dummy write (0x8600)

шаг 15) T=0, посылаем dummy write (0x8600)

шаг 16) T=1, посылаем " "(0x8220)

шаг 17) T=1, посылаем "5"(0x8235) <<--<<--<<--

шаг 18) T=0, посылаем dummy write (0x8600)

шаг 19) T=0, посылаем dummy write (0x8600)

шаг 20) T=1, посылаем " "(0x8220)

шаг 21) T=1, посылаем "N"(0x824E) <<--<<--<<--

шаг 22) T=0, посылаем dummy write (0x8600)

шаг 23) T=0, посылаем dummy write (0x8600)

шаг 24) T=1, посылаем "A"(0x8241)

шаг 25) T=1, посылаем "M"(0x824D) <<--<<--<<--

шаг 26) T=0, посылаем dummy write (0x8600)

шаг 27) T=1, посылаем "E"(0x8245)

шаг 28) T=1, посылаем "#d"(0x820d) <<--<<--<<--

шаг 29) T=0, посылаем dummy write (0x8600)

шаг 30) T=0, посылаем dummy write (0x8600)

шаг 31) T=1, посылаем "#a"(0x820a)

 

Посылки помеченные (<<--<<--<<--) не дошли до блютуза...

Долго думал в чём причина... Пробовал вместо записи 0x8600 делать чтение 0х0000, однако результат был таким же самым...

 

Есть ли у вас какие-либо варианты решения или обоснования причины данной проблемы? Наверняка кто-то уже успешно запускал MAX3100. Помогите, плиз!

Изменено пользователем АдскийОдуванчик

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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