MicroCHIP.RU
Главная Документация Отладочные средства Справочник Поиск Ссылки
 Новости   Конференция   Контакты 
 

О DSP в dsPICах

 Нoвaя темa  |  Наверх  |  Перейти к теме  |  Поиск  |  Правила  |  Вход 

ВНИМАНИЕ!
Вы просматриваете архив форума.

Этот форум работает только в режиме просмотра и поиска.

Действующий форум переведен на новый движок и
находится по адресу www.microchip.su

 О DSP в dsPICах
Автор: Valera ()
Дата:   05/02/2007 20:55

Помогите запустить DSP модуль в dsPICе (dsPIC30F3013).
Какие регистры для этого крутить, вертеть?
При выполнении какой не будь DSP инструкции, контроллер всегда сбрасывается.
Хотел почитать мануал, но он весь на английском языке. Может, есть на русском .
Что делать подскажите?


 
 Re: О DSP в dsPICах
Автор: Greg ()
Дата:   05/02/2007 20:57

Valera писал(а):

> Помогите запустить DSP модуль в dsPICе (dsPIC30F3013).
> Какие регистры для этого крутить, вертеть?
> Что делать подскажите?

английский учить.
я серьезно.


 
 Re: О DSP в dsPICах
Автор: Valera ()
Дата:   05/02/2007 21:06

С удовольствием, только времени на английский совсем нет.


 
 Re: О DSP в dsPICах
Автор: Greg ()
Дата:   05/02/2007 21:19

Valera писал(а):

> С удовольствием, только времени на английский совсем нет.

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


 
 Re: О DSP в dsPICах
Автор: Torik ()
Дата:   05/02/2007 21:55

Хы, внатуре прислушайся - меня самого не далее как года 1.5 назад общщение на данном форуме
заставило (см. свои ответы :)) читать аглицкие даташЫты...
Оказалось все не так уж и сложно...


 
 Re: О DSP в dsPICах
Автор: Valera ()
Дата:   05/02/2007 22:01

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


 
 Тут не только английский нужен.
Автор: pic18 ()
Дата:   06/02/2007 00:32

Тут с линкером надо помучиться. Например для PIC30f3012 надо прицепить линкер файл
p30f3012.gld + хидер файл p30f3012.inc

Программу начни так:

.global __reset
.include "p30f3012.inc"
;..............................................................................
;Configuration bits:
;..............................................................................

config __FOSC, CSW_FSCM_OFF & FRC_PLL4 ;Turn off clock switching and
;fail-safe clock monitoring and
;use the Internal Clock as the
;system clock, PLL4

config __FWDT, WDT_OFF ;Turn off Watchdog Timer

config __FBORPOR, PBOR_ON & BORV_27 & PWRT_16 & MCLR_EN
;Set Brown-out Reset voltage and
;and set Power-up Timer to 16msecs

config __FGS, CODE_PROT_OFF ;Set Code Protection Off for the
;General Segment

;..............................................................................

;******************************************************************************
; Iinterrupt Vectors:
.global __T2Interrupt ;Объявляешь прерывания какие будеш пользовать
.global __ADCInterrupt ; Названия прерываний стандартные
..................... ; их надо разыскать в линкер скрипте: p30f3012.gdl
;
;----
;Похоже у тебя нет вот этих обязательных строчек внизу, поэтому сбросы:
__reset:
MOV #__SP_init, W15 ;Initalize the Stack Pointer
MOV #__SPLIM_init, W0 ;Initialize the Stack Pointer Limit Register
MOV W0, SPLIM
NOP ;Add NOP to follow SPLIM initialization Valera



;Далее твой ассемблерный текст, например:

Inicialization:
;---Ports Inicialization:
bclr LATC, #13
bclr LATC, #14
bclr LATC, #15
bclr LATB, #3
bclr LATB, #6
...................
................и т.д.

Поищи на сайте PICа PDF файл: DS51317E
Который называется: MPLAB® ASM30, MPLAB® LINK30 AND UTILITIES USER’S
GUIDE
Там как бы всё написано, правда на иностранном. Но я и по русски плохо понимаю что
там что чем едят.
Программы первых двух приборчиков я смог запустить только после того как на всю эту
начальную рутину мне служба поддержки dsPICков нарисовала.
Теперь я храню эту рыбу и с неё начинаю программы.



Отправка отредактированного (06/02/2007 01:00)


 
 Re: Тут не только английский нужен.
Автор: Alex B. ()
Дата:   06/02/2007 09:52

>> Тут с линкером надо помучиться.

при чем тут DSP ядро и линкер???

>> Программы первых двух приборчиков я смог запустить только
>> после того как на всю эту начальную рутину мне служба
>> поддержки dsPICков нарисовала.

Дядька скажи что за приборчики, пожалуйста, чтоб я не купил ненароком...

P.S. Тут нужен ТОЛЬКО английский



Отправка отредактированного (06/02/2007 09:53)


 
 Английский (+)
Автор: Ecole ()
Дата:   06/02/2007 10:19

Тебе знающие люди дело советуют - учи английский.
Между прочим, у Микрочипа в их даташитах английский достаточно
прост для понимания.

Если нет времени, можно поступить так:
1) Берешь знакомый даташит (например даташит 16F877 достаточно
качественно переведен на русский - ищи на этом сайте);
2) Пытаешься перевести самостоятельно несколько страниц
английского текста;
3) Сверяешь твой перевод с переводом microchip.ru, запоминаешь
несоответствия;
4) Замоминаешь ВСЕ незнакомые слова, встретившиеся тебе при
переводе этих нескольких страниц.

Если этим заниматься каждый день, или хотя бы регулярно, через
несколько месяцев ты будешь читать микрочиповские даташиты
свободно. Гарантирую. Достаточно часа занятий в день.

------------------------------------------------------
http://www5.domaindlx.com/cprime/lesson/dir2.htm
http://www5.domaindlx.com/cprime/
обновление: новый раздел в Уроках С++


 
 вахуе
Автор: b0b ()
Дата:   06/02/2007 12:48

Valera писал(а):
> При выполнении какой не будь DSP инструкции, контроллер всегда сбрасывается.
> Хотел почитать мануал, но


пипец. постановка вопроса и ход действий. я в ахуе. это ж надо так. чего-то делать, а потом
ляпнуть "хотел почитать мануал, но". :-О


 
 Шутишь? Но я это Валере писал.
Автор: pic18 ()
Дата:   06/02/2007 18:37

Вот от него жду ответа, помогло или нет.
Если нет то, может написать мне по е-мылу, какие конфигурации проца ему нужны и какие прерывания
пользует, то попробую ему сделать рыбу.


 
 Re: вахуе
Автор: Sergey9905 ()
Дата:   07/02/2007 12:15

Привет!Возможно у Вас не выключен WatchDog Timer (проще так:MPLAB : menu Configure-
>Configuration Bits).Честно скажу,строчки
MOV #__SP_init, W15 ;Initalize the Stack Pointer
MOV #__SPLIM_init, W0 ;Initialize the Stack Pointer Limit Register
MOV W0, SPLIM
которые Вам рекомендовали иметь обязательно важны,конечно и из-за них может быть сброс,но у меня без них на начальном
этапе ничего плохого не было,т.к. я использовал мало памяти,в основном в Y,а Х-в режиме PSV,но даже когда залез немного
в Х-ОЗУ,компиллятор как-то сам разбирался с распределением стэка и,не смотря на то,что,судя по описанию,по умолчанию
стэк занимает 256 байт,а для выбранного проца это и есть вся Х-ОЗУ,видимо некоторые уменьшения компиллятор сделал
автоматически в этой границе.Но вот когда я начал распологать массивы,тут и пришлось залезть в доки и я их вытащил из
описания на асм.Перехлёст адресов можно увидеть через Watch.Возможно что-то в обработчике прерываний-посмотрите там
есть особенности при использовании в них циклов-почитайте описание на асм30 (сейчас идею продолжать не буду,т.к. не знаю
Вашей проблемы,но намёк Вы поняли,где может быть трабл)


 
 Re: О DSP в dsPICах
Автор: Type ()
Дата:   07/02/2007 12:55

Valera писал(а):

> С удовольствием, только времени на английский совсем нет.

Ну.. как говорится, и конфетку съесть, и на х... не сесть.
Тогда разве что это поможет:
http://www.lobzik.pri.ee/modules/wfsection/article.php?articleid=215
С ним можно плясать, если что-то не получается.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



 
 Re: О DSP в dsPICах
Автор: Valera ()
Дата:   20/02/2007 19:26

Извиняюсь, что так долго отсутствовал.
Вставил я это:

MOV #__SP_init, W15 ;Initalize the Stack Pointer
MOV #__SPLIM_init, W0 ;Initialize the Stack Pointer Limit Register
MOV W0, SPLIM

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


 
 Re: О DSP в dsPICах
Автор: pic18 ()
Дата:   20/02/2007 21:55

Выслал пример на мыло.


 
 Загляни в папку
Автор: AL ()
Дата:   21/02/2007 00:33

C:\...туда где ты ставиш МПЛАБ...\Microchip\MPLAB ASM30 Suite\Support\templates\assembly

и найдеш там device template files ("рыбу") для всех семейств dsPIC30F,
readme прочитай обязательно, и читать, читать, читать все коментарии в тех файлах.
Еще подскажу, смотри внимательно файл tmp6014.s.

Читай документацию (на англ.).


 
 Re: Тут не только английский нужен.
Автор: diman891 ()
Дата:   21/02/2007 16:54

Ты, что англичанин, что так к английскому прицепился?


 
 :)))
Автор: diman891 ()
Дата:   21/02/2007 17:09

ю


 
 Re: О DSP в dsPICах
Автор: Valera ()
Дата:   21/02/2007 22:36

Спасибо за пример. Узнал много нового, но... не то.
Что надо сделать, чтоб после выполнения, к примеру, команды
ed W4*W4, A, [W8]+=2, [W10]+=2, W4
контроллер не сбрасывался.


 
 Re: О DSP в dsPICах
Автор: Alex B. ()
Дата:   21/02/2007 23:07

первое что нужно было сделать, это объявить все вектора исключений и посмотреть,
на какой вектор попадает PC. Скорее всего это Arithmetic Error Trap -
у вас просто недопустимые параметры.


 
 еще
Автор: b0b ()
Дата:   22/02/2007 11:36

ресет может быть от неинициализированных регистров, используемых как указатели...


 
 Йес, йес (-)
Автор: Alex B. ()
Дата:   22/02/2007 12:32

-


 
 Re: О DSP в dsPICах
Автор: Valera ()
Дата:   22/02/2007 21:32

Недопустимых параметров у меня нет. После выполнения DSP
команды (команда делает все-таки свое дело) PC
попадает на метку "_DefaultInterrupt" (смотрю через Program Memory) на
которой команда reset.
Во как!
Может, кто нить начиркает примерчик с использованием таких
команд. Потом стало бы все на свои места.


 
 ну если уж ты понял, что такое (+)
Автор: Alex B. ()
Дата:   22/02/2007 22:47

default interrupt, сделай пожалуйста как тебе посоветовали, объяви явно все векторы
исключений, и посмотри куда попопадает PC на самом деле (так как все векторы по умолчанию
указывают на default interrupt)