-
Постов
160 -
Зарегистрирован
-
Посещение
Весь контент Alhen
-
Это уже хорошо, потому что я и раньше из SPORT-а делал SPI, а сейчас он у них слегка улучшенный в плане совместимости с SPI (Engineer-to-Engineer Note EE-304). Раньше требовался один инвертор и один лишний сдвиг данных.
-
BlackFin работа с DMA
Alhen опубликовал тема в Сигнальные процессоры и их программирование - DSP
Можно ли по SPI принимать данные и без участия проца лить это во внешнюю память? -
Симуляция механических устройств
Alhen опубликовал тема в Вопросы системного уровня проектирования
Подскажите какой есть софт для симуляции механических, электромеханических устройств? Нужна программа которая по чертежам например AutoCAD, покрутила бы шестеренки. -
2 defunct Спасибо за оперативность. А как кнопочку приаттачить, нужен ли диод ?
-
Развожу плату для ATmega128 нужны варианты реализаци RESET. Для сброса МК обычно использовал супервизор типа ADM707, очевидно, что для навороченной меги 128 ADM707 избыточна, хотелось бы надежный сброс и возможность manual reset. Подскажите где посмотреть варианты, чтобы выбрать оптимальный.
-
Попробуйте реализовать фильтр Кальмана, много памяти в отличии от скользящего среднего не требует, но требует дробные числа с точкой. см здесь http://www.cs.unc.edu/~welch/kalman/ и здесь http://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf Вот пример реализации фильтра Кальмана в МатЛабе function [z_out] = kalman(z,xk,r) n = length(z); %xk=0; pk=1; q=0.00001; %r=0.01; for i=1:n x = xk; p = pk + q; k = p/(p+r); xk = x + k*(z(i)-x); pk = (1-k)*p; z_out(i) = xk; end;
-
Балансирующий робот
Alhen ответил Dars тема в Метрология, датчики, измерительная техника
А конкретно какие книги освещают данную проблему? С учетом того что существует море книг по ТАУ и ТАР, но где есть примеры работы в связке акселерометров с датчиками угловой скорости? -
Знаком практически только с ADSP2181, есть PCB самодельной отладочной платы, не плохой кристал для начинающего, единственный недостаток - сильно устарел, переферия корявая. То ли дело ADSP2191 - вот это кристалл!!! Конечно, только среди 16 разрядных устройств. Очень рекомендую. А самы практический подход - искать то что есть под рукой, дешевле или реальнее достать.
-
Совсем недавно пользуюсь VMLab, но насколько я понял он работает только с hex файлами. А программе можно вермть вполне, проверенно.
-
2Nixon Попробывал я обыграть макрос и в CodeVision прошел следующий вариант: #include "my_table.txt" flash unsigned char my_array[] = in_table; Включаемый файл при этом выглядел так: #define in_table {\ 0x01, 0x02,\ 0x03, 0x04 \ .... };\ Что еще приятно, работает sizeof a = sizeof(my_array); 2kOt Вариант типа flash unsigned char my_array[]={#include "my_table.txt"}; в Code Vision не проходит?! Хотя все логично, тем более что в VDSP++ есть подобная конструкция 2 Old1 & vet По поводу конвертации бинарного файла я уже поднимал тему на форуме. И программа BIN2ASC.exe показалась сперва чрезвычайно полезной, тем не менее мне пришлось написать свою на Паскале, потому что я тогда работал на Ассемблере под AVR Studio и программа не принимала сгенерированный ascii файл, по следующим причинам: - она глючила на десятичные числа с нулями впереди, например 040 воспринимая их за операторы - не понимала шестнадцатеричный формат без 0x - префикса (естественно) - не признавала директиву db без точки впереди - и к тому же, AVR Studio ругается на нечетное количество операндов в строке (наверное из-за 16 разрядной структуры памяти программ) .db 183, 001, 137, 255, 255, 134, 254, 255, 133, 255, 255, 255, 243, 041, 255, а их то 11 то 15 штук в строке. Любой после этого кинется писать свой конвертор. 2AndyBig и всем Уже вижу что Си компиляторы все разные, может мне не стоит заморачиваться с Code Vision , а сразу работать в IAR и т.п., что посоветуете. Я то стартанул по известному курсу AVR123 http://electronix.ru/redirect.php?http://[banned]/. И могу сказать что Image Craft мне не нравится. Он не генерит ассемблер, а самое главное ИМХО у него ограниченный Си.
-
Не могу я набирать массив ручками, там пару тысяч байт, поэтому храню его в отдельном файле в текстовом формате и должен пристегнуть его. Например, #include "tabl.dat"; вот теперь как определить его в виде TABL[length_of_table] ? или определить начальный адрес размещения данных, а потом передать это значение указателю?
-
Все решено перехожу на Си! Только вот незадача, первая же простенькая практическая задача для AVR контроллера поставила в тупик. Суть программы: - в памяти программ размещается таблица или массив; - берем по очереди байт из массива и выкидываем в коммуникационный порт. Массив находится в пристегиваемом файле и я не понимаю как указать какому либо поинтеру на начало таблицы. На ассемблере все получается достаточно гармонично: ldi zh,high(Transmit_Buff*2); Load Z-pointer ldi zl,low(Transmit_Buff*2); to the beginning of Receive_Buff Transmit_Loop: USART_Transmit: ; Wait for empty transmit buffer sbis UCSRA,UDRE rjmp USART_Transmit ; Put data into buffer, sends the data lpm Data_IN, Z+ out UDR, Data_IN ldi TempReg,high(end_of_file*2); Check if we got high end_of_file cp TempReg,zh ; Compare breq got_high_end_of_file; If equal then check the Low part rjmp go_further: got_high_end_of_file: ldi TempReg,low(end_of_file*2); Check if we got low end_of_file cp TempReg,zl ; Compare breq got_low_end_of_file; If equal then reload Z-pointer rjmp go_further: got_low_end_of_file: ldi zh,high(Transmit_Buff*2); Load Z-pointer ldi zl,low(Transmit_Buff*2); to the beginning of Receive_Buff go_further: rjmp Transmit_Loop Transmit_Buff: .include "AIS_LOG.txt" end_of_file: nop Реализация подбной программы на Си AVR для меня загадка. Тем более что я нашел подходящую конструкцию на VisualDSP, complex_fract16 in[VEC_SIZE] = { #include "in.dat" }; но в CVAVR такое не проходит!!!
-
Спасибо, программка супер, то что надо!
-
Должна же существовать какая-нибудь директива чтобы прицепить в cseg табличку с голимыми байтами? Ну не набирать же мне ее руками типа .db 0x43 и т.д. Конечно можно написать коротенькую программку, хотябы в дельфи по конвертации, а нафиг это надо?
-
Число пакетов все таки 80 потому что есть старт бит и стоп бит (9600/12/10). А вот насчет режимов синхронизации надо подумать.
-
ADSP2181 autobuffer
Alhen опубликовал тема в Сигнальные процессоры и их программирование - DSP
Я настроил SPORT0 в режиме автобуфер на передачу 12 байт @ 9600 bps. по моим расчетам при такой скорости я должен получать 80 пакетов в секунду (960 байт/с). А реально получается 73? При обслуживании соответствующего прерывания совершается очень короткая процедура т.е. там потерь времени нет (хотя это вообще влиять не должно - автобуфер молотит без остановки). Так на что же тратится время? -
Теперь понятно почему в IAR-е так много выходных форматов. Спасибо, вполне исчерпывающая информация, теперь лишь бы из перечисленного что-нибудь было на ftp. Пойду смотреть закрома...
-
Жизнь заставляет осваивать AVR и хотелось бы также комфортно тестировать программу как и в KEIL. Честно говоря сильно надеялся что нужная программ IAR, но пока не вижу где все это в IAR-е спрятано (если оно там есть)?
-
VDSP - использование ассемблера
Alhen ответил bve тема в Алгоритмы ЦОС (DSP)
А можно по ходу вопрос, как перейти с ассемблера на С? Понимаю что вопрос необъятный, поэтому например конкретный вопрос: как организовать автобуфер для SPORT0 на С? Какие нибудь примеры? -
Насколько я понял, везде в Даташитах на микроконтролеры по поводу данных конденсаторов ссылаются на рекомендации производителя кварца. А этого производителя при случайных покупках установить невозможно, вот и лепим от 18 до 22 пкф, пока все работает, но ставят то их для зашиты, вроде как шунтируют они опасные токи. Насчет рассогласования в номиналах ничего сказать не могу - "темна вода в облацех".
-
Проблемы с MAX322E
Alhen ответил Alex999 тема в Цифровые схемы, высокоскоростные ЦС
Проверьте конденсаторы, поставьте неполярные от 0.1 до 1 мкф, микросхема хорошая и надежная даже на к.з. не должна так реагировать. -
Термодатчик К1019ЕМ1
Alhen ответил Alhen тема в Метрология, датчики, измерительная техника
Чтобы выявить причину нестабильности работы термодатчика перепробывал разные схемы источников тока, нашел импортный LM235 и даже стабилизатор тока к нему LM334, все равно через какое-то время показания начинали прыгать, иногда уходили в ноль. Понятно что датчики и источники тока тут ни при чем. Самое интересное что в схеме у меня было два датчика, один на плате, другой удаленный (1метр). Так вот с удаленным датчиком ничего подобного не происходило!? В разводке платы явных ошибок с паразитными связями по питанию не было. Оставались только одни конденсаторы - повыкидывал импортные танталовые 47.0х16 (при 9В пит.) конденсаторы и все заработало!!! Сутками гонял схему - все нормально работает. Вот такая гадость оказались данные танталы, учитывая недавние посты про взрывающиеся танталы не знаешь какой обертке верить. -
Поверка энкодера
Alhen ответил Alhen тема в Метрология, датчики, измерительная техника
На прибор заявляем точность 30 угловых секунд, значит поверять надо чем-то с точностью 3 угловые секунды. Хотя вопрос стоит как в принципе поверяются даже менее точные (2000 импульсов/об) энкодеры. Вот взять хотябы станки ЧПУ - если заявляется какая-то точность на поворотное устройство, то как-то это должно поверяться? -
Тоже раньше думал что подавать надо от генератора необходимую частоту, а на самом деле подается возбуждающий импульс (трансформатор повышающий и ключик как ТВС). До практической реализации я еще не доходил, параметры трансформатора, моточные данные пока для меня загадка.
-
Поверка энкодера
Alhen опубликовал тема в Метрология, датчики, измерительная техника
Необходимо поверить шифратор вращения, какие существуют методы, стенды, программы метрологической аттестации? Имеется поворотное устройство отрабатывающее поворот с заданной точностью. Как такое поверять подскажите?