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

 
 
> MSP430 - снова вопросы от чайника, Вопросы от чайника про MSP и магнитный компас
Daria
сообщение Jul 23 2008, 19:17
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



smile.gif Здравствуйте. Кто читал предыдущую мою тему "MSP430 - вопросы от чайника", тот поймет - это снова я biggrin.gif Тему закрыли, слишком долго висела. А вопрсов все больше. smile.gif
Если кому-то вдруг окажется не влом разбираться, то
Вот кусок проги:
int flag;//глобальные переменные
int cindex;
испульзуемые функции(write_flash - пишет число во flash, read_flash - считывает)
void write_flash(float* value, float *addr)
{ while(FCTL1 & BUSY);
_BIC_SR(GIE);
FCTL1 = FWKEY + ERASE;
FCTL3 = FWKEY;
*addr = 0;

while(FCTL1 & BUSY);
FCTL1 = FWKEY + WRT; for (int i=0;i<=3;i++)
{ *addr = value[i];
addr++;
}

_BIS_SR(GIE);
while(FCTL1 & BUSY);
FCTL1 = FWKEY;
FCTL3 = FWKEY + LOCK;
}

void read_flash(float* addr, float* pfO)
{
for (int i=0;i<=3;i++)
{ pfO[i]=*addr;
addr++;
}
}
Чего хочу сделать - Если присылаю 0, то должны считаться два показания с выводов P6.3 и P6.4, присылается 0хАА - т.е. "считалось", записываются первые элементы двух массивоы данных.
Когда набирается по четыре элемента, индекс сбрасывается
Если присылаю 0xFF, то должна выполнится функция calibrovka_hmc, если она выполняется неверно, то присылается 0хСС, иначе из flash считывается и присылается вычисленная с помощью этой функции константа.
Внутри функции main
ADC12CTL0 = ADC12ON + REFON + SHT0_8; //настройка АЦП
ADC12CTL1 = CSTARTADD0 + CSTARTADD1 + ADC12SSEL_1+ CONSEQ_1;
ADC12MCTL3 = INCH_3;
ADC12MCTL4 = INCH_4 + EOS;

float temp[4];
flag=0;
cindex=0;
for(;;)
{
for(delay = 0; delay <20000; delay++);
if( flag==0 )
{send_int(0x0);
}
if( flag==1 )
{

if (calibrovka_hmc(CVx, CVy, temp)==0)//calibrovka_hmc - имеет параметрами два массива и вычисляет четыре константы(нужные для калибровки устройства)

{
send_int(0xCC);
flag=0;
}
else
{
float pfO[4];
read_flash((float*)0x1000,pfO);
r=(int)(pfO[0]+0.5);
send_int®;
flag=0;
}

flag=4;
}

if (flag==2)
{
ADC12CTL0 |=ADC12SC + ENC; CVx[cindex] = ADC12MEM3; CVy[cindex] = ADC12MEM4;
ADC12CTL0 &= ENC;
cindex++;
send_int(0xAA);
flag=0;
}

if (cindex>3)
cindex=0;
}
}
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx ( void)
{
if( RXBUF0==0xFF)
flag = 1;
if (RXBUF0==0x0)
flag = 2;
}
В ЧЕМ ПРОБЛЕМА:
Перед выполнением калибровки присылаю элементы массива, полученного при считывании показаний с выводов, - оказывается, что в массив записываются по два-три раза одно значение, хотя этого не может быть. Соответственно, из-за этого не работает и все остальное crying.gif
Может, неправильно настроен АЦП? Или в чем может быть дело?
И, если кому-то вдруг не влом разбираться - функции записи во flash и чтения flash - можно ли сделать как-то поумнее?
Go to the top of the page
 
+Quote Post
17 страниц V  « < 7 8 9 10 11 > »   
Start new topic
Ответов (120 - 134)
rezident
сообщение Nov 1 2008, 18:24
Сообщение #121


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Daria @ Nov 1 2008, 22:30) *
JTAG fuse я пережгу, но все равно останется возможность доступа к программе по BSL - по крайней мере стереть можно 05.gif Как полностью закрыть доступ к прошитой программе и по BSL? Разъем убирать уже поздно...
Могу вас еще больше разочаровать. В прошивке BSL версии 1.10, которая используется в кристаллах MSP430F14x, имеется (отраженный в errata как BSL3) баг с помощью которого можно считать прошивку целиком. Так что, полностью защитить ваше устройство от толкового эмбеддера, занимающегося reverse engineering, вы не сможете laughing.gif Для затруднения этой задачи нужно хотя бы применить кристалл с другой (более старшей) версией BSL, типа MSP430F16x. Вы ведь все равно хотели MSP430F1611 с 10кБ ОЗУ применить, вот вам и формальное обоснование для замены smile.gif А для защиты от случайного или преднамеренного стирания прошивки сделайте, например, механический разрыв дорожки, ведущей от разъема BSL к пину P1.1. Короче скальпелем дорожку почикайте wink.gif
Go to the top of the page
 
+Quote Post
Daria
сообщение Nov 1 2008, 18:34
Сообщение #122


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Цитата(rezident @ Nov 1 2008, 22:24) *
Могу вас еще больше разочаровать. В прошивке BSL версии 1.10, которая используется в кристаллах MSP430F14x, имеется (отраженный в errata как BSL3) баг с помощью которого можно считать прошивку целиком. Так что, полностью защитить ваше устройство от толкового эмбеддера, занимающегося reverse engineering, вы не сможете laughing.gif Для затруднения этой задачи нужно хотя бы применить кристалл с другой (более старшей) версией BSL, типа MSP430F16x. Вы ведь все равно хотели MSP430F1611 с 10кБ ОЗУ применить, вот вам и формальное обоснование для замены smile.gif А для защиты от случайного или преднамеренного стирания прошивки сделайте, например, механический разрыв дорожки, ведущей от разъема BSL к пину P1.1. Короче скальпелем дорожку почикайте wink.gif

Беда crying.gif Кристалл заменить я уже тоже не могу, это я справшивала для следуещего образца, а в этом, который как опытный пойдет - плата разведена, размеры и комплектуха везде прописаны, в документации мне надо ОБЯЗАТЕЛЬНО указать, как я защищаюсь от "посторонних". не писать же - после прошивки почикайте дорожку. biggrin.gif Беда, беда. Огорчение. Придется "умолчать" о разъеме для BSL и надеяься, что "не заметят"

Сообщение отредактировал Daria - Nov 1 2008, 18:38
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 1 2008, 19:32
Сообщение #123


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Daria @ Nov 1 2008, 23:34) *
в этом, который как опытный пойдет - плата разведена, размеры и комплектуха везде прописаны
А вы всего лишь одну цифирьку в спецификации исправьте wink.gif Вместо MSP430F149IPM укажите MSP430F169IPM. Они же пин-ту-пин совместимые, размер Flash и SRAM одинаковый, набор периферийных модулей 169-го больше и включает все те же модули, что имеются в 149-й. Так что вероятнее всего даже программу перекомпилировать под 169-й кристалл не обязательно. Зато в MSP430F169 версия BSL 1.61 для которой баг BSL3 уже пофиксен. Хотя вероятность затереть firmware через BSL конечно же остается.
Go to the top of the page
 
+Quote Post
Измеритель верёв...
сообщение Nov 1 2008, 19:47
Сообщение #124





Группа: Новичок
Сообщений: 7
Регистрация: 25-10-08
Пользователь №: 41 188



Цитата(Daria @ Nov 1 2008, 22:30) *
О! Спасибо, что откликнулись. По поводу параболы - решаете квадратное уравнение ax^2+bx+c? но оно вообще говоря может не иметь действительных решений, если D=sqrt(b^2-4ac)<0/ Какпоступаете?

Кричу: АЛЯРМА!!! Чо-то неправильно ввели!
Но по-моему не было у меня такого, ибо я введённые значения для индикации в контрольной точке банально проверяю на вхождение в диапазон. Значения АЦП беру сам. Т.е. зная значение АЦП (грубо говоря Х) и значение параметра в данной точе и будучи уверенным, что оно лежит в нужных пределах, я могу сказать, что решение будет валидным.

Цитата
решение +-sqrt(D)/2a может быть мнимым числом - контроллер посчитает полную фигню. С моим уравнением четвертой степени та же история. Просто пробросить эту точку я не могу, как считаете можно ли брать модуль D?

Я не знаю вашей ситуации.

Цитата
Сложно оценить погрешность... sad.gif

Как мне кажется, сам АЦП будет давать большую погрешность, чем ваши методы расчётов и плавающая арифметика.

Цитата
И еще -ВОПРОС КО ВСЕМsmile.gif Программа не готова, а мне уже надо начинать документацию.

Это обычное дело.

Цитата
и вот какое дело - на плате предусмотрены разъемы и для программирования по JTAG, и для BSL. JTAG fuse я пережгу, но все равно останется возможность доступа к программе по BSL - по крайней мере стереть можно 05.gif Как полностью закрыть доступ к прошитой программе и по BSL? Разъем убирать уже поздно...
ОЧЕНЬ ВАЖНЫЙ ВОПРОС!
Как всегда простите за дилетантство smile.gif

Если изделие будет законченным (т.е. в корпусе и т.д.), то пломбировкой. От чтения вы никак не защититтесь. Если уж захотят считать, то считают полюбому. Разворачивайте сервис, обслугу прибора и люди к вам потянутся.
Go to the top of the page
 
+Quote Post
Daria
сообщение Nov 2 2008, 16:48
Сообщение #125


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Цитата(rezident @ Nov 1 2008, 23:32) *
Хотя вероятность затереть firmware через BSL конечно же остается.

crying.gif Проще наверное все-таки умолчать о возможности BSL smile.gif Разъем совмещен с внешним - на COM, так что можно попытаться сделать вид, что BSL выводы "просто так".


Цитата(Измеритель верёвочками @ Nov 1 2008, 23:47) *
Как мне кажется, сам АЦП будет давать большую погрешность, чем ваши методы расчётов и плавающая арифметика.

Хм. Вы так думаете? Да вроде нет, задаю максимальную длительность выборки, усредняю по 200 отсчетов(мкс), да и АЦП 12 разрядов - довольно точно, по-моему. По крайней мере, когда смотрю результаты преобразования АЦП в одном положении, то разница между данными максимум в 2 отсчета АЦП, погрешность 2/4096=0,04%
или вы не об этом? Я чего-то не понимаю? 05.gif
Цитата(Измеритель верёвочками @ Nov 1 2008, 23:47) *
Если изделие будет законченным (т.е. в корпусе и т.д.), то пломбировкой. От чтения вы никак не защититтесь. Если уж захотят считать, то считают полюбому. Разворачивайте сервис, обслугу прибора и люди к вам потянутся.

Пломбировка - это, конечно, хорошо smile.gif Но это не мое дело, мне вот вынь да положь описание, как именно я защищаю программу от доступа smile.gif Вообще если когда-то будет серия, то мне, как я понимаю, вообще не нужны будут разъемы на плате, можно грузить этим e-z430 или как он называется и не париться. Но так как изделие еще делается, и делаться будет долго, то вот заложила целых два разъема, на случай, если jtag fuse уже пережгу, и вдруг что-то еще всплывет, и надо будет перепрошить. Вот. а теперь оказалось, что наоборот - надо защищаться. Мне-то, кстати, не жалко - пусть считывают - они там в моей женской логике ничего не поймут biggrin.gif
кстати, с датчиками LIS3L06AL никто не работал? Это в теме, потому что про компас biggrin.gif Если никто, то и ладно, придется поднимать новую тему... мне просто интересно, какие операционники с ним ставить и как включать, что-то как-то ничего хорошего не получается sad.gif

Сообщение отредактировал Daria - Nov 2 2008, 17:08
Go to the top of the page
 
+Quote Post
zhevak
сообщение Nov 2 2008, 19:10
Сообщение #126


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата(Daria @ Nov 2 2008, 22:48) *
они там в моей женской логике ничего не поймут biggrin.gif

Вот это тема! Работать работает. А как -- хрен поймешь! Поневоле свой код с нуля будет написать дешевле. Это в том смысле, если кто будет займаться реинжинирингом Вашего девайса. А если серьезно, то для пиратов это ... ха-ха, они даже и разбираться не будут. Закопипастят и все дела.

Правда, пираты это будут делать только в том случае, если они будут иметь выход на потребителя (покупателя). Если потребитель -- Ваш, то вам особо беспокоиться не о чем. Ваше изделие никому, кроме него, не нужно. А потребитель, если у него мозги правильно работают, сам производством заниматься не будет. Он на другом делает деньги. Ему дешевле будет купить готовое изделие. Ваше изделие.

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


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 2 2008, 21:21
Сообщение #127


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Daria @ Nov 2 2008, 21:48) *
crying.gif Проще наверное все-таки умолчать о возможности BSL smile.gif Разъем совмещен с внешним - на COM, так что можно попытаться сделать вид, что BSL выводы "просто так".

Цитата(Daria @ Nov 2 2008, 21:48) *
Но так как изделие еще делается, и делаться будет долго, то вот заложила целых два разъема, на случай, если jtag fuse уже пережгу, и вдруг что-то еще всплывет, и надо будет перепрошить. Вот. а теперь оказалось, что наоборот - надо защищаться.

В таком случае BSL как опциональный разъем (отверстия на плате) можно оставить, а в прошивке реализовать свой собственный загрузчик с шифрованием типа AES. Но вообще нужно знать: что именно и от кого защищаем?
Go to the top of the page
 
+Quote Post
Daria
сообщение Nov 3 2008, 09:48
Сообщение #128


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Цитата(rezident @ Nov 3 2008, 01:21) *
В таком случае BSL как опциональный разъем (отверстия на плате) можно оставить, а в прошивке реализовать свой собственный загрузчик с шифрованием типа AES. Но вообще нужно знать: что именно и от кого защищаем?

Свой собственный загрузчик - это мне, наверное, еще не под силу crying.gif А от кого защищаемся - это надо спросить у заказчика, надо полагать - от враговbiggrin.gif

Цитата(zhevak @ Nov 2 2008, 23:10) *
Почему узкоглазые так поперли? -- Потому что у них дешевое производство, дешевая рабочая сила.
Почему у нас так хреново? -- Потому что, мы не умеем делать большие серии недорогих изделий. Точнее так -- изделия у нас почему-то получаются дорогими, гы-гы. Догадываетесь почему?

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

Сообщение отредактировал Daria - Nov 3 2008, 10:02
Go to the top of the page
 
+Quote Post
zhevak
сообщение Nov 3 2008, 12:25
Сообщение #129


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата(Daria @ Nov 3 2008, 15:48) *
А от кого защищаемся - это надо спросить у заказчика, надо полагать - от враговbiggrin.gif

Врага нужно идентифицировать. Можно защититься только от конкретного врага -- выдвигая конкретные контр-меры. А от гипотетического врага вообще нет никакой защиты, ибо о враге вы можете мыслить так, а на самом деле его оружие окажется на порядок совершеней Вашей защиты. И что тогда?


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Nov 3 2008, 12:50
Сообщение #130


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(zhevak @ Nov 3 2008, 16:25) *
Врага нужно идентифицировать. Можно защититься только от конкретного врага -- выдвигая конкретные контр-меры. А от гипотетического врага вообще нет никакой защиты, ибо о враге вы можете мыслить так, а на самом деле его оружие окажется на порядок совершеней Вашей защиты. И что тогда?

Насколько я понял, враг идентифицирован - это начальник. Это он защиту хочет.
Защита тоже стандартная - прикинуться дурочкой. "А я не знала, что BSL баг".
Одобряю! biggrin.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Daria
сообщение Nov 3 2008, 22:53
Сообщение #131


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Цитата(Dog Pawlowa @ Nov 3 2008, 16:50) *
Насколько я понял, враг идентифицирован - это начальник. Это он защиту хочет.
Защита тоже стандартная - прикинуться дурочкой. "А я не знала, что BSL баг".
Одобряю! biggrin.gif

biggrin.gif Ну, в основном заказчик. biggrin.gif Начальник-то не будет вникать во всякие BSL-и, а заказчик может. И "не знала" не прокатит. Тут скорее - "не подумала", а потом "признаю свою вину. меру, степень, глубину", "все исправим, но потом". Главное, чтобы сначала прокатило biggrin.gif Эх, вот уравнение решаться не хочет - это, действительно, проблема... crying.gif
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Nov 4 2008, 06:54
Сообщение #132


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Daria @ Nov 4 2008, 02:53) *
Эх, вот уравнение решаться не хочет - это, действительно, проблема... crying.gif

А что уравнение, Дарья? Перебором пробовали?


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Daria
сообщение Nov 4 2008, 17:06
Сообщение #133


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Цитата(Dog Pawlowa @ Nov 4 2008, 10:54) *
А что уравнение, Дарья? Перебором пробовали?

Эге! перебором! Решение-то может быть дробным, и лежит оно в диапазоне примерно от 500 до 2500 biggrin.gif Нет, конечно, пытаюсь методом последовательных приближений, но не знаю способ подобрать хорошее начальное приближение... В общем, надо пытаться придумать другой способ, без уравнения четвертой степени. Ох, нехорошие у меня предчувствия...
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Nov 4 2008, 17:29
Сообщение #134


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Daria @ Nov 4 2008, 21:06) *
В общем, надо пытаться придумать другой способ, без уравнения четвертой степени.

Ну, метод последовательных приближений - это немного улучшенный перебор smile.gif
Обычно помогает физическая модель, максимально приближенная к реальности.
А когда модели нет ... . Мой последний опыт был 17-летней давности, подбор коэффициентов происходил за 15-20 с на PC XT.
Мир не изменился - теперешний MSP430 по быстродействию не хуже тогдашнего 8086.
Требования по быстродействию есть?


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Daria
сообщение Nov 4 2008, 19:06
Сообщение #135


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Цитата(Dog Pawlowa @ Nov 4 2008, 21:29) *
Ну, метод последовательных приближений - это немного улучшенный перебор smile.gif
Обычно помогает физическая модель, максимально приближенная к реальности.
А когда модели нет ... . Мой последний опыт был 17-летней давности, подбор коэффициентов происходил за 15-20 с на PC XT.
Мир не изменился - теперешний MSP430 по быстродействию не хуже тогдашнего 8086.
Требования по быстродействию есть?

Нет. можно ждать хоть минуту. Но коэффициенты-то как раз будут известны, они вычисляются по четырем возможным значениям кренов и четырем данным АЦП. Вопрос как решить. И что делать, если решение - мнимое... А Вы занимались-таки решением уравнений? wink.gif Может кинете какие-нибудь примеры, так, для размышления... Если не очень наглая просьба smile.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:15
Рейтинг@Mail.ru


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