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

Alhen

Свой
  • Постов

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

  • Посещение

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


  1. Это уже хорошо, потому что я и раньше из SPORT-а делал SPI, а сейчас он у них слегка улучшенный в плане совместимости с SPI (Engineer-to-Engineer Note EE-304). Раньше требовался один инвертор и один лишний сдвиг данных.
  2. Можно ли по SPI принимать данные и без участия проца лить это во внешнюю память?
  3. Подскажите какой есть софт для симуляции механических, электромеханических устройств? Нужна программа которая по чертежам например AutoCAD, покрутила бы шестеренки.
  4. Reset for AVR

    2 defunct Спасибо за оперативность. А как кнопочку приаттачить, нужен ли диод ?
  5. Reset for AVR

    Развожу плату для ATmega128 нужны варианты реализаци RESET. Для сброса МК обычно использовал супервизор типа ADM707, очевидно, что для навороченной меги 128 ADM707 избыточна, хотелось бы надежный сброс и возможность manual reset. Подскажите где посмотреть варианты, чтобы выбрать оптимальный.
  6. Попробуйте реализовать фильтр Кальмана, много памяти в отличии от скользящего среднего не требует, но требует дробные числа с точкой. см здесь 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;
  7. А конкретно какие книги освещают данную проблему? С учетом того что существует море книг по ТАУ и ТАР, но где есть примеры работы в связке акселерометров с датчиками угловой скорости?
  8. Знаком практически только с ADSP2181, есть PCB самодельной отладочной платы, не плохой кристал для начинающего, единственный недостаток - сильно устарел, переферия корявая. То ли дело ADSP2191 - вот это кристалл!!! Конечно, только среди 16 разрядных устройств. Очень рекомендую. А самы практический подход - искать то что есть под рукой, дешевле или реальнее достать.
  9. Работа в VMLab R3.10

    Совсем недавно пользуюсь VMLab, но насколько я понял он работает только с hex файлами. А программе можно вермть вполне, проверенно.
  10. 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 мне не нравится. Он не генерит ассемблер, а самое главное ИМХО у него ограниченный Си.
  11. Не могу я набирать массив ручками, там пару тысяч байт, поэтому храню его в отдельном файле в текстовом формате и должен пристегнуть его. Например, #include "tabl.dat"; вот теперь как определить его в виде TABL[length_of_table] ? или определить начальный адрес размещения данных, а потом передать это значение указателю?
  12. Си указатель на таблицу

    Все решено перехожу на Си! Только вот незадача, первая же простенькая практическая задача для 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 такое не проходит!!!
  13. Спасибо, программка супер, то что надо!
  14. Как прицепить таблицу

    Должна же существовать какая-нибудь директива чтобы прицепить в cseg табличку с голимыми байтами? Ну не набирать же мне ее руками типа .db 0x43 и т.д. Конечно можно написать коротенькую программку, хотябы в дельфи по конвертации, а нафиг это надо?
  15. Число пакетов все таки 80 потому что есть старт бит и стоп бит (9600/12/10). А вот насчет режимов синхронизации надо подумать.
  16. Я настроил SPORT0 в режиме автобуфер на передачу 12 байт @ 9600 bps. по моим расчетам при такой скорости я должен получать 80 пакетов в секунду (960 байт/с). А реально получается 73? При обслуживании соответствующего прерывания совершается очень короткая процедура т.е. там потерь времени нет (хотя это вообще влиять не должно - автобуфер молотит без остановки). Так на что же тратится время?
  17. Симулятор для AVR?

    Теперь понятно почему в IAR-е так много выходных форматов. Спасибо, вполне исчерпывающая информация, теперь лишь бы из перечисленного что-нибудь было на ftp. Пойду смотреть закрома...
  18. Симулятор для AVR?

    Жизнь заставляет осваивать AVR и хотелось бы также комфортно тестировать программу как и в KEIL. Честно говоря сильно надеялся что нужная программ IAR, но пока не вижу где все это в IAR-е спрятано (если оно там есть)?
  19. А можно по ходу вопрос, как перейти с ассемблера на С? Понимаю что вопрос необъятный, поэтому например конкретный вопрос: как организовать автобуфер для SPORT0 на С? Какие нибудь примеры?
  20. Насколько я понял, везде в Даташитах на микроконтролеры по поводу данных конденсаторов ссылаются на рекомендации производителя кварца. А этого производителя при случайных покупках установить невозможно, вот и лепим от 18 до 22 пкф, пока все работает, но ставят то их для зашиты, вроде как шунтируют они опасные токи. Насчет рассогласования в номиналах ничего сказать не могу - "темна вода в облацех".
  21. Проверьте конденсаторы, поставьте неполярные от 0.1 до 1 мкф, микросхема хорошая и надежная даже на к.з. не должна так реагировать.
  22. Чтобы выявить причину нестабильности работы термодатчика перепробывал разные схемы источников тока, нашел импортный LM235 и даже стабилизатор тока к нему LM334, все равно через какое-то время показания начинали прыгать, иногда уходили в ноль. Понятно что датчики и источники тока тут ни при чем. Самое интересное что в схеме у меня было два датчика, один на плате, другой удаленный (1метр). Так вот с удаленным датчиком ничего подобного не происходило!? В разводке платы явных ошибок с паразитными связями по питанию не было. Оставались только одни конденсаторы - повыкидывал импортные танталовые 47.0х16 (при 9В пит.) конденсаторы и все заработало!!! Сутками гонял схему - все нормально работает. Вот такая гадость оказались данные танталы, учитывая недавние посты про взрывающиеся танталы не знаешь какой обертке верить.
  23. На прибор заявляем точность 30 угловых секунд, значит поверять надо чем-то с точностью 3 угловые секунды. Хотя вопрос стоит как в принципе поверяются даже менее точные (2000 импульсов/об) энкодеры. Вот взять хотябы станки ЧПУ - если заявляется какая-то точность на поворотное устройство, то как-то это должно поверяться?
  24. Тоже раньше думал что подавать надо от генератора необходимую частоту, а на самом деле подается возбуждающий импульс (трансформатор повышающий и ключик как ТВС). До практической реализации я еще не доходил, параметры трансформатора, моточные данные пока для меня загадка.
  25. Необходимо поверить шифратор вращения, какие существуют методы, стенды, программы метрологической аттестации? Имеется поворотное устройство отрабатывающее поворот с заданной точностью. Как такое поверять подскажите?
×
×
  • Создать...