Jump to content

    

Recommended Posts

Тут написано, что кроме 28xx: http://processors.wiki.ti.com/index.php/Profiler.

В любом случае у меня вот такая картина и кнопка activate в окне Profile Setup ничего не активирует. Лицензия стоит покупная не стянутая из инета (если это играет какую-то роль).

post-65952-1479726981_thumb.jpg

Окно ошибки осталось от предыдущей отладки, когда пропало питание.

Edited by ELEKTROS

Share this post


Link to post
Share on other sites

Есть вопрос по SPI модулю больше филосовский.

SPI модуль всегда настраиваю по диаграмам из даташитов на подключаемые устройства и проблем с работой никогда небыло, но вопрос периодически когда делать нечего будоражит мне голову - если настраивать только опираясь на указание режима работы SPI модуля (режимы 0,1,2,3) получается чушь.

 

Например: из даташита на тот же AVR (собственно такая настройка во всех попадающихся мне даташитах на ту или иную микросхему spi):

post-65952-1500974162_thumb.jpg

например режим 0 - это работа по нарастающему фронту и низким уровнем на линии тактирования в режиме простоя.

А в даташите у TMS320f28335:

post-65952-1500974168_thumb.jpg

А здесь режим 0 - это работа по спадающему фронту и низким уровнем на линии тактирования в режиме простоя.

Подскажите где лыжи не едут?

Share this post


Link to post
Share on other sites
например режим 0 - это работа по нарастающему фронту и низким уровнем на линии тактирования в режиме простоя.

...

А здесь режим 0 - это работа по спадающему фронту и низким уровнем на линии тактирования в режиме простоя.

А что Вы понимаете под словом "работа"??

SPI он во всех режимах выполняет работу и по фронту и по спаду: по одному переходу - выставляет на шину данные, по другому - считывает.

PS: Обычно всегда использую режим 3. Считаю его более логичным чем 0 - логичнее ведь сначала выставить данные на шину, а уже после - считать, а не наоборот :rolleyes:

Share this post


Link to post
Share on other sites

Давайте перефразирую вопрос: Почему режим SPI 0(1,2,3) для TMS и для "всех" остальных не одно и тоже, т.е. точки выборки на разных фронтах (из диаграмм во вложении суть ясна что не так)?

jcxz, всегда происходит так, как вы написали, иначе ничего бы и неработало никогда.

Share this post


Link to post
Share on other sites
Давайте перефразирую вопрос: Почему режим SPI 0(1,2,3) для TMS и для "всех" остальных не одно и тоже, т.е. точки выборки на разных фронтах (из диаграмм во вложении суть ясна что не так)?

Что из них должно быть ясно? Первая - просто описывает все эти режимы, ну и что?

Вторая - вообще никакого отношения к режимам не имеет (там они даже не упоминаются), а описывает некие опции программирования SPI-контроллера в данном МК.

Из чего Вы решили что "в TMS что-то не так, как в остальных" - не ясно. В TMS всё точно так же как и в других.

Share this post


Link to post
Share on other sites

Вы же считаете по порядку (0,1,2,3,4,5,6....), а не так: 1,0,3,5,2. Вот исходя из этого и делаю вывод (так как не указанно иное) что режимы на второй картинки идут по порядку.

Другое дело действительно может у TI нету акцента вообще на это, просто приведены режимы, а какой он там по номеру определяй сам.

Share this post


Link to post
Share on other sites
Вы же считаете по порядку (0,1,2,3,4,5,6....), а не так: 1,0,3,5,2. Вот исходя из этого и делаю вывод (так как не указанно иное) что режимы на второй картинки идут по порядку.

Жесть какая.... Это наверное пример женской логики? :smile3009:

Если в доке первым опишут режим 3, то Вы его будете считать режимом 0?.... Да уж.... больше сказать тут нечего.....

Причём на вашей 2-й картинке вообще не говорится ни о каких режимах SPI. Там вообще описывают работу не в распространённых терминах "режимов SPI", у Техаса свой стиль описания и конфигурирования. Не понятно - с чего Вы туда некие "режимы SPI" приплели? :wacko:

Share this post


Link to post
Share on other sites

Всем привет! Необходимо опросить датчик по SSI. Хочу заюзать SPI. По SSI необходимо принять 13 бит. Как мне сформировать 13 инмульсов клока? Камень TMS320F28335. Читаю TMS320x2833x, 2823x Serial Peripheral. Там сказано что в регистре SPICCR есть поля CHAR0 - CHAR3, которые отвечают за длину бит в посылке. Правитльно ли я понимаю, что если я запишу 13 в это поле, то я должен получить 13 клоков с вывода SPI CLK. К сожалению нет возможности предоставить код ((( На текущий момент при передаче чего-либо у меня формируется 16 клоков и значение записанное в CHARx не влияет на клоки.

Share this post


Link to post
Share on other sites

Значит что то не так делаете, покажите настройку регистров конфигурации.

Примерно как то так:

    SpiaRegs.SPICCR.bit.SPISWRESET = 0; // сброс для начала настройки

    SpiaRegs.SPICCR.bit.CLKPOLARITY = 1; // активный уровень высокий
    SpiaRegs.SPICTL.bit.CLK_PHASE = 0; // сдвига нет

    ///////////////////////////
    SpiaRegs.SPICCR.bit.SPICHAR = 12; // длина посылки 13 бит
    SpiaRegs.SPICTL.bit.MASTER_SLAVE = 1; // мастер режим
    SpiaRegs.SPICTL.bit.TALK = 1; // включить передачу
    SpiaRegs.SPIBRR = 127; // частота тактов SPI 150МГц/4*(127+1) = 293 кГц
    SpiaRegs.SPIPRI.bit.FREE = 1; // не реагировать на эмулятор

    SpiaRegs.SPIFFTX.bit.SPIFFENA = 1; // включить FIFO
    SpiaRegs.SPIFFCT.all = 50; // задержека между передачами из FIFO буфера

    SpiaRegs.SPICCR.bit.SPISWRESET = 1; // конец настройки

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this