реклама на сайте
подробности

 
 
11 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> TMS320 - начало пути, Прошу помощи в освоении
zi4rox
сообщение Nov 16 2009, 17:09
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 4-04-08
Пользователь №: 36 480



Есть задача и желание разобраться и освоить работу c TMS320.
Первый заход в поисковики и форумы - выдал примерную картину для меня: "обсуждения каких-то конкретных проблем есть, решения есть - но такое ощущение что все как бы сразу уже умеют работать с ними, а начального уровня нигде не увидел".

Для освоения данных процессоров есть простая задача: сделать на базе тмс320 цифровой фильтр н-ого порядка. Первый вопрос который сразу же задал себе - чем и как программировать, среда разработки и т.п. Вообще куча вопросов (потому что опыта работы с ними нет вообще, есть большой опыт проектирования девайсов на авр - там то инфы было завались). Надеюсь что поможете добрым словом, и данный тред будет полезен таким же новичкам

1. Среда разработки
Ну тут вроде все прозрачно, почти все упоминания сводятся к Code Composer Studio. Вроде все хорошо тут и на си кодится )

2. Программатор
Вот здесь у меня оооочень большие вопросы и сомнения. Схем программаторов как таковых не нашел вообще нигде, на форумах у всех есть тестовые-платы которые стоят очень много и заводские программаторы-эмуляторы, которые стоят ещё дороже. Единственное что нашел так это Olimex TMS320-JTAG программатор-эмулятор + на форуме по нему отзывы тоже разношерстные.
В общем я очень сильно задаюсь вопросом - как прошивать-то?. Или я действительно оплошался, наивно полагая что заказав сэмпл проца с техаса и спаяв/купив дешевый программатор можно начать работать?

3. Какой проц взять?
Из вашего личного опыта - с каким семейством проще начать работу и изучение? Пока склоняюсь, что надо заказывать TMS320FC28xx - исходя только из тех соображений, что именно их можно прошивать бюджетным программатором от Olimeх.

4. Примеры, схемы
И ещё один нюанс который не очень нравиться - почти нет схем, примеров проектов на данных процах. Все юзают отладочные платы, которые мне не под силу достать. Хоть парочку бы простеньких реализаций, посмотреть обвязку, как программить и подключать - хоть что-то. В даташите тоже ооочень скудно.

Так что вот, пока смотрю как на большой черный ящик, у которого приоткрыл крышку - но пока все равно ничего не видно. Но желание осилить это дело есть - прошу добрых людей направить в нужную сторону и помочь добрым постом )
Go to the top of the page
 
+Quote Post
kamil_yaminov
сообщение Nov 16 2009, 17:48
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 395
Регистрация: 15-02-08
Из: Новосибирск
Пользователь №: 35 064



1) Если писать алгоритмы ЦОС, то писать на ассемблере
2) Грузить и прошивать можно разными способами, в том числе и через RS232. Софт для этого наверное можно найти на spectrumdigital.com. Про способы загрузки и прошивки есть пдфки на сайте техасцев. Вообще, у них на сайте можно найти много чего полезного. Есть простенький эмулятор XDS100. На сайте техаса выложена схема данного устройства - можно собрать самому, либо купить, благо стоит он 79$. Для начала пойдет.
3) 28хх больше ориентированы на управление двигателями и источниками питания и являются больше МК, чем ЦСП. Если нужно реализовывать алгоритмы ЦОС, то стоит обратить внимание на С5000 и С6000. Хотя в последнее время и среди 28хх появились интересные камни.
4) Куча разных примеров есть на сайте ti.com. На spectrumdigital.com можно найти схемы отладочников.

Но для начала стоит определиться, для каких целей предполагается использовать процессор. Потом выбрать семейство, а дальше будет легче со всем остальным.

UPD. Сечас sigmaN еще подкинет дровишек )
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Nov 16 2009, 17:59
Сообщение #3


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



http://focus.ti.com/docs/toolsw/folders/pr...dx28027usb.html

Стоит около 40баксов.
Выглядит как флэшка, там на плате сразу контроллер и эмулятор.
Можно и шить и отлаживать(хотя и медленно, конечно).

Ну самоделок вы не найдете наверное....это ж не АВР всё таки smile.gif тут бабки делаются на всём чем можно. smile.gif

Ну и искать нужно если чисто для C2000 - то цена будет ниже соответственно.
с TMS320 начинается очень много процов.
По С2000 это ИМХО самый дешевый вариант. 40$

Конечно, полноценная отладочная плата от Спектрум Дигитал за 500 баксов это может быть дороговато, но зато там реально БЫСТРЫЙ эмулятор на борту и некоторая переферия имеется....
Т.е. цена конечно завышена, спору нет, но зато это удобно smile.gif
Купите ezDSP F28335 один раз и сможете много чего попробывать(на много круче, чем просто фильтр)......

Added: эх. Опять опередили, пока мой ADSL переподключался smile.gif
А чё, в C2000 тоже неплохая DSP цифромельница стоит. Многое можно на ней обкатать. А ежели ещё проц с FPU сразу взять - так и ваще сказка.
Другое дело, что памяти маловато и флэш тормознутая - это ДА smile.gif


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 16 2009, 18:52
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(zi4rox @ Nov 16 2009, 20:09) *
2. Программатор
Вот здесь у меня оооочень большие вопросы и сомнения. Схем программаторов как таковых не нашел вообще нигде

Ну плохо искали. Я довольно давно выкладывал. http://projects.caxapa.ru/?ID=6 И его суть - внутрисхемный отладчик, а не програмамтор, программировать/грузить можно почти все процы через их разнообразные интерфейсы, SPI, UART, USB, I2C, у кого что есть. Кстати, сейчас в принципе возможно убрать из схемы ACT8990, у меня уже есть решение для размещения внутри ПЛИС, но нет стимула возиться.

Цитата(zi4rox @ Nov 16 2009, 20:09) *
3. Какой проц взять?
Из вашего личного опыта - с каким семейством проще начать работу и изучение? Пока склоняюсь, что надо заказывать TMS320FC28xx - исходя только из тех соображений, что именно их можно прошивать бюджетным программатором от Olimeх.

Возьмите TMS320VC5509 или 5507. Их можно грузить просто через их же USB без каких либо программаторов. И для запуска ему достаточно питания и кварца 12-мгц-ового. Для старта самое то. А на 28хх пересядете если что легко.

Цитата(kamil yaminov @ Nov 16 2009, 20:48) *
1) Если писать алгоритмы ЦОС, то писать на ассемблере

Ага, особенно под 6000-ки smile.gif smile.gif Крышу на раз сносит!
Go to the top of the page
 
+Quote Post
Fedor_spb-2
сообщение Nov 17 2009, 08:50
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 17-05-06
Пользователь №: 17 198



Да не обидится на меня zi4rox создавший тему. У меня аналогичная ситуация со знаниями по этому DSP, но вопрос другой: как считать память из флэш? Уж и чем только не пробовал, везде erase, program, verify есть, а read нет. Почему? И как это можно сделать? В наличии TMS320F2811, XDS510, CCS4, SDFlash, SDConfig. Спасибо.
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 17 2009, 08:56
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Fedor_spb-2 @ Nov 17 2009, 11:50) *
как считать память из флэш?

Оригинальная формулировка... Как считать память из памяти. smile.gif

В CCS3 это было Tools->Memory Save/Load utility.
Go to the top of the page
 
+Quote Post
Fedor_spb-2
сообщение Nov 17 2009, 09:39
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 17-05-06
Пользователь №: 17 198



Да да. Сам перечитал, улыбнулся, но, подумал, ведь профи-то меня поймут.

В CCS4 есть Tools->On-Chip Flash. Раскрывается закладка, а там Erase, Program, Verify. Чуть ниже Program, Verify и еще ниже Load RAM only. И все. sad.gif
Go to the top of the page
 
+Quote Post
SM
сообщение Nov 17 2009, 09:44
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Fedor_spb-2 @ Nov 17 2009, 12:39) *
В CCS4 есть Tools->On-Chip Flash.

Да причем тут флеш? Там совсем другой тул, который просто сохраянет кусок адресного пространства проца, флеш там или нет, внутренняя или внешняя, в файл. Это не во флеш-тулзах. Четвертого композера у меня сейчас нет под рукой, а где в третьем - я же конкретно указал.
Go to the top of the page
 
+Quote Post
Fedor_spb-2
сообщение Nov 17 2009, 11:04
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 17-05-06
Пользователь №: 17 198



Уррря. Нашел. View->Memory, откроется окно, а тум уж правой мышкой выбрать. Казалось бы просто, но с наскока не видел пока с каждой кнопочкой не разобрался. Собственно, задавал вопрос только для того, чтобы вдруг не искать долго и нудно то, чего нет и не предусмотрено. Когда сказали есть, стал искать. Спасибо за помощь.
Go to the top of the page
 
+Quote Post
zi4rox
сообщение Nov 18 2009, 14:00
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 4-04-08
Пользователь №: 36 480



Начальный курс понял - закажу процы, проштудирую дш, и буду уже ручками пробывать. Тогда уже конкретные вопросы будут. спасибо
Go to the top of the page
 
+Quote Post
Eger
сообщение Nov 29 2009, 16:48
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 127
Регистрация: 16-05-07
Пользователь №: 27 774



может чем нить поможет...


--------------------
с polisoftlab.info
Go to the top of the page
 
+Quote Post
qxov
сообщение Dec 10 2009, 10:48
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 22-03-07
Из: Санкт-Петербург
Пользователь №: 26 406



Цитата(kamil yaminov @ Nov 16 2009, 20:48) *
1) Если писать алгоритмы ЦОС, то писать на ассемблере

Голословно.
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 10 2009, 12:57
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(qxov @ Dec 10 2009, 13:48) *
Голословно.

Зато эффективно. Целые немаленькие фирмы трудятся над оптимизацией ЦОС-алгоритмов на ассемблерном уровне и живут этим. Даже с 6000-ками, где асм-программирование трудно и геморройно, оно нередко себя оправдывает на ЦОС-алгоритмах.
Go to the top of the page
 
+Quote Post
segnetik
сообщение Jan 9 2010, 14:28
Сообщение #14





Группа: Validating
Сообщений: 6
Регистрация: 9-01-10
Из: Волгоград
Пользователь №: 54 688



Добрый день! С TMS320VC5507 при загрузке через USB возникла следующая проблема - процессор не определяется компом. Для загрузки, следуя инструкциям из мануала, выполняю следующие шаги :
1. Включаю питание
2. Перевожу проц в режим загрузки с USB
3. Делаю сброс проца

после сброса никаких эмоций... если линии данных USB подтянуть к 3.3В ( D- через 1.5К, D+ через 1М резисторы), то появляется неизвестное устройство с пустыми вид и пид, что естественно ни о чем не говорит... Уровни напряжений на линиях данных - 0,5 на D- и 0 D+ crying.gif

USBVdd = Vdd = 3,33В. CVdd = 1,26В. кварцевый резонатор стоит на 12 МГц.
соответственно, возникло несколько вопросов :
1. +5В от USB не подключено никуда?
2. PU ( через 1,5К подключено к D+, по даташиту ) должно быть внутри проца соединено с 3,3В, однако даже при отключенном шнуре USB, на данном пине этими 3,3 В и не пахнет... Каюк USB модулю в проце?

P.S. Отсутствие КЗ или непропаев исключено - проверял множество раз уже...
Go to the top of the page
 
+Quote Post
Alex11
сообщение Jan 10 2010, 08:24
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Вроде бы все правильно. Проверьте, действительно ли Вы поставили его в режим загрузки с USB. Там легко можно попутать выводы. Проверьте фронт сигнала Reset. Если он пологий - проц может просто не запускаться.
Go to the top of the page
 
+Quote Post
SM
сообщение Jan 11 2010, 13:08
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



А еще проверьте, чтобы на EMU0 и EMU1 было по единице. А то процессор просто может оказаться в состоянии "OFF" когда все его пины в третьем состоянии.
Go to the top of the page
 
+Quote Post
bullit
сообщение Jan 11 2010, 17:35
Сообщение #17


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Всем добрый день!
Вот смотрю в сторону TMS320F28234 и понять не могу по поводу частоты переключения "ног".
Может кто нить пояснить?
Вот в даташите написанно мол скорость на выход макс 25 МГц, а на вход? там чёт такое написанно, а разобраться не могу...
Если кому не трудно, поясните пжлст.
Дело в том что хочу ентот камень на ацп 20MSPS подключить. Вот думаю буду ли я успевать читать с портов? Или может какой другой камень лучше подойдёт?
Go to the top of the page
 
+Quote Post
Yura_K
сообщение Jan 15 2010, 21:03
Сообщение #18


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821



1) Обычно у таких АЦП LVDS выходы, а у DSP'ков вроде как нет LVDS интерфейсов.
2) Для работы со скоростными интерфейсами лучше применить ПЛИС, возможно даже FPGA (в них и поддержка LVDS имеется).
3) В даташите пишут: If QUALPRD = 00, then the sampling period is 1 SYSCLKOUT cycle, т.е. при отключении входного "фильтра", частота опроса равна 150 МГц.


--------------------
Чудес не бывает - бывает мало знаний и опыта!
Go to the top of the page
 
+Quote Post
Alex11
сообщение Jan 16 2010, 11:45
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Если Вам нужно взять, скажем 1000 отсчетов, затем пауза для обработки, а затем снова - тогда еще шанс есть, хотя и невеликий. А если в непрерыве и с обработкой - то не успеете.
Go to the top of the page
 
+Quote Post
bullit
сообщение Jan 16 2010, 12:14
Сообщение #20


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



1) У данной АЦП обычный паралельный интерфейс. Вот уже у 40МГц-овых LVDS стоит.
2) с ПЛИСами не знаком, к сожелению. Времени освоить боюсь больше нужно будет.
3) тогда это меняет дело. Но выход выше 25 достичь нереально?
А то ведь еще операции (чтение порта, запись в внутр. озу, счётчик измерений проверять) делать надо.

Мне 2000-3000 точек максимум всего. А потом пульнуть по SPI, но не всё, а тока кусочек (выбирается из сигнала некоторый кусочек). Задача у мк всего-то принять, найти кусок сигнала где он меняется (по уровню сигнала) и несколько точек передать.
Go to the top of the page
 
+Quote Post
segnetik
сообщение Jan 20 2010, 12:36
Сообщение #21





Группа: Validating
Сообщений: 6
Регистрация: 9-01-10
Из: Волгоград
Пользователь №: 54 688



Добрый день! Получилось завести железяку tms320vc5507, определятся через USB, грузится и через SPI EEPROM и через USB.
Возник вопрос по программированию - как выставлять данные на линии D0-D15 (как при использовании EMIF, так и при HPI)? насколько я понял - регистры связанные с данными интерфейсами содержат только флаги управления и состояния. В CSL обнаружил функции только для конфигурирования (( Подскажите пожалуйста.
Go to the top of the page
 
+Quote Post
SM
сообщение Jan 20 2010, 12:50
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(segnetik @ Jan 20 2010, 15:36) *
Возник вопрос по программированию - как выставлять данные на линии D0-D15 (как при использовании EMIF, так и при HPI)?


При EMIF - просто записью или чтением по адресам адресного пространства процессора, соответствующим нужному CEx емифа. При HPI - никак. HPI работает наоборот - обеспечивает доступ к памяти процессора со стороны другого внешнего устройства, выступающего в роли мастера.
Go to the top of the page
 
+Quote Post
segnetik
сообщение Jan 20 2010, 12:57
Сообщение #23





Группа: Validating
Сообщений: 6
Регистрация: 9-01-10
Из: Волгоград
Пользователь №: 54 688



Спасибо!
Go to the top of the page
 
+Quote Post
kamil_yaminov
сообщение Jan 22 2010, 15:10
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 395
Регистрация: 15-02-08
Из: Новосибирск
Пользователь №: 35 064



А может тему того? Подвесить сверху?
Go to the top of the page
 
+Quote Post
segnetik
сообщение Jan 23 2010, 01:22
Сообщение #25





Группа: Validating
Сообщений: 6
Регистрация: 9-01-10
Из: Волгоград
Пользователь №: 54 688



Возник новый вопрос по TMS320VC5507/09A smile.gif Существует ли возможность однократного вывода данных на линии D0-D15? Другими словами мне необходимо на данные линии в произвольные моменты времени выводить некоторые данные. Возможно ли это реализовать и если да то как лучше?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 23 2010, 03:36
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



И что подразумевается под "однократным выводом"? Пишете по нужному адресу, EMIF на шине ставит данные - дергает стробы. Или же вы хотите устанавливать линии D0-D15 на манер GPIO?
Go to the top of the page
 
+Quote Post
segnetik
сообщение Jan 23 2010, 09:42
Сообщение #27





Группа: Validating
Сообщений: 6
Регистрация: 9-01-10
Из: Волгоград
Пользователь №: 54 688



Грубо говоря - да, на манер GPIO. Ведь когда данные выводишь через EMIF, он начинает последовательно перебирать содержимое отведенной памяти. Что данные линии (Д0-Д15) линиями GPIO не являются я знаю, но возможно существует какой-либо фокус с конфигами EMIF или с использованием однократного DMA DARAM -> EMIF, чтобы их можно было использовать как таковые? rolleyes.gif
Go to the top of the page
 
+Quote Post
SM
сообщение Jan 23 2010, 10:31
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Сигналы данных и управления так использовать не представляется возможным. А вот сигналы шины адреса - A15...A0 - можно, переключив режим в регистре EBSR на DATA EMIF или MULTIPLEXED HPI.

Цитата
Ведь когда данные выводишь через EMIF, он начинает последовательно перебирать содержимое отведенной памяти

Извините, но это какой-то бред. EMIF сам никогда и ничего перебирать не начинает. Сделали один вывод в адресное пространство, соответствующее EMIF-у, он, EMIF, сгенерировал один цикл доступа в внешнюю память. А вот останется ли после этого цикла линия данных в том состоянии, в котором была во время цикла - смотрите осциллографом. Возможно и останется, там есть bus holder-ы. А возможно и нет... Никто не обещает.
Go to the top of the page
 
+Quote Post
Andron_
сообщение Jan 24 2010, 06:31
Сообщение #29


.NET developer
***

Группа: Свой
Сообщений: 218
Регистрация: 20-10-07
Из: Новосибирск
Пользователь №: 31 532



bus-holder'ы есть на шине данных... но штука специфичная, для GPIO плохо подходит... триггер басхолдера запросто опрокидывается емкостью щупа осциллографа...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 24 2010, 06:53
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



А простую защелку(-и) типа 16374/374 подцепить никак нельзя?
Go to the top of the page
 
+Quote Post
SM
сообщение Jan 24 2010, 08:20
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(aaarrr @ Jan 24 2010, 09:53) *
А простую защелку

Как правило плату сначала разводят и изготавливают, а потом начинают думать, как теперь что сделать smile.gif
Go to the top of the page
 
+Quote Post
segnetik
сообщение Jan 24 2010, 11:52
Сообщение #32





Группа: Validating
Сообщений: 6
Регистрация: 9-01-10
Из: Волгоград
Пользователь №: 54 688



Поначалу разбирался с tms320vc5502, там половину линий данных можно под пользовательские нужды задействовать, потому никак не мог предположить что такая засада может быть smile.gif Хранители действительно как-то странно работают здесь... В итоге решил оставить в покое эти Д0-Д15 и использовать преобразователь I2C -> параллельные 8/16 бит. Для поставленной задачи производительности I2C за глаза. Спасибо всем за ответы!!!

Сообщение отредактировал segnetik - Jan 24 2010, 11:59
Go to the top of the page
 
+Quote Post
SM
сообщение Jan 24 2010, 18:18
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(segnetik @ Jan 24 2010, 14:52) *
Поначалу разбирался с tms320vc5502,

так 5501/2 сделали значительно позже, чем 5509 (5507 это он же, но кастрированный). В нем, 5501/2, видимо и сделали GPIO на данных по пожеланию недовольных от 5509
Go to the top of the page
 
+Quote Post
kamil_yaminov
сообщение Jan 28 2010, 11:43
Сообщение #34


Местный
***

Группа: Свой
Сообщений: 395
Регистрация: 15-02-08
Из: Новосибирск
Пользователь №: 35 064



Спрошу и я. Никак не могу сообразить как заинлайнить функцию. Процессор F2809.

В хидере пишу вот такое:
Код
inline void CanWrite(Uint16 CHAN_NUMBER, TCAN_DATA *DATA);

В сишном файле вот такое:
Код
inline void CanWrite(Uint16 CHAN_NUMBER, TCAN_DATA *DATA)
{
    //тут код, который запихивает данные в дата-регистры меэйлбокса
}

Компилятор, соответственно ругается матом, говорит, что function "CanWrite" was declared but never referenced. Что почитать? Керниган и Ритчи по этому поводу молчат. Понимаю, что K&R C не самой последней свежести, хочется поднять свой уровень с быдлокодерства чутка повыше ).

PS. Товарищам модерам: может данную тему закрепить как важную сверху, чтобы тут те кто присматривается/начинает спрашивали/читали, дабы каждый раз не плодить новую тему?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 28 2010, 11:53
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Так в чем проблема? Если функция "never referenced", так стало быть и некуда ее инлайнить.
Go to the top of the page
 
+Quote Post
kamil_yaminov
сообщение Jan 28 2010, 12:09
Сообщение #36


Местный
***

Группа: Свой
Сообщений: 395
Регистрация: 15-02-08
Из: Новосибирск
Пользователь №: 35 064



Да вроде используется она, в другом месте: есть сишный файлик с основным циклом, там делаю:
Код
#include "CAN.h"
.......
    CanWrite(AnswerTx, &TxData);
.......

CAN.h - это там, где объявлена функция CanWrite
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 28 2010, 12:14
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(kamil yaminov @ Jan 28 2010, 15:09) *
Да вроде используется она, в другом месте

В другом месте компилятор ее, естественно, не видит: тела-то нет, оно закопано в другом C-файле, о котором компилятор не имеет ни малейшего понятия.
Go to the top of the page
 
+Quote Post
kamil_yaminov
сообщение Jan 28 2010, 12:20
Сообщение #38


Местный
***

Группа: Свой
Сообщений: 395
Регистрация: 15-02-08
Из: Новосибирск
Пользователь №: 35 064



Так, когда я убираю из описания функции ключевое слово inline, то все работает.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 28 2010, 12:26
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Конечно - тогда это забота линкера, который в курсе всего.

Чтобы использовать инлайн функцию, нужно ее разместить так, чтобы компилятор ее видел, т.е. или в самом модуле, или в подключаемом хидере.
Go to the top of the page
 
+Quote Post
Andron_
сообщение Jan 28 2010, 13:28
Сообщение #40


.NET developer
***

Группа: Свой
Сообщений: 218
Регистрация: 20-10-07
Из: Новосибирск
Пользователь №: 31 532



тело inline-функций должно размещаться в месте объявления.

вот это все должно быть написано в хедэре:

Код
inline void CanWrite(Uint16 CHAN_NUMBER, TCAN_DATA *DATA)
{
    //тут код, который запихивает данные в дата-регистры меэйлбокса
}


дядька Страуструп об этом писал английским по белому.
Go to the top of the page
 
+Quote Post
kamil_yaminov
сообщение Jan 28 2010, 13:41
Сообщение #41


Местный
***

Группа: Свой
Сообщений: 395
Регистрация: 15-02-08
Из: Новосибирск
Пользователь №: 35 064



Спасибо!! Теперь ясно. Надо попробоватьУже запробовал - работает. Признаю, про линкер ступил, мог бы и додуматься сам )
Go to the top of the page
 
+Quote Post
C-r-o-w
сообщение Oct 17 2010, 12:35
Сообщение #42





Группа: Новичок
Сообщений: 1
Регистрация: 22-12-08
Пользователь №: 42 672



Ребят, очень надеюсь, что тема не умерла. Прошу помощи по TMS320VC5506. Где можно посмотреть любой готовый проект на данном (или хотя бы из серии C55xx) процессоре? Интересует банальный запуск сего камня с загрузкой через USB, т.е. что и как нужно в нем запитать (в частности, питание 1.2 вольта относится ТОЛЬКО к ядру и модулю USBPLL? т.е. управление всеми логическими уровнями (в т.ч. GPIO для выбора boot-loader'а) производится с помощью +3.3 В? какие еще выводы (кроме RESET и вышеупомянутых EMU0,1) нужно повесить на "1" (или "0"))?

Сообщение отредактировал C-r-o-w - Oct 17 2010, 12:36
Go to the top of the page
 
+Quote Post
Ramil
сообщение Oct 17 2010, 15:01
Сообщение #43


Частый гость
**

Группа: Свой
Сообщений: 93
Регистрация: 5-08-04
Пользователь №: 452



Частичный перевод даташита на tms320f2808. На "ляпы" перевода не ругайтесь ), не профи в этом, там где стоят символы ???? не уверен в правильности, вставлял для того чтобы вернутся к этим фрагментам позже - искать проще. Переводил для себя, - английский немного подучить, да и на русском проще воспринимается. Не закончил потому что больше нет необходимости в этом. Может и понадобится кому. laughing.gif


Прикрепленные файлы
Прикрепленный файл  TMS320F2808.pdf ( 1.75 мегабайт ) Кол-во скачиваний: 4628
 
Go to the top of the page
 
+Quote Post
Racurs
сообщение Oct 19 2010, 06:29
Сообщение #44


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 21-09-10
Пользователь №: 59 621



Возникла проблема при программировании CAN в TMS320F2812. Решил руководствуясь даташитом настроить CAN и отправить данные -- отправка в шину не идёт. Скачал пример sprc097 ecan_back2back, изменил в нём бит STM=0 -- тот же результат. Может кто-нибудь сталкивался с программированием CAN и есть рабочие проекты, как увидеть хоть что-нибудь на выходе? И ещё вопрос: необходимо ли подключать на шину хотябы одно устройство CAN чтобы пошла передача от модуля CAN в TMS?
Go to the top of the page
 
+Quote Post
argentum
сообщение Jan 20 2011, 19:44
Сообщение #45


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 26-04-09
Из: Москва
Пользователь №: 48 283



Цитата(Fedor_spb-2 @ Nov 17 2009, 14:04) *
Уррря. Нашел. View->Memory, откроется окно, а тум уж правой мышкой выбрать. Казалось бы просто, но с наскока не видел пока с каждой кнопочкой не разобрался. Собственно, задавал вопрос только для того, чтобы вдруг не искать долго и нудно то, чего нет и не предусмотрено. Когда сказали есть, стал искать. Спасибо за помощь.

Уважаемый Fedor_spb-2, подскажите, как вам удалось скачать программу из памяти?
У меня в указаном окне все элементы неактивны!
Go to the top of the page
 
+Quote Post
Spinch
сообщение Nov 21 2011, 12:31
Сообщение #46





Группа: Новичок
Сообщений: 2
Регистрация: 21-11-11
Пользователь №: 68 432



Ломаю прошивку для TMS320C28xx под Code Composer Studio.
Прошивка мне досталась "в наследство" от ушедшего сотрудника.

Суть проблемы: На данный момент отведено под прошивку только три сектора памяти, а сама прошивка вылезла за пределы. Необходимо подцепить четвёртый сектор. Кто может внятно рассказать где и как это сделать?
Заранее спасибо.
Go to the top of the page
 
+Quote Post
Matic
сообщение Nov 21 2011, 12:39
Сообщение #47


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 30-06-10
Пользователь №: 58 210



Цитата(Spinch @ Nov 21 2011, 15:31) *
Ломаю прошивку для TMS320C28xx под Code Composer Studio.
Прошивка мне досталась "в наследство" от ушедшего сотрудника.

Суть проблемы: На данный момент отведено под прошивку только три сектора памяти, а сама прошивка вылезла за пределы. Необходимо подцепить четвёртый сектор. Кто может внятно рассказать где и как это сделать?
Заранее спасибо.


У Вас исходники есть или нет?
Go to the top of the page
 
+Quote Post
Spinch
сообщение Nov 21 2011, 13:06
Сообщение #48





Группа: Новичок
Сообщений: 2
Регистрация: 21-11-11
Пользователь №: 68 432



Цитата(Matic @ Nov 21 2011, 15:39) *
У Вас исходники есть или нет?


Исходники в полном объёме. Их и дорабатываю. Правда пока не постиг полного дзена приходится консультироваться у гуру sm.gif
Нашел файл f2812.cmd

Вроде интересубщее место тут:
Код
SECTIONS
{

   /* Allocate program areas: */
   .cinit              : > FLASHB      PAGE = 0
   .pinit              : > FLASHB,     PAGE = 0
   .text               : > FLASHC      PAGE = 0
   codestart           : > BEGIN       PAGE = 0
   ramfuncs            : LOAD = FLASHC,
                         RUN = RAML0,
                         LOAD_START(_RamfuncsLoadStart),
                         LOAD_END(_RamfuncsLoadEnd),
                         RUN_START(_RamfuncsRunStart),
                         PAGE = 0

   csmpasswds          : > CSM_PWL     PAGE = 0
   csm_rsvd            : > CSM_RSVD    PAGE = 0


собственно текст ошибки:

Код
<Linking>
>>   error: can't allocate ramfuncs, size 00000360 (page 0) in FLASHC (avail:
            00000331)
>>   error: errors in input - ./Debug/iss.out not built

>> Compilation failure




----------------------------------------------------------------------------------------------
UPD:
Всем спасибо, что выслушали. Внимательное прочтение всоего же сообщения выявило подсказку sm.gif
Вроде всё заработало после переноса ramfuncs в сектор D

Сообщение отредактировал Spinch - Nov 21 2011, 13:07
Go to the top of the page
 
+Quote Post
Andron77
сообщение Dec 14 2011, 07:47
Сообщение #49


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762



Всем доброго времени суток.
Осваиваю TMS320F2808 всего пару недель, есть несколько вопросов по тактам и по реализации точных временных задержек.
ЦСП установлен на планке, заводском контрольном модуле под DIMM100, отладочной плате кто-то приделал ноги, поэтому сделал свою, программирование и отладка в CCS4.1.3 через XDS100V2 USB JTAG, DSP/BIOSа нету.

Тестовая небольшая программка моргает парой светодиодов в разных режимах. В ней реализована обычная программная задержка, прерывания все отключены. Частота кварца 20МГц, SYSCLKOUT проца 10МГц, выход внешнего такта 10/4=2.5МГЦ (точно измерено), то есть все по умолчанию.

В автономке JTAG отключен, общая программа записана во флэш (конвейер отключен), но подпрограмма задержки при инициализации копируется один раз в RAM L0 и там выполняется все время (проверено дизассемблером).
Подпрограмка задержки на С простая.
------------------------------------------------
void delay_loop(Uint32 tmp)
{
do{
tmp--;}
while (tmp>0);
}
-----------------------------------------------
Соответствующий asm дизассемблера, цикл который крутится, от него в основном и зависит длительность задержки
отрабатывает за 7 тактов, то есть по идеи за 0.7мкс на 10_МГц, цикл крутится 428571 раз (расчет 0.3сек)

m1: movb acc,#1 (1 такт)
subl *-sp[2],acc (1 такт)
movl acc,*-sp[2] (1 такт)
sbf m1, NEQ (4 такта)

Но реально измеренная задержка больше расчетной на 30%, 0.4с вместо 0.3с. Почему?
Выходит, что доступ к RAM L0 работает с циклами ожидания? хотя в даташите написано 0-wait?
Либо какая-то команда выполняется больше, чем 1 такт?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 14 2011, 08:21
Сообщение #50


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Вы где эти задержки меряете? На GPIO? Ну тогда это у вас задержка GPIO. Ну не предназначен он для таких временных интервалов.
Если уж пишете о %, то элементарно проверьте на больших величинах задержки. Если ошибка не пропорциональна величине задержки,
а является константой - это явно из-за частоты работы GPIO.
Go to the top of the page
 
+Quote Post
Andron77
сообщение Dec 14 2011, 09:32
Сообщение #51


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762



Так я и измеряю на больших задержках на ножке порта, я в курсе, что порт не сможет отработать микросекунды. Но отработать несколько герц порт явно сможет. sm.gif Вопрос в другом, почему проц не выполняет команды за те такты, что написаны в даташите?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 14 2011, 10:37
Сообщение #52


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



А Вы учитываете сколько времени выполняется условный переход в конце цикла и время на перезагрузку конвеера при срабатывании перехода?
Go to the top of the page
 
+Quote Post
Andron77
сообщение Dec 14 2011, 10:46
Сообщение #53


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762



Конечно учитываю, 4 цикла на условный переход
sbf (метка), NEQ (4 такта)
Конвейер выборки из флэш отключен, если вы про это, но так как программка работает из RAM, может быть так, что конвейер там свой и не отключается? В доках по этому поводу ничего не сказано.
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Dec 14 2011, 12:04
Сообщение #54


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



Здраствуйте, подскажите как с нуля создать проект для TMS 28027 в CCSv4. А то примерами пеользуюсь, а с нуля создать не догоню как. Или совсем простенький проект (только свой) может у кого есть, где пинами дрыгать.
Go to the top of the page
 
+Quote Post
Andron77
сообщение Dec 14 2011, 13:47
Сообщение #55


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762



Ну вот я делал тестовый проект на F2808, загрузка с флэш, запись в RAM пользовательского кода, выход в GPIO. Только нужно поправить cmd-файл распределения памяти под свой ЦСП. Программа пока без прерываний, не разобрался с ними. Примерами не пользуюсь, а вытаскиваю из них нужный код, слишком много там лишнего мусора.
По Piccolo есть интересные материалы для начинающих.
Мой проект в CCS4
Прикрепленный файл  Led.zip ( 131.84 килобайт ) Кол-во скачиваний: 189
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Dec 14 2011, 20:04
Сообщение #56


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



спасибо, но я не увидел функцию настройки генератора. И еще для меня ново увидеть goto (ну да ладно каждый пишит как умеет). Еще нету хидеров или вы всё в *.с файлы всунули?
Go to the top of the page
 
+Quote Post
Andron77
сообщение Dec 15 2011, 02:08
Сообщение #57


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762



Генератор я не настраивал, он работает на установках по умолчанию 10Мгц, половина частоты кварца, без синтезатора.
Кстати в примерах как раз и делается много лишней работы по установке регистров значениями умолчанию. Зачем, если они после сброса и так находятся в этом состоянии.
Файлы заголовков находятся в примерах DSP280x_common\include и DSP280x_headers\include.
К ним нужно прописать путь в настройках CCS4 ( project/properties/C2000 compiler/include options/иконка add), тогда они появятся в директории Includes проекта.
Оператор goto в данном случае делает банальный безусловный переход [SB (метка), UNC] можно и бесконечный for сделать, но в асме все равно будет тот же безусловный переход. Вообщем-то это моя первая программа на Си для контроллеров вообще, до этого на 51-ых и avr обходился ассемблером, так что за некоторую кривость програмки простите.
Вообще заметил, что компилятор не воспринимает некоторые классические конструкции си, нельзя допустим объявлять переменную в цикле, например на такую конструкцию выдает ошибку, for(int i=0;i<10;i++).
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Dec 15 2011, 11:52
Сообщение #58


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



Не компилиться, не находит "DSP280x_Device.h", что странно в свойствах проекта подключена директория с этим файлом и более того если проводником проекта пользоваться то открыть "DSP280x_Device.h" можно.
Go to the top of the page
 
+Quote Post
Andron77
сообщение Dec 15 2011, 13:18
Сообщение #59


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762



Так он и не должен так сразу компилится при копировании всего проекта, так как он рассчитан на F2808. Надо создать новый проект под ваш Piccolo 28027 контроллер и изменить следующее.
1. заменить хидеры в .с, кроме DSP280x_GlobalVariableDefs.c, его заменить своим из примеров, он не менялся.
2. DSP280x_CodeStartBranch.asm, в нем только отключается сторожевой таймер, думаю что его регистры в 28027 аналогичные.
3. DSP280x_Headers_nonBIOS.cmd заменить своим, не менялся
4. F2808.cmd по аналогии, обращая внимание на название областей, изменить свой, так как некоторых областей памяти в Piccolo нет.
Разобрался таки с созданием и копированием таблицы прерываний PIE, кстати вот здесь есть кое-что по русски.
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Dec 16 2011, 06:26
Сообщение #60


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



Какая разница, компилиться должен и ваш, только его не зашить в F28027 нормально, тут дело в другом в чём то.
Go to the top of the page
 
+Quote Post
Andron77
сообщение Dec 16 2011, 06:41
Сообщение #61


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762



А должен ли? Если в свойствах CCS выбрана модель 28027, а cmd файл в проекте под 2808?
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Dec 16 2011, 07:06
Сообщение #62


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



Чёто затупил, точно sm.gif
О чудо, заработал после прочтения: DSP2802x_HeaderFiles_Quickstart_Readme. Хотя не всё однозначно понятно.

Сообщение отредактировал ELEKTROS - Dec 16 2011, 08:47
Go to the top of the page
 
+Quote Post
Andron77
сообщение Dec 16 2011, 10:31
Сообщение #63


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762



Ну так пишите, что непонятно, будем вместе разбираться.
Написал второй тестовый проект, делает тоже самое, но полностью через обработчик прерываний таймера Т0. На сей раз задержки соответствуют расчетным, оно и понятно, таймер все-таки.
Но есть пара вопросов в основном по Си, в файле DSP280x_Default_Isr.c пустой выход из всех неиспользуемых обработчиков прерываний сделал через return, это обязательно или можно оставить функции пустые?
И второй вопрос, в подпрограмме таймера T0 объявил переменные (файл Led2.c) как static, соответственно эти переменные не видны в функции main(), как бы их так объявить, чтобы ими можно было пользоваться вне подпрограммы прерываний?
Прикрепленный файл  Led2.rar ( 116.64 килобайт ) Кол-во скачиваний: 128
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Dec 16 2011, 11:08
Сообщение #64


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



оставляй пустые, return обычно когда функция какого то типа, чтобы возвращала какоето значение. Вообщем стандартными хидерами удобно пользоваться достаточно. По второму вопросу только на ум приходят переменную глобальной сделать. Ну или в шарпе давно писал прожку какуюто там через класс как то делал, но еще какойто служебное слово писал что то типа privat, но не уверен что тут так можно хотя по идее можно завести указатель на эту переменную, но опять же глобальный указатель и через него из любого места программы ссылаться на static, но всё приходит к одно му, что то должно быть глобальным.

кстати меня досих пор терзает вопрос, там всего три таймера, как модуль захвата и модуль PWM работают с этими таймерами или у них свои таймеры есть?
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Dec 19 2011, 07:31
Сообщение #65


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



Кстати незнаете где взять схему платы МК19, МК20 которые делает НПП ВЕКТОР на базе C28xx?
Go to the top of the page
 
+Quote Post
Andron77
сообщение Dec 29 2011, 10:19
Сообщение #66


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762



Подскажите, как и чем через XDS100V2 прочитать прошивку из F2808 , с учетом того, что она не зашифрована. В CCS4 такой функции не нашел.
Go to the top of the page
 
+Quote Post
SAURIS GmbH
сообщение Dec 30 2011, 08:51
Сообщение #67


Знающий
****

Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291



Цитата(Andron77 @ Dec 29 2011, 14:19) *
В CCS4 такой функции не нашел.

Ищите лучше, где-то там есть запись куска памяти (любой, ОЗУ, флеши .. ) в файл.


--------------------
Sauris GmbH technical support (web site: http://www.sauris.de)
XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Dec 30 2011, 15:03
Сообщение #68


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



Насколько стабилен встроенный тактовый генератор, от температуры также плывёт?
Go to the top of the page
 
+Quote Post
CDD
сообщение Jan 5 2012, 10:32
Сообщение #69





Группа: Новичок
Сообщений: 2
Регистрация: 5-01-12
Пользователь №: 69 189



Добрый день. Всех с Новым 2012 годом.

Проблема: вышел из строя DSP TMS320F241FNA, (100% пробит I/O PA3).

Примечание: на плате всего 3 таких DSP (плата от промышленного устройства, кот. необх. запустить),
каждый DSP снабжен разъемом JTAG 2х7, (в каждом разъеме стоит перемычка TRST-GND).
С DSP ранее сталкиваться не приходилось, только PLC и AVR
(я электронщик с большим стажем, занимаюсь ремонтом промышленного
оборудования, и многое мне знакомо).

Вопрос: хочу прикупить данный DSP (после праздников), а так же TMS320-JTAG (для прошивки).
Скачал с сайта Ti CCS_V4.0 с ограничением по размеру кода, а так же SDFlash_v165 с патчем sdf241
(юзать буду что-то одно: мне нужно только слить и перезалить в новый проц прошивку).
Кто может расписать по шагам неоходимые действия (в конце концов разберусь и сам,
но хочется без лишнего гемора)?

Дополнение и возможные траблы:
1. Проц реально греется (горячее, чем два других), возможно с него не получится слить.
2. Большинство I/O всех процов соединены паралельно (возможно и прошивки у них одни),
проверю (есть ли функция "compare").
3. Если прошивка с защитой, то есть ли, в этом случае, возможность клонирования?

Заренее, спасибо.
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Jan 5 2012, 14:58
Сообщение #70


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



особо не задавался этим, но на TMS320F2407А не получилось ничего слить нормально даже без защиты блоков памяти.
Go to the top of the page
 
+Quote Post
Andron77
сообщение Jan 10 2012, 08:02
Сообщение #71


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762



На вход порта TMS320F2808 случайно попало 5в, вместо 3.3в, в результате контроллер греется так, что срабатывает защита у стабилизатора двойного питания, естественно проц не откликается, только замена.
Go to the top of the page
 
+Quote Post
Eger
сообщение Jan 19 2012, 11:43
Сообщение #72


Частый гость
**

Группа: Участник
Сообщений: 127
Регистрация: 16-05-07
Пользователь №: 27 774



Цитата(CDD @ Jan 5 2012, 14:32) *
Добрый день. Всех с Новым 2012 годом.

Проблема: вышел из строя DSP TMS320F241FNA, (100% пробит I/O PA3).

Примечание: на плате всего 3 таких DSP (плата от промышленного устройства, кот. необх. запустить),
каждый DSP снабжен разъемом JTAG 2х7, (в каждом разъеме стоит перемычка TRST-GND).
С DSP ранее сталкиваться не приходилось, только PLC и AVR
(я электронщик с большим стажем, занимаюсь ремонтом промышленного
оборудования, и многое мне знакомо).

Вопрос: хочу прикупить данный DSP (после праздников), а так же TMS320-JTAG (для прошивки).
Скачал с сайта Ti CCS_V4.0 с ограничением по размеру кода, а так же SDFlash_v165 с патчем sdf241
(юзать буду что-то одно: мне нужно только слить и перезалить в новый проц прошивку).
Кто может расписать по шагам неоходимые действия (в конце концов разберусь и сам,
но хочется без лишнего гемора)?

Дополнение и возможные траблы:
1. Проц реально греется (горячее, чем два других), возможно с него не получится слить.
2. Большинство I/O всех процов соединены паралельно (возможно и прошивки у них одни),
проверю (есть ли функция "compare").
3. Если прошивка с защитой, то есть ли, в этом случае, возможность клонирования?

Заренее, спасибо.

лучше было взять xds100usb в терраэлектронике, - по цене примерно то же но проблем с ним нет.
Можно ещё посмотреть в биосе конфигурацию порта LPT - EPP там итд.


--------------------
с polisoftlab.info
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Feb 20 2012, 07:06
Сообщение #73


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



Скажите модуль ePWM в 28027 и 28335 одинаковый, при беглом обзоре такой уж разницы и не обнаружил?
Go to the top of the page
 
+Quote Post
Chip4ik
сообщение Feb 22 2012, 04:55
Сообщение #74





Группа: Новичок
Сообщений: 1
Регистрация: 22-02-12
Пользователь №: 70 405



Здравствуйте, я работаю на TMS320C24XX занимаюсь системами управления электродвигателями переменного тока, но они снятые с производства. Какой проц из новых моделей можноприменить в моём случае. Интересует быстродействующий шим и ацп, входы минимум под 2 датчика скорости. Пока склоняюсь к Piccolo или 28x Delfino™ Floating-point Series

Сообщение отредактировал Chip4ik - Feb 22 2012, 04:58
Go to the top of the page
 
+Quote Post
ELEKTROS
сообщение Feb 22 2012, 05:43
Сообщение #75


Местный
***

Группа: Участник
Сообщений: 294
Регистрация: 29-06-11
Пользователь №: 65 952



Piccolo с двумя захватами посмотрите, или если асинхронник то QEP модуль чтобы был, это если вопрос цены важен производительность у них до 80MIPS (везде где видель её равняют с тактовой частотой у этих DSC). Ну а если цена особо не важна (рублей 400-800 разницы) применяёте Delfino, у него 12 ШИМ выходов(с различными решимами работы), 6 захватов, два QEP (ни разу не использовал, так как занимаюсь ВИРД, а не ассинхронниками), а вообще изучите Delfino, на Piccolo без труда перейти можно, а вот наоборот чуть подучить еще прийдётся.,
На ti.com зайдите посмотрите там достаточно подробная табличка с характеристиками что у каждого DSC есть.
Можете посмотреть в сторону STM32F еще, если вопрос цены всётаки важен, там модуль аппаратного управления ассинхронником есть.

Сообщение отредактировал ELEKTROS - Feb 22 2012, 05:45
Go to the top of the page
 
+Quote Post
bullit
сообщение Mar 26 2012, 11:50
Сообщение #76


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



TMS320F28335
А что делать с выводами (Входы, апорники...) АЦП, при этом сам ацп не задействован? И нужно ли туда подавать питание?
Может всё на землю посадить?
Клок АЦП естественно отключен! В доках ничего не нашел!

1000 извенений! Нашел страница 82 описаловки на кристал. Только не понятно зачем туда питание заводить. Возможно чтоб небыло утечек...
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 20 2012, 09:20
Сообщение #77


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Объясните, пожалуйста.

Принес я на работу свою отладочную плату c TMS320C6455. Был с собой установочный диск с CCS и дровами. Начал установку CCS, как вывалилась ошибка (первый вложенный рисунок). ошибка говорит, что CCS уже был установлен (Предыстория: на работе пользую отладочную платку eZdsp TMS320F28335, когда учился ее крутить, тогда и установил CCS для нее). Решил не переустанавливать, как предлагалось в том диалоговом окне, т.к. уже установленный CCS более новой версии...
Оставалось установить дрова для платы. После их установки появились ярлычки "6455 DSK CCStudio v3.3" и "6455 EVM CCStudio v3.3". Захожу по первому ярлыку, а он меня грузит еще проблемой (второй рисунок во вложении).
Там посылают меня на ... переуказание используемого драйвера. Захожу в "Setup CCStudio v3.3", который раньше использовался для конфигурирования eZdsp TMS320F28335, там уже вижу такую картину (третий рисунок во вложении)

вопрос: вроде ж само все стало автоматически (как я понял после установки драйверов), так почему не запускается CCS? и как побороть?
естественно у меня не один CCS с полными правами и полной лицензией, а два CCS (бесплатных, но как-то обрезанных), идущих в комплекте с двумя разными DSK. Они не могу существовать одновременно на одном компе ???

Делаю все, как, например, в пособии Connecting Code Composer Studio to a TMS320C2000 Device со стр.3 пункты 1-6.

Сообщение отредактировал beaRTS - Jul 20 2012, 09:50
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
SAURIS GmbH
сообщение Jul 20 2012, 15:38
Сообщение #78


Знающий
****

Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291



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


--------------------
Sauris GmbH technical support (web site: http://www.sauris.de)
XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 20 2012, 17:31
Сообщение #79


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Цитата(SAURIS GmbH @ Jul 20 2012, 18:38) *
Я так думаю, что был указан одинаковый путь для установки как и для той, так и для этой версии.

дык, я устанавливал только драйверы (после установки драйверов для платы C6000 появилсиь дополнительные ярлыки "6455 DSK CCStudio v3.3" и т.д.) .. так что CCS для С6000 я не устанавливал.

или Вы как раз-таки говорите про драйверы ?

Сообщение отредактировал beaRTS - Jul 20 2012, 17:31


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
SAURIS GmbH
сообщение Jul 20 2012, 17:38
Сообщение #80


Знающий
****

Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291



упс. сорри.

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

Сообщение отредактировал SAURIS GmbH - Jul 20 2012, 17:42


--------------------
Sauris GmbH technical support (web site: http://www.sauris.de)
XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 20 2012, 17:42
Сообщение #81


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Цитата(SAURIS GmbH @ Jul 20 2012, 20:38) *
упс. сорри.

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

огромное спасибо!!! а то сегодня весь день убил на поиски решения.

более приемлемый для меня вариант - установить второй композер), т.к. полный - это накладно по денюжке (в плане лицензии)


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 21 2012, 05:49
Сообщение #82


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Цитата(beaRTS @ Jul 20 2012, 20:42) *
более приемлемый для меня вариант - установить второй композер),

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

решил один удалить, другой поставить

Как я полагаю, это все из-за того, что в комплекте с отладочными платами хоть и идет бесплатный композер, но он так хитро вы..... думанно обрезан, что не позволяет модифицировать настройки композера, задаваемые при в ходе в программу по ярлыку "Setup CCStudio v3.3", т.е. нельзя установить дрова под другую плату (проц), не относящиеся к данной версии композера.. =( вот такая печалька, друзья.

Сообщение отредактировал beaRTS - Jul 21 2012, 05:45


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
SAURIS GmbH
сообщение Jul 21 2012, 06:38
Сообщение #83


Знающий
****

Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291



Ну во первых изменить папку сетап 3.3 композера всегда дает, значит пропустили где, или запускали сетап не композера, а какой-то другой сетап (пакета программ платы наверное), который из-под себя его запускает. Поищите на диске, где именно находится сетап самого композера. У меня их для тестов понаставлено штук так целая куча.
А во вторых, все же, что не дает поставить полный? Он не требует никакого "лечения", никаких регистраций, в отличие от 4 и 5, ставь и пользуй.


--------------------
Sauris GmbH technical support (web site: http://www.sauris.de)
XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 21 2012, 06:54
Сообщение #84


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Цитата(SAURIS GmbH @ Jul 21 2012, 09:38) *
А во вторых, все же, что не дает поставить полный? Он не требует никакого "лечения", никаких регистраций, в отличие от 4 и 5, ставь и пользуй.

я значит криво понял.. Ставлю же на рабочий комп: а мы используем только лицензионное ПО. И как понял, эти композеры, что в комплекте с платами идут, можно ставить без зазрения совести (без всяких виртуалок). А думал, что ставить полный CCS v3.3 - табу... Как то так.
На полный разве нет лицензии? т.е. я могу с торррента скачать и установить спокойно, и потом ни кто по голове не настучит, типа IT-службы. ?????


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
SAURIS GmbH
сообщение Jul 21 2012, 07:06
Сообщение #85


Знающий
****

Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291



На полный лицензия на самом деле есть (на бумаге), он покупается. Но в нем нет никакой защиты от запуска, никаких кодов, файлов лицензий и т.п. А настучат или нет это не ко мне.


--------------------
Sauris GmbH technical support (web site: http://www.sauris.de)
XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 21 2012, 07:10
Сообщение #86


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Цитата(SAURIS GmbH @ Jul 21 2012, 10:06) *
На полный лицензия на самом деле есть (на бумаге), он покупается.

не хочу никого подставлять на работе.. сейчас еще головой об стену побьюсь, помучаюсь...
тема еще не закрыта, так что не забывайте, пожалуйста =) .



получилось запустить "6455 DSK CCStudio v3.3" только после второй переустановки.. вроде все нормально. буду dsp/bios изучать. спасибо за помощь

Сообщение отредактировал beaRTS - Jul 21 2012, 07:48


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 23 2012, 09:13
Сообщение #87


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Цитата(beaRTS @ Jul 20 2012, 12:20) *
Объясните, пожалуйста.

вопрос: вроде ж само все стало автоматически (как я понял после установки драйверов), так почему не запускается CCS? и как побороть?
естественно у меня не один CCS с полными правами и полной лицензией, а два CCS (бесплатных, но как-то обрезанных), идущих в комплекте с двумя разными DSK. Они не могу существовать одновременно на одном компе ???

Звонил добрый человек из СкантиРУС. мило побеседовали. Он дал однозначный ответ, что со всеми отладочными платами идет обрезанный, кастрированный композер и, если имеешь несколько отладочных плат, то нет возможности установить одновременно на комп два "кастрата" =) как-то так). так что смело удаляйте прошлый композер и ставьте нужный, а потом понадобилась другая плата, удаляйте установленный и ставьте композер для другой платы.

Сообщение отредактировал beaRTS - Jul 23 2012, 09:17


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
SAURIS GmbH
сообщение Jul 23 2012, 09:27
Сообщение #88


Знающий
****

Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291



странно это, я точно как-то поставил два композера - для 6711 DSK и для 6416 DSK на разные пути. Хотя не помню, как именно.


--------------------
Sauris GmbH technical support (web site: http://www.sauris.de)
XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 24 2012, 09:58
Сообщение #89


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Цитата(SAURIS GmbH @ Jul 23 2012, 13:27) *
странно это, я точно как-то поставил два композера - для 6711 DSK и для 6416 DSK на разные пути. Хотя не помню, как именно.

Он при запуске установщика сразу делает проверку на наличие уже установленного композера (после двойного клика по сетапу), и не позволяет выбирать, соответственно, папку. Если что-то уже было - то установки вообще не будет.

опять огорчают танцы с бубном вокруг композера..
Нажимаю кнопочку File->New->DSP/Bios configuration а он мне выводит окно с названием ScriptPane, которое ругается так : "Unable to create BIOS Config Server" .. нажимаешь единственную кнопку ОК и вылазит следующее диалоговое New DSP/Bios Configuration (первое вложение) - только там пусто в окошках все (наверно, так не должно быть). Как полагаю, в папке с Биосом надо покопаться найти какой-то файл (не забываем, что я чайник=) ) и исправить ситуацию, но все тщетно. Лезу сюда: C:\CCStudio_v3.3\bios_5_31_02\packages\ti\platforms\dsk6455\ нет ничего, да и в C:\CCStudio_v3.3\bios_5_31_02\packages вообще нет ничего!!!
Полез тогда в Hepl-> about -> Component Manager. ну а там все пусто (такого ж не должно быть?? какая-нибудь да тулза должна быть установлена..) (картинка во втором вложении)
А должно быть вот так (третье вложение), как в этом документе
Как? из-за чего все это? неужто такой сильно обрезанный диск попался...

Сообщение отредактировал beaRTS - Jul 24 2012, 10:10
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
SAURIS GmbH
сообщение Jul 24 2012, 10:10
Сообщение #90


Знающий
****

Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291



ну DSP/BIOS то можно отдельно скачать и установить.


--------------------
Sauris GmbH technical support (web site: http://www.sauris.de)
XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 24 2012, 10:57
Сообщение #91


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Цитата(SAURIS GmbH @ Jul 24 2012, 14:10) *
ну DSP/BIOS то можно отдельно скачать и установить.

этим и занимаюсь... просто возмущен от обилия косяков, на которые тратится психо-кинетическая (или как ее там) энергия.
Как все видят, я кручу верчу Техас (а они меня), а так как от самовара не далеко ушел))) , то будет много вопросов.. Надеюсь кому-то из молодежи мои потуги и ваша помощь помогут

Цитата(beaRTS @ Jul 24 2012, 13:58) *
Полез тогда в Hepl-> about -> Component Manager. ну а там все пусто (такого ж не должно быть?? какая-нибудь да тулза должна быть установлена..) (картинка во втором вложении)

Был с моей стороны косячок: надо было установить галочку в Component MAnager-> View -> All CCS Installations и появляется все что и ожидалось
Как бы то ни было переустановил DSP/BIOS и это тоже дало результат: по адресу C:\CCStudio_v3.3\bios_5_41_10_36\packages\ti\platforms\dsk6455\ в папке под мою плату лежит уже Platform.tci !
Еще необходимо перезапустить композер, войти в компонент манагер раскрыть список Target Content'а(DSP/BIOS) и расскрыть подсписок с названием семейства вашего камня и установить галочку (см рисунок)

Цитата(beaRTS @ Jul 24 2012, 13:58) *
Нажимаю кнопочку File->New->DSP/Bios configuration

и теперь получаю что-то более правдивое (смотри второе вложение)

Сообщение отредактировал beaRTS - Jul 24 2012, 10:58
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 25 2012, 05:26
Сообщение #92


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Есть такой сайт C6000 Embedded Design Workshop Using BIOS . Наткнулся там на понятную презентацию, которая по первой сильно поможет начинающим в понимании DSP/BIOS PPT Slides Rev 6.50 (.zip). Поэтому качайте, смотрите. Куча презентаций. в Основном про Sys/BIOS (но походу это нынче мейнстрим). но есть и про DSP/BIOS: название BIOS_13a_Intro_to_DSPBIOS. смотрим. Нашел ответы на некоторые мелкие свои вопросы.

Так же только что хотел задать вопрос: чем отличаются Sys/BIOS и DSP/BIOS, почему две версии, для чего? что изучать, что ставить и т.д... ну и тут же нашел в скачанных презентациях. Ответ находится в BIOS_03_BIOS_Basics (смотри вложение)

Сообщение отредактировал beaRTS - Jul 25 2012, 06:39
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 26 2012, 03:57
Сообщение #93


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



запустил не без проблем первый примерчик (до этого хотел сам разобраться, но все-таки лучше с примеров начинать - так быстрее)на плате TMS320C6455 DSK.
Проблема была следующей: начинаю грузить .out файл File->Load Program из папки дебаг, так CCS выдает ошибку " Does not match the target endianness, not loaded. Check build options, or use the setup program" . А на плате у меня (думаю, что и у большинства плат с навороченными камнями) стоит dip-switch (smd-переключатель), на одну ногу которого заведена опциональная функция установки формата big endian и little endian. Поэтому переведя выключатель в противоположное состояние, повторил попытку заливки программы и все получилось.

либо, как вариант, в Build Options -> Compiler -> Advanced в графе Endianness поменять формат и попробовать снова загрузить - может, получится. не пробовал.

Сообщение отредактировал beaRTS - Jul 26 2012, 04:34


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 26 2012, 07:52
Сообщение #94


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Смотрю 2 конфигурационных файла DSP/BIOS из разных примеров. Вопрос: что такое KNL_swi, PRD_swi? Просто вот понятно, например, что такое PRD_blinkLED0 - это поток, относящийся к периодически выполняемым, и функция его выполнения называется _blinkLED0() (если С-функция,но в С-файле будет просто blinkLED0() ) (The leading underscore is required because blinkLED0() is a C function. Functions written in assembly do not need the underscore. ). Понятно, что мы его создали, он нам нужен, т.к. будем в нем мигать светодиодом.. А для чего существуют KNL_swi (полагаю kernel-swi), PRD_swi (periodic-swi) непонятно?!
Картинка во вложении.
Приведу код
Код
/*H***************************************************************************
*
* $Archive:: /boards/dsk6455_v2/examples/ledprd/ledprd.c                      $
* $Revision:: 2                                                               $
* $Date:: 6/27/06 9:29a                                                       $
* $Author:: Shilpab                                                           $
*
*
*H***************************************************************************/

/*
*  ======== ledprd.c ========
*
*  This example blinks LED #0 at a rate of about 2.5 times per second using
*  the LED module of the the DSK6455A Board Support Library.  The example
*  also reads the state of DIP switch #3 and lights LED #3 if the switch
*  is depressed or turns it off if the switch is not depressed.
*
*  When the program is run, DSP/BIOS initializes itself and calls the main( )
*  function.  Main( ) initializes the BSL then exits and returns control back
*  to DSP/BIOS.  The real work is done inside blinkLED0( ) which is a DSP/BIOS
*  periodic thread that is run every 200ms.
*
*  A second thread named blinkLED1( ) is also included that blinks LED #1
*  asynchronously with blinkLED0( ) to demonstrate DSP/BIOS multitasking.
*  It is not enabled by default but can be added by creating a new periodic
*  thread entry for it in the DSP/BIOS scheduler.
*
*  Please see the DSK6455 help file in the docs\hlp directory for more detailed
*  information.
*/

/*
*  DSP/BIOS is configured using the DSP/BIOS configuration tool.  Settings
*  for this example are stored in a configuration file called ledprd.cdb.  At
*  compile time, Code Composer will auto-generate DSP/BIOS related files
*  based on these settings.  A header file called ledprdcfg.h contains the
*  results of the autogeneration and must be included for proper operation.
*  The name of the file is taken from ledprd.cdb and adding cfg.h.
*/
#include "ledprdcfg.h"

#include "dsk6455.h"
#include "dsk6455_led.h"
#include "dsk6455_dip.h"


/*
*  blinkLED0( ) - Blink LED #0 and set LED #3 based on the state of DIP switch
*                #3.  If the switch is down, the LED is turned on.  If the
*                switch is up, the LED is turned off.
*
*                blinkLED0 is a periodic thread that is called every 200ms
*                from the DSP/BIOS scheduler.  It is configured in the
*                DSP/BIOS configuration file ( ledprd.cdb ) under Scheduling
*                --> PRD --> PRD_blinkLED0.  Right click PRD_blinkLED0 and
*                select Properties to view its settings.
*/

void blinkLED0( )
{
    /* Toggle LED #0 */
    DSK6455_LED_toggle( 0 );

    /* Check DIP switch #3 and light LED #3 accordingly, 0 = switch pressed */
    if ( DSK6455_DIP_get( 3 ) == 0 )
        /* Switch pressed, turn LED #3 on */
        DSK6455_LED_on( 3 );
    else
        /* Switch pressed, turn LED #3 off */
        DSK6455_LED_off( 3 );
}


/*
*  main( ) - Initialize BSL then drop into DSP/BIOS idle loop
*/

void main( )
{
    /* Initialize the board support library, must be first BSL call */
    DSK6455_init( );

    /* Initialize the LED and DIP switch modules of the BSL */
    DSK6455_LED_init( );
    DSK6455_DIP_init( );
}


Сообщение отредактировал beaRTS - Jul 26 2012, 08:19
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 26 2012, 10:32
Сообщение #95


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Цитата(beaRTS @ Jul 26 2012, 10:52) *
. Вопрос: что такое KNL_swi, PRD_swi?

Попробую сам же и поразмышлять...
Начинает складываться общая картинка об DSP/BIOS. А складывается она на фоне параллельного изучения freeRTOS. во freeRTOS мы все файлы ядра добавляем ручками в папку нашего проекта, ручками же правим какие задачи будут включаться в сконфигурированное ядро (например, по-моему, в файле FreeRTOSconf.h, где в дефайнах выставляем 0ки или 1чки)
С DSP/BIOS дела обстоят, видимо, по-иному. Поправьте меня если неправ!. В DSP/BIOS среда разработки за нас сделает всю эту черную работу, а нам же остается в конфигурационной тулзе, да еще и с графическим интерфейсом (альтернатива - Tconf скрипты), настроить нужные задачи. Вот и все. и К тому же среда разработки сама пропишет нужные пути к файлам и библиотекам ядра, чтоб была возможность его скомпилировать, т.е. нет необходимости лазить по папкам и собирать в папку своего проекта все разрозненные файлы ядра..
Это было лирическое отступление.
Теперь к обозначенному вопросу. (Рассматриваем стандартный пример под названием "ledprd"). НА картинке выше, где было изображение открытой конфигурационной тулзы в Software Interrupt Manager'е был модуль например KNL_swi, за который отвечает некая функция "KNL_run();"... Итак, нашел в файле ledprdcfg.h62 (или YourNamecfg.h62)
Код
.global    null
    .global    _IDL_loop
    .global    IDL_F_loop
    .global    _KNL_run            //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    .global    IDL_F_stub
    .global    IDL_F_calibrate
    .global    IDL_F_busy

что объявление _KNL_run , видимо глобальное (поправьте если что), хотя ".global" - вроде бы, секция памяти какая-то на ассемблере.... тогда полез искать это имя уже за пределы папки проекта (до этого пытался искать Тотал командером в папке проекта). ЗА пределами (в папке с биосом) нашел файл knl.h:
Код
#ifdef _BIOSROM_

extern Void (*KNL_enterPtr)(Void);
extern Void (*KNL_exitPtr)(Void);
extern Void (*KNL_ipostPtr)(KNL_JobHandle job);
extern Void (*KNL_postPtr)(KNL_JobHandle job);
extern Void (*KNL_readyPtr)(KNL_Handle task);
extern Void (*KNL_runPtr)(Arg mode_arg);            //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
extern Void (*KNL_switchPtr)(Ptr *oldsp, Ptr *newsp);

#define KNL_enterJ()                    (KNL_enterPtr)()
#define KNL_exitJ()                     (KNL_exitPtr)()
#define KNL_ipostJ(job)                 (KNL_ipostPtr)(job)
#define KNL_postJ(job)                  (KNL_postPtr)(job)
#define KNL_readyJ(task)                (KNL_readyPtr)(task)
#define KNL_runJ(mode)                  (KNL_runPtr)(mode)
#define KNL_switchJ(oldsp, newsp)       (KNL_switchPtr)(oldsp, newsp)

#else

#define KNL_enterJ()                    KNL_enter()
#define KNL_exitJ()                     KNL_exit()
#define KNL_ipostJ(job)                 KNL_ipost(job)
#define KNL_postJ(job)                  KNL_post(job)
#define KNL_readyJ(task)                KNL_ready(task)
#define KNL_runJ(mode)                  KNL_run(mode)            //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#define KNL_switchJ(oldsp, newsp)       KNL_switch(oldsp, newsp)

#endif

#ifdef __cplusplus
}
#endif /* extern "C" */

#endif /*KNL_*/

осталось осмыслить для полного понимания... Вроде, теперь мы знаем, что KNL_run(mode) соответствует внешне определенной функции, возвращающей указатель, а именно: extern Void (*KNL_runPtr)(Arg mode_arg);

Сообщение отредактировал beaRTS - Jul 26 2012, 10:47


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 27 2012, 04:24
Сообщение #96


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Цитата(beaRTS @ Jul 26 2012, 10:52) *
Смотрю 2 конфигурационных файла DSP/BIOS из разных примеров. Вопрос: что такое KNL_swi, PRD_swi?

Нашел ответ. KNL_swi, PRD_swi - Это стандартные встроенные объекты (вроде, так называются) ядра. А _KNL_run и PRD_F_swi - стандартные функции (где-то =) и не понятно где определенные, теперь хоть ясно чем они занимаются) В spru303b.pdf "TMS320C6000 DSP/BIOS User’s Guide" в разделе 1.3.3 " Operation Names" об них и говорится.

Кроме того, в моем примере (ledprd) светодиодом мигают в потоке PRD_blinkLED0 (см. periodic function manager в картинке). Ссылаясь на spru303b.pdf раздел 1.3.3: "PRD_F_swi. Run by the highest priority SWI object, PRD_swi, to run the PRD functions.", делаем вывод: чтобы запустить нами созданные периодические функции (в periodic function manager'е), нам необходим вспомогательный встроенный объект (создаваемый, скорее всего, нами) под названием PRD_swi (и только таким названием!), который создается в "SWI - Software Interrupt Manager'е" (с приоритетом выше наибольшего: в моем примере у объекта PRD_swi на 1 больше приоритет,чем у KNL_swi) и который использует стандартную функцию ядра PRD_F_swi. А эта функция уже, имея наибольший приоритет, уже используется для запуска PRD -функций из PRD - Periodic Function Manager. Вот! Сие понимание у меня сложилось. Так ли?

И теперь стало понятно почему в другом примере (его конфигурационный файл led.tcf в левой части открытого композера на картинке, которая все мусолится здесь) в конфигурационном файле "led.tcf" отсутствует объект PRD_swi - т.к. в этом примере мигают периодически не при помощи второго PRD-потока, а в main'е:
Код
void main( )
{
    /* Initialize the board support library, must be first BSL call */
    DSK6455_init( );

    /* Initialize the LED and DIP switch modules of the BSL */
    DSK6455_LED_init( );
    DSK6455_DIP_init( );

    while( 1 )
    {
        /* Toggle LED #0 */
        DSK6455_LED_toggle( 0 );
    
        /* Check DIP switch #3 and light LED #3 accordingly, 0 = switch pressed */
        if ( DSK6455_DIP_get( 3 ) == 0 )
            /* Switch pressed, turn LED #3 on */
           DSK6455_LED_on( 3 );
        else
            /* Switch not pressed, turn LED #3 off */
            DSK6455_LED_off( 3 );
    
        /* Spin in a software delay loop for about 200ms */
        DSK6455_waitusec( 200000 );
    }
}


Сообщение отредактировал beaRTS - Jul 27 2012, 04:56


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Jul 27 2012, 05:28
Сообщение #97


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Напоследок, еще выдержка из юзер гайд, чтоб стало до конца все понятно:
"_KNL_run. Run by the lowest priority SWI object, KNL_swi, to run the
task scheduler if it is enabled. This is a C function called KNL_run. An
underscore is used as a prefix because the function is called from
assembly code.
"
так что объект KNL_swi в SWI - Software Interrupt Manager, как я понимаю, должен быть всегда!.

Сообщение отредактировал beaRTS - Jul 27 2012, 05:28


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
Andron77
сообщение Aug 1 2012, 09:19
Сообщение #98


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 9-12-11
Из: Новосибирск
Пользователь №: 68 762



Подскажите, как заставить работать эмулятор XDS100v2 в CCS 3.3 SR12, последний доступный апдейт установлен. Читал, что официально XDS100v2 не поддерживается в CCS 3.3, только XDS100v1, но вроде бы в последнем релизе SR12 неофициально внедрена поддержка XDS100v2. Поиском нашел, что нужно переписать какой-то xml-файл и jioserdesusb.dll из CCS 4 в CCS3.3.
Сам работаю с CCS4 без DSP/BIOS с F2808, а прошлые старые проекты были написаны до меня в CCS3.3 с DSP\BIOS и импортируются в CCS 4 с конфликтами версий.
Go to the top of the page
 
+Quote Post
SM
сообщение Aug 1 2012, 09:40
Сообщение #99


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



где-то лежит на некоем фтп:

upload/DSP/TI - Code Composer Studio/CCS3.3-xds100v2/ccs3xds100v2.rar

(могут перенести в pub/туда_же)
Go to the top of the page
 
+Quote Post
SAURIS GmbH
сообщение Aug 1 2012, 09:47
Сообщение #100


Знающий
****

Группа: Участник
Сообщений: 531
Регистрация: 16-12-09
Пользователь №: 54 291



Если используется xds100v2 в виде SAU100-USB - то можем официально поддержать (где-то в течение недели выпустить драйвер), если в этом есть интерес.


--------------------
Sauris GmbH technical support (web site: http://www.sauris.de)
XDS100, XDS510 JTAG Emulators for TI DSP & ARM, Flash/EEPROM programming JTAG tools, System-on-Module products.
Go to the top of the page
 
+Quote Post

11 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 22:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.02982 секунд с 7
ELECTRONIX ©2004-2016