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

iiv

Свой
  • Постов

    2 850
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Весь контент iiv


  1. ага, я уже 5 прикрутил, без основного софта на основе one-wire.cpp и все в секунду укладывается, но вот в параллель-то конечно надо все аккуратно расписать...
  2. А в лоб по определению разве сложно? T_0 = 1; T_1(x) = x; T_{k+1}(x) = 2 x T_k(x) – T_{k–1}(x). Пишем простенькую программку, которая вычисляет коэффициенты полинома исходя из этой рекурсии. Коэффициенты все целочисленные, при их вычислении ошибок не будет, только рости они будут очень не по-децки, полином 40-ей степени уже не влезет в 64-битную арифметику: #include <stdio.h> int main() { unsigned int i, j, k, N=64; long long A[N][N]; A[0][0]=1; A[1][0]=0; A[1][1]=1; for(i=2; i<40; i++) { for(j=0; j<i-1; j++) A[i][j]=-A[i-2][j]; A[i][i]=2*A[i-1][i-1]; for(j=1; j<i; j++) A[i][j]+=2*A[i-1][j-1]; for(j=0; j<i+1; j++) printf("%lld ", A[i][j]); printf("\n"); } return 0; }
  3. У Вас координаты сетки интерполяции на чебышевских точках, или на равномерных заданы? Если на равномерных, то при конвертации из Чебышевской в степенное представление, Вы и получите опять эту же ошибку. Если у Вас сетка на Чебышевских точках, то матрица интерполяционных коэффициентов будет хорошо обусловлена.
  4. Огромное Вам спасибо, Леонид Иванович, я чувствовал, что так оно и должно быть, но, не сильно хорошо владея предметом, возможно не совсем понятно задал вопрос... Надеюсь, что в 45мкс задержку смогу положить несколько других важных операций, длительность которых мне полностью известна. Опрашивать по-видимому надо будет 5 датчиков, буду разбираться хватит ли у меня свободных ног для этого...
  5. на сколько понимаю, 5-10мкс (или все-таки 60 мкс?) мне надо ждать для передачи одного бита, а передавать надо где-то 16 байт, то есть на момент коммуникации мне надо выделить 1-2 милисекунду. Вот их-то я и не готов выделить, так как в реальном времени у меня с 6 портов идут конвертации с АЦП и на результаты мне надо реагировать незамедлительно. Термодатчики хочу вкрячить на силовые модули, чтобы мониторить нагрев мосфетов во время работы...
  6. Atmega328P и DS18B20 в фоновом режиме

    Всем привет, имеется атмега328п, хочется к ней прикрутить несколько, от одного до четырех, датчиков температуры DS18B20 по 1-wire. Незадачка в том, что эта атмега должна в реальном времени выполнять кучу другой работы, которую нельзя прерывать 100мкс-750мс ожиданиями протокола 1-wire. В то же время, как я понимаю из прочтения исходников протокола общения с этими датчиками, большую часть времени микроконтроллер должен ждать. Возникает идея, что этот протокол может быть реализован на прерываниях таймера и int0 (я могу повесить 1-wire на эту ножку) и практически не занимать время процессора, но программировать это может быть довольно не тривиально. Скажите, пожалуйста, может кто-то уже такое запрограммировал, и такие исходники существуют в сети? Если да, тыкните, пожалуйста, пальцем где скачать. Если нет, может я в чем-то ошибаюсь и это не так просто, как мне кажется? Знаю, что есть еще решение - поставить на плату тиньку или еще одну ардуину, которая будет 100% занята опросами этой температуры, но очень не хотелось бы это делать. Спасибо ИИВ
  7. напишите такое void delay(unsigned int a) { unsigned char u=a>>8; volatile unsigned char i; for(i=0; i<u; i++) { volatile unsigned char j=255; while(--j); } i=a&255; while(--i); return; } сами, измерьте время работы и откалибруйте, как надо, быстрее будет, чем на форуме вопрошать.
  8. полностью с Вами согласен, именно так и планирую делать защиту. ну я думаю, что у нас-то и не стырят, а если и стырят, то максимум, на полку положат, и не попользуют :) миллиард :) сами знаете где этот миллиард водится :) сугубо мирные цели :)
  9. Благодарю, Вас за советы! Перегрыз дорожку и навесным повесил делитель на 100кОмных резисторах и середину подключил на REF. Стало стабильнее на выходе 2.5В, но все еще не то, что мне надо. Поставить в то же место AD820 или что-то аналогичное пока не могу, переразводка-переизготовление-перепайка платы на 2 недели затянется. Реально не могу понять, почему LT1990 не работает... Уже даже попробовал один выпаять и другой впаять, думая, что LT1990 бракованный (из Фарнела-то) попался, но не помогло.
  10. Благодарю, Вас за ответ, с конденсатором - да, не подумал, но есть, куда вкрячить. Навесным повешу. А с операционниками - еще не разбирался, и это - мой первый опыт, пока, к сожалению, не удачный. Я честно говоря, думал, что это именно и есть такой повторитель с малым током. Вот тут я в терминологии совсем запутался. По даташитам там в LT1990 на входе два 1МОм резистора стоит. Скажите, пожалуйста, разве этого мало и есть больше, или я окончательно запутался в терминах и не на то смотрю?
  11. После делителя на 1.5ГОм/330кОм, ток на МК совсем слабый. Хочется его повторить, чтобы устойчиво его измерять. МК надо примерно 10кОм резистор в нижнем плече, то есть, при моем коэффициенте в делителе в 4000 раз, в верхнем плече будет стоять всего-то 40мОм, которые при 20кВольт будут рассеивать 10Ватт. Мне 10Ватт жалко :) Дополнительно, хочется что-то поставить, чтобы если там какой скачек, то через него в МК не привалило что-то высоконапряженное или отрицательное и МК не ушел в ресет.
  12. к сожалению, не совсем обычный софт, и желающих спереть уже много. Софт распределенно работает на писишке, плиске и нескольких мелких бордах с МК. На писишке - взломают точно, думаю, что там ноль шансов защититься. В то же время софту с писишки нужны данные с плиски и борд с МК, и я могу так модифицировать софт, что он будет не правильно работать если плиски или борды с МК будут посылать похожие данные, но не совсем те, что я хочу. Встает вопрос куда надежнее залить такую защиту, в то же время, влазить в дебри этого вопроса тоже не сильно хотелось бы. Так как борд с МК и плисками у меня в системе около 20, то если я например, знаю, что один проц взламывается с 90% вероятностью, то вероятность взлома всей системы c первого раза всего-то (0.9^20)*100%=12%.
  13. Ref на земле, Gain1, Gain2 - да, висят, как в даташите, чтобы был повторитель. согласен, сейчас нарисую, просто изначально не положил, так как вроде кроме самого ОУ тут больше ничего нет такого важного.
  14. Всем привет, пробую использовать LT1990 http://ru.farnell.com/linear-technology/lt...1990/dp/1330733 для измерения не быстро меняющегося высоковольтного напряжения. Надо измерять 0-20кВ, которое изменяется примерно с частотой 50-100Гц, хочется примерно раз в милисекунду знать значение этого напряжения. Само измерение происходит на МК Атмега328. Раньше делал делителем на 100мОм/25кОм без операционника - измерялось устойчиво, но отъедалось в среднем 3 Ватта, чего хотелось избежать. Попробовал сделать на LT1990, заменив делитель на (1.5ГОм+2МОм)/330кОм. На схеме 1.5ГОм не показан (он собран из 3-х по 500МОм на 10кВ), на его выход воткнут в 2МОм резистор (R6, 3кВ), далее R5=330кОм, C22=100мкФ, с30=10мкФ. Красная дорожка с 6-ой ноги LT1990 уходит напрямую в микроконтроллерный вход АЦП, зеленая дорожка горизонтально по центру - земля. МК от высоковольтной системы по земле разделен индуктором на 10мГн, 0.1Ом, LT1990 также от всех остальных развязана такими же индукторами. При измерениях получается лажа, значения совсем ни как не коррелируют с тем, что должно быть и гуляют произвольно от 0 до 2В на 6-ой ноге. Если даже на вход R6 подать просто 0-30В, тоже ничего путнего не получается, то есть тут не в ВВ проблема. Повидимому я что-то не понимаю в устройстве LT1990 (как я понимаю, это почти аналог INA148), только дешевле из-за меньшей точности. Вдруг кто с этим ОУ работал, или увидели причину моей ошибки, посоветуйте, мне, пожалуйста, что же я тут не то сделал? Спасибо ИИВ
  15. Всем привет, скажите, пожалуйста, на сколько тривиально вытащить содержимое прошивки МК с целью бездумного клонирования? Хочется отдать в руки одно устройство, но есть опастность, что сопрут прошивку. Сейчас устройство работает на Атмеге328 с Ардуиной. Могу тот же функционал перетащить на терасиковскую борду ДЕ0 http://www.terasic.com.tw/cgi-bin/page/arc...p;from=enbanner правда очень не хотелось бы. При сильной нужде - думаю что мог бы поменять МК, но, тоже очень не хотелось бы. Сопрут ли, с легкостью ли, если да, то что лучше выбрать, чтобы не сперли, либо хотя бы не со 100% ной вероятностью сперли, посоветуйте, пожалуйста! Спасибо ИИВ
  16. Так вот... вернемся к баранам ТС, то есть к моим. Расскажу про проделанный эксперимент, поделюсь опытом. Попробовал вначале 6кВольт RMS на выходе получать, на входе можно либо 12В постоянки, либо 220В сетевых. Что попробовал: 1. полномостовым образом вогнать 12В в один транс (тор 10см) с коэффициентом трансформации 375 (первичка - 4 обмотки по 2 витка), вторичка одна обмотка с 750 витков, 2. полномостовым образом вогнать 12В в один транс (тор 10см) с коэффициентом трансформации 20 (первичка 39, вторичка 750) и выход снова в такой же транс (первичка 39, вторичка 750), то есть первый транс поднимал напряжение до 360В переменки, а второй до 6кВ, 3. входные 220 переменки выпрямил до 310В, и вогнал в один транс c коэффициентом трансформации 15 (первичка 50, вторичка 750). Во всех экспериментах вторичка была на тор намотана, пропарафинена, прозазорена на 1см, а поверх моталась первичка/первички. Реально использовал только два транса и перенаматывал первички. На выходе стояли умножители двухполупериодные, в + и в -, оба по 5 ступеней, в пике должно было получаться 90кВольт, реально выход этих каскадов был через 8кОм резисторы воткнут в 110кВольтный конденсатор на 5нФ, и в параллель к нему ключ-разрядник, который на 70кВ срабатывал. Менял частоту накачки на МК линейно с X до Y, так, что X - было сразу после разряда, а Y - непосредственно перед разрядом, а в промежутке - линейная аппроксимация. X и Y подбирались по Ньютону на основе затраченной энергии на один импульс. Выводы: КПД схемы 3 достигда 76% при 100В мощности, при 1кВ мощности было около 60% КПД. КПД схемы 2 было больше КПД схемы 1, но выйти на 1кВ выходной мощности удалось только при 50% и 30% КПД соответственно, реально трансы грелись ужасно, можно было экспериментировать только около 10 секунд, а потом ждать пару минут пока парафин застынет. В то же время на схеме с двумя трансами КПД около 70% достигалось при 10Ватт нагрузке (около одного импульса в секунду моей схемы). Выводы... сами понимаете... два транса - геморно и не нужно, имеет смысл только если у Вас под рукой нет нормальных ВВ мосфетов, чтобы питаться от 220В. Может иметь смысл только если питание только низковольтное, и очень стеснены по габаритам. Off/PS: предварительные опыты, правда на меньшее выходное напряжение, буст на прямую воткнутый в длинный умножитель пока даже более успешны на небольших мощностях, чем схема 3. Буст на 335мкГн, 100витков, 0.6Дж до насыщения, микрометальный тор примерно тех же габаритов. Но управление там - МК уже на самоподстройку еле-еле хватает.
  17. когда еще на Н-мосте экспериментировал, первичка напрямую была воткнута, без конденсаторов. Сейчас перешел полностью на другую схему - буст воткнутый в умножитель, честно говоря, гораздо больше нравится.
  18. В догонку, чтобы было проще разобраться что к чему, формула Б кубического сплайна на единичной равномерной сетке такая: нулевой сегмент (там где функция в f(0)=1, f(1)=0) f_0(x)=x*x*((2-sqrt(3))*x+sqrt(3)-3)+1, 0<x<1, все последующие, сдвинутые так, чтобы 0<x<1 и f(0)=f(1)=0 f_i(x)=x*(x-1)*((1-sqrt(3))*x+1)*(2-sqrt(3))^{i-1} где i - номер сегмента, то есть в эти формулы хоть 4/3, хоть любую другую децимацию можно подставить. Заодно по этим формулам проверять проще.
  19. Всем огромное спасибо за советы! хоть и установка мощная, но переразводить приходится все, кроме каскадов умножителей, то есть, это примерно 80 компонент и 300 посадочных мест. Начал переразводить, воспольозовавшись всеми советами. Экран тоже запланировал. При сильных нагрузках у меня вся эта система в трансформаторном масле плавает, чтобы иот пробоя защищать, и жидкостно охлаждать. На днях переразведу, зашлю на изготовление, думаю, через две недели либо буду хвалиться, либо опять форум теребить :)
  20. Программу генерации коэффициентов не нашел, заново писать было лениво, вывел аналитически их формулы для Б-сплайнов 3-ей степени. CoefP[COEFSIZE/2+0][0]=2/27*(10+sqrt(3)), CoefQ[COEFSIZE/2+0][0]=1/27*(7+4*sqrt(3)), j=0,..3, i=0,... не включая i=j=0 CoefP[COEFSIZE/2+i][j]=-2/27*(5+2*sqrt(3))*(2-sqrt(3))^(i*4+j), CoefQ[COEFSIZE/2+i][j]=-2/27*(4+sqrt(3))*(2-sqrt(3))^(i*4+j), Коэффициенты COEFSIZE/2-i-1 и COEFSIZE/2-i симметричны. Всех их надо домножить на 2^DATALEN и взять целое. Как видно из формул, i>1 нужны только если точность оцифровки не менее 16 бит, а i>0 нужны только если точность оцифровщика не меньше 8 бит. Вывод формул не готов писать, на бумаге примерно листов 5 получилось только формул :( Ход доказательства - записываем обычный сплайн для Б-сплайна, получаем трехдиагональную матрицу с бесконечно большим размером, считаем для нее разложение Холецкого в пределе, подставляем правую часть, получаем рекурентные формулы для сплайна, подставляем 1/3 и 2/3, получаем коэффициенты. PS со сдвигами возможно, где-то намудрил, если найдете баг, пишите
  21. Всем огромное спасибо за советы и ссылки, реально сильно выручаете!!! С диодами на входе - действительно прокололся, и был не прав, спасибо за то, что тыкнули носом в мой огрех... По поводу делителя, скажите, пожалуйста, если он будет не сильно высокоомный, например, как раньше в 5МОм будет ли это разумно? При моих характерных напряжениях я только 80милиВатт туда тратить буду, при 1кВатте планируемой мощности установки, это совсем не будет погоды делать. Или правильнее еще сильнее упасть, до 1МОм. Скажите, пожалуйста, как можно эти наводки разумно оценить?
  22. Я правда в модемах ни бум-бум, но, по восстановелнию частоты несущей, можно вставить свои пять копеек? Линейное предсказание, код у тебя есть, единственно, это довольно трудоемкая процедура, может поесть все доступные умножители, наверное из-за этого - не распространено. Причем одна часть алгоритма на плиску хорошо ложится, а вот другую я только на писишке смог гонять, там больно много условий и ветвлений. Вкрячивать ниос и на нем на С программировать - так и не научился. Реально где это мейн стрим - ядерный магнитный резонанс, но там стоимость прибора сравнима с хорошим суперкомпьютером, поэтому народ там на терафлопсах не экономит. Если заинтересует, могу кинуть (если быстро отсканирую) хороший обзор, или несколько своих статей, и доступно об этом порассказываю.
  23. С радостью! У меня где-то софт был, самопально написанный как эти коэффициенты считать, но, что-то я никак не могу найти, а старые таблицы этим софтом нагенеренные, для 3/4 не подойдут. Если не найду, напишу доку, только как раз там-то и надо трехдиагональную матрицу решать и с коэффициентами ничего не напутать, поэтому дока не тривиально пишется :( а в и-нете я как-то не видел простого и понятного описания. На учебник тыкать - не правильно, можно и месяц потратить при разборке что да как. У нас в свое время семестровый курс был по этой теме, сам Шикин читал (в тот момент он был самым большим спецом в СССР в задачах сплайн аппроксимаций). Кстати, удобство этого метода - можно нагенерить все эти коэффициенты однажды хоть для Б-сплайнов 3-ей степени, хоть для 5-ой, хоть для 25-ой, только меняя эту таблицу можно все пересичтать не меняя верилог модуль, который я привел выше. Правда из своего опыта, больше 5-ой степени реально не за чем. Даже между 3-ей и 5-ой разницу ну очень сложно увидеть, я обычно, только 3-ю использую.
  24. > Да уж, отбирать ватт на измериловку это круто и стратегически неправильно, лучше высокомегаомное что-нибудь. как я уже много раз говорил, в основном напряжение там колеблется между 900 и 0, то есть при 5мОм на измериловку 40мВатт конечно будет уходить, но вот если вдруг там 2500В набежит, мне об этом надо очень быстро узнать, и тут я готов потратить ватт мощи втечение 100мкс :)
×
×
  • Создать...