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

Dawyd

Участник*
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о Dawyd

  • Звание
    Участник
    Участник
  • День рождения 09.05.1978

Контакты

  • Сайт
    Array

Информация

  • Город
    Array
  1. Всем доброго времени суток. Может тема не нова, но сходу не нашел. Возможно это где то описано ранее прошу дать ссылку. Подключаюсь к MySQL через ODBC в системе при регистрации источника данных тестовое соединение устанавливается, а при попытке через Альтиум пишет ошибку инициализации поставщика. [Microsoft][Диспетчер драйверов ODBC] В указанном DSN архитектура драйвера и архитектура приложения не соответствуют друг другу. Как правильно дружить Altium Designer с MySQL? Подключал так: Строка Соединения->Создать->Microsoft OLE DB Provider for ODBC Drivers->Далее->Выбирал моего источника, пользователя и пробовал->Проверить соединение P.S. Заранее спасибо.
  2. Упс, извиняюсь по ночи заспал один момент, я D-тригер хотел по компаратору переворачивать. Спасибо заметили. Ща проверю. Всё нормально, поправил, этот пример заработал. Возможно это вопрос для другой ветки этого форума. Однако вопрос пока открыт, как настраивать использование специальных линии тактирования на кристале, насколько я понимаю надо их в ucf как то обявить и судя по библиотеке шаблонов как то в проекте использовать. Ща поучу матчасть, погляну на примеры.
  3. Доброе время суток. В VHDL и FPGA пока новичёк. Для изучения взял кит DIGILENT NEXYS2, пишу в ISE 12.1. Как правильно настроить тактирование от внешнего генератора для XC3S500E-FG320. На плате есть генератор 50 МГц подключен на вывод "B8" GCKL8. Читаю мануалы и понимаю, что как то надо сконфигурировать использование внутренних буферов, для тактовых линий, но как и куда писать не понимаю. Подскажите пожалуйста вот мой проект Это верхний уровень library IEEE; use IEEE.STD_LOGIC_1164.ALL; -- Uncomment the following library declaration if using -- arithmetic functions with Signed or Unsigned values use IEEE.NUMERIC_STD.ALL; -- Uncomment the following library declaration if instantiating -- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity LED_Flash_top is Port ( CLK : in std_logic; switch : in STD_LOGIC; --LED_ON : out STD_LOGIC :='1'; LED : out STD_LOGIC); end LED_Flash_top; architecture Behavioral of LED_Flash_top is signal LED_in : std_logic; -- Вход сигнала светодиода signal CLK_buf : std_logic; -- Буферизированный тактовый сигнал component Counter -- счётчик generic (Stop_mean : integer := 50_000_000); port(CLK_in : in std_logic; Counter_out : out std_logic); end component; begin Count0:Counter port map(CLK_in => CLK, Counter_out => Led_in ); process (LED_in) begin if switch = '1' then LED <= LED_in; else LED <= '0'; end if; end process; end Behavioral; Это Counter library IEEE; use IEEE.STD_LOGIC_1164.ALL; -- Uncomment the following library declaration if using -- arithmetic functions with Signed or Unsigned values use IEEE.NUMERIC_STD.ALL; -- Uncomment the following library declaration if instantiating -- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity Counter is generic (Stop_mean : integer); Port ( CLK_in : in STD_LOGIC; Counter_out : out STD_LOGIC :='0'); end Counter; architecture Behavioral of Counter is signal Count : integer :=0; signal Counter_out_meta : std_logic := '0'; signal reset_count : std_logic := '0'; -- сигнал сброса счетчика begin -- process (CLK_in) -- begin -- if Count = Stop_mean -- then Count <= 0; -- Counter_out_meta <= not Counter_out_meta; -- else Count <= Count + 1; -- Counter_out_meta <= Counter_out_meta; -- end if; -- end process; -- Counter_out <= Counter_out_meta; process (CLK_in, reset_count) -- Описание счётчика со сбросом begin if reset_count='1' then Count <= 0; elsif CLK_in='1' and CLK_in'event then Count <= Count + 1; end if; end process; process(CLK_in) -- Описание компаратора begin if (CLK_in'event and CLK_in ='1') then if ( Count = Stop_mean ) then reset_count <= '1'; else reset_count <= '0'; end if; end if; end process; process (CLK_in) -- Выходной D-тригер begin if CLK_in'event and CLK_in='1' then Counter_out_meta <= not Counter_out_meta; end if; end process; Counter_out <= Counter_out_meta; end Behavioral; Это ucf NET "CLK" LOC ="B8"; NET "switch" LOC = "G18"; NET "LED" LOC = "J14"; Этот проект скомпилил загрузил bit файл в ПЛИСку при вкл тумблера светодиод загорается, а должен вроде мигать или я не прав. P.S. Заранее спасибо
  4. Да IAR уже поюзал, правда на асме более, и мелкоконтроллер уже знаком, а gcc из за духа единения, ну и может типа лицензионной чистоты совести. А eZ взял только потому, что существующий MSP430PIF к ноуту не прикрутишь запросто (думал USB->LPT переходник поискать, не нашел, уходит их эра), MSP430UIF пока нет, да и из другого eZ, я прошивалку сделал выпаяв микроконтроллер и впаяв в отверстия разъёмчик PBD10 и пронилив лобзиком корпус с ленточным шнуриком см 15 нормальная штука получилась, и в свои проекты закладываю 2 разъёма IDC-14, для MSP (TI) распиновки JTAG-а, и IDC-10 для моей распиновки SPY-BI-WIRE. С IAR-ом всё это нормально работает уже давно, а ща надо для F5437 будет писать, и полагаю за 4кБ вылезу, и лекарство для иара использовать совесть не позволяет, пробую mspgcc, если не получится сразу, для ближайшего проекта вернусь обратно в проверенный иар. Но вопрос ещё и в том если MSP430UIF так же подключать, то как он с mspgcc тогда подружится ли?
  5. Доброе время суток, Осваиваю mspgcc, беру eZ430F2013, прогу скомпилил подключил msp430-gdbproxy вот так как этого требовало описание и иконка msp430-gdbproxy --port=3333 msp430 --spy-bi-wire TIUSB устройство обнаруживается типа всё путём. Далее пытаюсь зашиться в контроллер посредством команды mps430-jtag.exe -e -l TIUSB блаблаба.elf, но выдаётся сообщение типа не может инициализироваться библиотека (port: TIUSB) Вроде в доке на mps430-jtag написано, мол с оригинальной дллкой от Техасцев должен работать SPY-BI-WIRE, с сайта обновлял дллки, не помогло Подскажите в чём тут дело или eZ не должен так работать, или я чего то не докурил? Пробовал выше описанную сборку с еклипсом, там удалось прогу записать, только как стартонуть или по шагам пойти не разобрался сразу, после передёргивания из порта тоесть жестокий сброс прога начинала работать (диодик мигал с заданной частотой и адекватно реагировал на изменение константы) возможено в клипсе работает всё иначе для этого же туда и плагин прикручивается. Можно ли подружить eZ с mscgcc через консоль? Заранее спасибо.
  6. Сам уже нашел как это делается Сбрасывается свойство редактируемости так Grid->Options >> goEditing; а опрашивается так if (Grid->Options.Contains(goEditing)), только помоему в StringGrid глюк есть или я, чёто не докурил. После манипуляций со свойствами становится возможный редактирование фиксированных строк и столбцов при вхождении на них курсора, они дублируются и могут редектироваться, хотя до манипуляций такого не происходит, может кто сталкивался с такой ситуацией как быть?
  7. Привет, всем. Тут есть интересная проблемка, как можно программно опрашивать, устанавливать и сбрасывать соответствующие свойства у компонента StringGrid в C++ Builder, конструкции интуитивно понятные типа Grid->Options->goEditing = true; не прокатывают. Подсказали мне такой вариант решения проблемы Grid->Options << goEditing; работает, но как только его выключить, т.е. сбросить не известно как, пока я сделал так: Grid->Options.Clear(); Grid->Options << goFixedVertLine << goFixedHorzLine << goVertLine << goHorzLine << goRangeSelect; работает, но не то сбравываем все в ноль, а потом устанавливаем все которые нужны, при этом я выставляю их как в инспекторе объектов, а работает не совсем как по умолчанию (до манипуляций с опциями). Да и ещё по ходу программы мне поразному надо реагировать на наличие или отсутствия свойства редактируемости таплицы, как его можно прочитать. P.S. Заранее благодарен за любой ответ.
  8. Привет, всем мысль чисто теоретическая сам я пока далёк от крупно серийного производства, ну как мне видится на моём уровне в исходном проекте константа для сериника FFFFh компилируется в определённое место с заданым адресом, далее на этапе производства шьются контроллеры с одинаковым серийником FFFFh. Далле надо прочитать slaa149b, там описан протокол програмирования и ("самая малость :-) ") написать программку для записи слова (серийника) по определённому адресу, её же можно заточить для учёта серийников и куда поставлялись изделия с определёнными серийниками. Но я понимаю, что это не просто в данном случае как никогда правильны пословицы: Суха теория, мой друг, но древо жизни пышно зеленеет. Жизнь гораздо богаче нашего воображения.
  9. MSP430 + фотодиод.

    О не точтечности ФД я какбы знаю, а секторный угол его зависит от растояния до точки падения луча, да и источник излучения не точечный да и площадка засветки тоже имеет конечные размеры и рассеиватели (капли росы) не одинаковы и хаотично расположены, вопрос то в том не в интегрировать или нет не стоит у нас всё итак имеет некоторое усреднение, а вопрос как правильно интерпретировать результат замера (интегрирующим преобразователем). (Средняя температура по больнице 36.6 C, включая тех кто в морге). Или там чисто ловится рассеянная компонента света (под каким углом к нормали? полагая, что лучь источника падает нормально к поверхности зеркала), а уровень (освещенности) срабатывания калибруется, то тут есть ещё момент, положим мы понижаем температуру зеркала, и оно достигает температуры точки росы, влага из воздуха начинает конденсироваться, но её не достаточно для срабатывания нашего порогового оптического датчика, при этом элемент Пельтье остаётся включен и температура продолжает снижаться, и когда наш датчик почуит конденсат, температура может уйти от точки росы, тут я вижу два варианта снижать мощность холодильника или как быше писали мерить аналоговый сигнал, и делать ПИД регулятор (благо дело элемент пельтье обратимый, наверняка он ещё и сильно нелинейный, в тепловом смысле). Про ПАВ а в чём там принципиальное физическое отличие от обычного кварца (АТ-среза)? Только ПАВ используют на более высоких частотах где толщина кварцевой пластинки, технологически мала и не реализуема. Говоря про кварц я имел в виду принцип обнаружения влаги причем очень чувствительный, и его можно будет использовать даже в пороговом случае.
  10. MSP430 + фотодиод.

    Привет, народ, всё здесь правильно описано, только одно на мой взгляд не очень. А именно сам подход к оптческому методу, по моим наблюдениям конденсат воды на стекле предсталяет собой всётаки остравковую (отдельные капли, зародыши) плёнку и до равномерной плёнки ей далековато, и соответственно мерить нужно рассеяную компоненту света и делать это лучше по приличному углу(матрица или линейка ФД, ПЗС), или подумать о более гидрофильном покрытии и разместить датчики под угол полного внутреннего отражения (брюстера + поляроиды) и тд, но тут есть подводные камни надо подумать. Я бы посоветовал подумать об использовании пьезорезонансного датчика массы (просто кварц в народе), См. Технология тонких плёнок, или Малов В.В. Пьезорезонансные датчики и др. могу дать сылки на другую лит-ру (). По уходу частоты на 20-50Гц (Для примерно 8MHz кварца) быстро заметено увеличение массы, единственое нужно помнить, что для жидких пленок там есть ограничение ухода частоты (dF/dm) не линейна от массы, по этому наносят силикагели. Так как он охлаждаемый можно предварительно (в эксикаторе снять его собственную ТЧХ). Сам я это не делал (измерение влажности) просто в своё время занимался пьезорезонансным микровзвешиванием в вакууме. Если я в чём не прав поправьте.
  11. Не совсем понятна идея с индуктивностью, насколько я понимаю проц потребляет не совсем постоянный ток, и его потребление зависит от загрузки и вытекающего тока на выводах, и что мы получим у нас будет плавать напряжение на каждой ножке питания (в зависимости от динамики токовой нагрузки) независимо от других, и в один прекрасный момент произойдёт просадка по питанию когда вы чёнибудь будете резко обрабатывать, и проц уйдёт в нирвану, а ёще там напруга будет скакать с каждым тактом проца, без емкостей я думаю не обойтись. Не боитесь с водой ребёнка выплеснуть? или так за что боролись на то и напоролись? Про расчёт печатных индуктивностей давненько писали в РАДИО, и ещё тут на 367 стр. есть похожее на то что вы ищите. http://lord-n.narod.ru/download/books/wall...v_OCR.part1.rar http://lord-n.narod.ru/download/books/wall...v_OCR.part2.rar
  12. кнопки для MSP430

    Если я правильно понял вы хотите, включать контроллер кнопкой для выполнения рутинной операции при нажатии и удержании кнопки. И боитесь подвеса конроллера от дребезга контактов. Вариант с емкостью отцените следующим образом, на сколько просядет напряжение питания контроллера за время (размыкания цепи при дребезге) вашего контакта, я бы взялбы 1mS, но с запасом можно 10mS. При токе потребления вашей схемы. Отценив следите чтобы оно не снизилось ниже порога сброса (см. описание про сброс.) Например C=0.1 uF, I=1mA, tau=1mS. dU=I*tau/C, при таком токе потребления dU=10 V, соответственно есмость разрядется и произойдет сброс. При C=2.2 uF, I=250uA, tau=1mS. dU=0.114 V пусть Uпит=3V минимальное напряжение будет 2.886, и сброса вроде быть не должно. Я бы подумал о, таком варианте контроллер в самом спящем режиме ест вроде 0.1uA, мало, говорят меньше тока саморазряда батарей, при нажати клавиши вы его будите (например прерыванием), из сна он выходит за 6uS, далее сразу после обработчика или в нёмже спрашиваете состояние клавиши через 20mS, если нажато, то выполняете своё действие и спать. Для включения питания внешних цепей можно подумать про ключ верхнего плеча (но у него тоже могут быть утечки) или запитать от вывода(ов) (до 1 mA на вывод).
  13. Здравствуйте, скажу сразу в ПЛИС я пока делитант. Есть в природе Сигма-дельта модулятор (АЦП) AD7401. После него, должен быть цифровой (децимирующий его ещё так называют) фильтр, типа (Sin(x)/x)^3. В её даташите пример на Verilog привожу ниже AD7401.pdf: /*`Data is read on negative clk edge*/ module DEC256SINC24B(mdata1, mclk1, reset, DATA); input mclk1; /*used to clk filter*/ input reset; /*used to reset filter*/ input mdata1; /*ip data to be filtered*/ output [15:0] DATA; /*filtered op*/ integer location; integer info_file; reg [23:0] ip_data1; reg [23:0] acc1; reg [23:0] acc2; reg [23:0] acc3; reg [23:0] acc3_d1; reg [23:0] acc3_d2; reg [23:0] diff1; reg [23:0] diff2; reg [23:0] diff3; reg [23:0] diff1_d; reg [23:0] diff2_d; reg [15:0] DATA; reg [7:0] word_count; reg word_clk; reg init; /*Perform the Sinc ACTION*/ always @ (mdata1) if(mdata1==0) ip_data1 <= 0; /* change from a 0 to a -1 for 2's comp */ else ip_data1 <= 1; /*ACCUMULATOR (INTEGRATOR) Perform the accumulation (IIR) at the speed of the modulator.Z = one sample delay MCLKOUT = modulators conversion bit rate */ always @ (posedge mclk1 or posedge reset) if (reset) begin /*initialize acc registers on reset*/ acc1 <= 0; acc2 <= 0; acc3 <= 0; end else begin /*perform accumulation process*/ acc1 <= acc1 + ip_data1; acc2 <= acc2 + acc1; acc3 <= acc3 + acc2; end /*DECIMATION STAGE (MCLKOUT/ WORD_CLK) */ always @ (negedge mclk1 or posedge reset) if (reset) word_count <= 0; else word_count <= word_count + 1; always @ (word_count) word_clk <= word_count[7]; /*DIFFERENTIATOR ( including decimation stage) Perform the differentiation stage (FIR) at a lower speed. Z = one sample delay WORD_CLK = output word rate */ always @ (posedge word_clk or posedge reset) if(reset) begin acc3_d2 <= 0; diff1_d <= 0; diff2_d <= 0; diff1 <= 0; diff2 <= 0; diff3 <= 0; end else begin diff1 <= acc3 - acc3_d2; diff2 <= diff1 - diff1_d; diff3 <= diff2 - diff2_d; acc3_d2 <= acc3; diff1_d <= diff1; diff2_d <= diff2; end /* Clock the Sinc output into an output register WORD_CLK = output word rate */ always @ (posedge word_clk) begin DATA[15] <= diff3[23]; DATA[14] <= diff3[22]; DATA[13] <= diff3[21]; DATA[12] <= diff3[20]; DATA[11] <= diff3[19]; DATA[10] <= diff3[18]; DATA[9] <= diff3[17]; DATA[8] <= diff3[16]; DATA[7] <= diff3[15]; DATA[6] <= diff3[14]; DATA[5] <= diff3[13]; DATA[4] <= diff3[12]; DATA[3] <= diff3[11]; DATA[2] <= diff3[10]; DATA[1] <= diff3[9]; DATA[0] <= diff3[8]; end endmodule Так вот вопрос в том, что есть в коминтарии сторока (она выделена) мол нуль подменяется -1, а самой какбы подмены нет, (иначе если суммировать единицы и нули) при таком интегрировании будет переполнение регистров ACC1,2,3 и на выходе АЦП будет зашкал в определённый момент времени, причём этот скачёк будет периодичен. Или я что, то не правильно понял. Вопрос второй на какой ПЛИС это пойдёт. P.S. Заранее благодарен всем за участие.
  14. ADC16 в MSP430F427IPM

    Этот фильтр используют, что бы получить приемлемое близкое к максималному разрешению 2^16, от числа записаного в OSR будет зависеть АЧХ вашего преобразователя по соответствующей формуле (ну и конено обратите внимание на нули АЧХ если надо от сети отфильтроваться то ноль на 50Гц или 60Гц, если вы на западе), ну конечно полоса при этом будет около 20 Гц тут есть делема или скорость или точность (колличество эффективных не шумящих разрядов). Про это можно глянуть в Datasheet на AD7714 стр 22 (там и порядок фильтра как в SD16) или ADS1256 стр 19. про принцып АЦПирования http://www.efo.ru/doc/Silabs/Silabs.pl?2089#n3. P.S. Интересуетесь фотром?
  15. Переезд с IAR 3.2 на IAR 3.41

    Всем привет, тут проблемка образовалась А именно, писал я программку на ассемблере в IAR 3.2 она работала всё путем, потом поставил IAR 3.41, но както возникла необходимость снова влезть в тот старый проект, подцепил кристалл, делаю Debug, а он матерится на стек и посылает в Tools>Options. Вопрос чё делать, в IARе я пока не очень разобрался. P.S. Заранее благодарен за помощь.
×
×
  • Создать...