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

AndreyVN

Свой
  • Постов

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

  • Посещение

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


  1. Во первых, в рекламе про издевательства ничего не говорилось. Во вторых, 100$ в России по-прежнему приличная сумма, а риски что "что-то не пойдет" так же присутствуют. В третьих, лет 10 назад спорил с американцем. Я тогда научился делать самодельные катоды для масс-спектрометра, ну и похвалился об этом, а он мне и говорит: "это здорово, но твои катоды хуже фирменных и возиться с ними долго, это неэффективно!" А я ему отвечаю, у меня нет задач, я сам их себе выдумываю, сам же решаю, моя эффективность никому не интересна.
  2. ОК, но это на потом, нужно с протоколом разбираться, наверняка там присутствует CRC которое генерить руками особенно приятно. :) Нашел описание на китайском. :-) Рекомендуют студию 4.18, JTAG вроде-как V3. Может, кому-то полезно будет (хоть и не работает, но 10$ стоит):AVR_USB_JTAG.pdf
  3. У меня и есть четвертая студия, пока не удалось разглядеть JTAG, ни в режиме Auto, ни в режиме явного указания виртуального COM порта.
  4. http://www.ebay.com/itm/AVR-USB-Emulator-d...=item3a7a75a2ac Вчера нашел на сайте продавца драйвер, удалось установить виртуальный COM-порт. Искать нужно "OT-827" к стати, на самом устройстве такой маркировке нет. Теперь, при втыкании USB JTAG в системе появляется виртуальный COM порт. Однако, AVR студия по прежнему JTAG не видит, попробую установить более позднюю версию студии.
  5. Как бы узнать, какой JTAG у меня? (Купил-то я его недавно, но уверенности в версии 2/3 все равно нет.) Помимо AVR, нет программных средств доступа к самому JTAG?
  6. Как протестировать JTAG ICE?

    Всем привет! Как протестировать JTAG ICE (Китай)? Понятно, что никаких бумаг в комплекте не было. Пока нашел в AVR Studio меню ICE Selftetst, результат такой: Может есть какие-то более расширенные средства диагностики? И вообще, должен JTAG видется, когда он не подключен к отлаживаемому девайсу?
  7. Всем привет! Народ, как думаете, можно-ли использовать широкополосный трансформатор на входе анализатора импульсов ФЭУ? Импульсы (длительность ~10 мкс.) поступают через коаксиал с выхода предусилителя, смонтированного в блоке ФЭУ. Трансформатор хочется поставить, чтобы решить сразу 4 задачи: 1) Согласовать вход анализатора с волновым сопротивлением кабеля; 2) Перевернуть амплитуду входных импульсов; 3) Обеспечить заданный коэффициент деления (12В поделить до 5В) 4) Транс будет красиво смотрться на плате :-) . Однако, гложут сомнения по поводу точности преобразования амплитуды импульсов, можно рассчитывать на ошибку, ну например, в пределах 10%?
  8. Всем большое Спасибо! Расклад приблизительно понятен.
  9. Что нельзя мыть в ультразвуковой бане? Кварцы, электролиты - можно?
  10. Опять WatchDog Timer

    "Слепить две в одну"- я добавил от себя, а код внизу и совет по поводу отключения оптимизации попался в документах Atmel, где именно уже не вспомню. //FuseBits: WDTON=1 MC103=1 void WatchDogStart() { StringPrepare("WDT On"); Scroll(); ScrollUpdate(); #asm("wdr") //сбросить сторожевой таймер #pragma optsize- WDTCR=0x1F; WDTCR=0x0F; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif }
  11. Опять WatchDog Timer

    Лазил по документам Atmel, советуют перед последовательностью присвоений WDTCR=0x1F; WDTCR=0x0F; запретить оптимизацию кода, иначе компилятор может две команды в одну слепить. Однако, пока ничего не получилось, не заводится WDT. Работает только вариант включения WDT через Fusebits WDTON=0. Тут все работает на ура, собачий таймер стартует по включению питания экран моргает как бешеный. Но меня этот режим не устраивает, мне надо включать таймер, только в том случае, если регистратор запущен на длительный режим сбора данных. В остальное время услуги собаки не требуются. У меня в CodeVision библиотеки wdt.h нет. Можно её где-то скачать? Эта фраза не понятна, в Fusebits можно выбрать разные режимы безопасности, но во всех режимах можно включить WDT командой или последовательностью команд. Может помимо WDTON и MC103 есть еще какой-то Fusebits, влияющий на работу WD-таймера, который я не заметил?
  12. Опять WatchDog Timer

    Насколько я понял из описания, бит WDCE=1 разрешает изменение состояния "собаки" и сбрасывается аппаратно через 4 цикла. То есть, мой вариант манипуляции с WDTCR, вроде должен быть работоспособен. Попробую как Вы советуете... Fusebits активируются нулевым уровнем. Единичка соответствует значению Unprogrammed.
  13. Опять WatchDog Timer

    В коде программы команд сброса сторожевого таймера нет вообще, инициилизирую WD-таймер, хочу увидеть, как каждые 2 секунды будет моргать экран и инициализироваться меню, однако, после инициализации WD-таймера ничего не происходит. Что я упустил? Процессор Atmega64 Fusebits: WDTON=1 MC103=1 void WatchDogStart() { #asm("wdr") //на всякий случай сбросить сторожевой таймер WDTCR=0x1F; //WDCE=1, WDE=1, делитель 2 сек. WDTCR=0x0F; //WDCE=0, WDE=1, } void WatchDogStop() { #asm("wdr") //сбросить сторожевой таймер WDTCR = 0x1F; //выключить сторожевой таймер WDTCR = 0x00; }
  14. Читаю сектора вот так: // Прочитать содержимое буфера в переменную Sector из MMC карты // N-номер сектора //----------------------------------------------------------------------------- void SDReadSector(unsigned long int N) { char rsp,rsp1; short int crc; SPCR = 0x50; //0x50 fclk/4; 0x51 fclk/16; 0x52 fclk/64 SPSR = 0x00; // //for(i=0; i<512; i++) Sector[i]=0xEE; if(!BlockAdressMode) Adr = N*512; //Адрес начала сектора, побайтная адресация else Adr=N; //Блочная адресация rsp = MMC_cmd(CMD17, (unsigned int)(Adr>>16),(unsigned int)(Adr&0x0000ffff), 0xFF); //CMD17 Read a block from specify addr if(rsp){ SD_init(); //Если rsp!=0x00 будим карту снова rsp = MMC_cmd(CMD17, (unsigned int)(Adr>>16),(unsigned int)(Adr&0x0000ffff), 0xFF); } if(!rsp) rsp1 = MMC_read(512); //Заполним массив Sector[] if(!rsp1){ StringPrepare("Block read Err."); Scroll(); ScrollUpdate(); } PORTB |= MMC_CE_PIN; //MMC-disable //StringPrepare("CMD17 "); HexToStr(rsp, 7); Scroll(); crc = MMC_crc16(&Sector[0], 512); if(crc1!=(unsigned char)(crc >> 8) || crc2!=(unsigned char)(crc & 0xff) ){ StringPrepare("CRC Err "); HexToStr(crc1, 5); HexToStr(crc2, 8); Scroll(); ScrollUpdate(); } } PS: Код писал около года назад, помню, что многие проблемы решились после того, как добавил расчет CRC по спецификации CRC является обязательной только для команд иницилизации, потом может быть отключена.
  15. Извините, если повторюсь, всю тему не дочитал... Что мешает сделать резистивный делитель из 10-20 резисторов 1%, на каждом будет падать 1/10-1/20 высокого напряжения и измерять операционником без гальванической развязки? Я такое видел для измерения потенциала 3 кВ.
  16. Конкретно интересует Atmega 64, под корпусом осталась паяльная паста, которая немного ползала туда сюда при деформации платы и подкорачивала то одну группу выводов, то другую. Снаружи ничего не видно. Забавный дефект, не сразу понял что происходит. Собствено, проблему решил, прогрел корпус феном с насадкой для TQFP 64 при 280С в течении 60 секунд. Но хотелось бы видеть что-то вроде Absolute Maximum Rating для условий пайки.
  17. Раньше как-то не задавался этим вопросом, кто знает где в datasheet увидеть какие условия пайки рекомендует производиттель? Это однозначно связано с типом корпуса и каким-нибудь стандартом JEDEC? Вот, например, вижу в Datasheet storage temperature -85...150 C, а насчет пайки - ничего.
  18. Раз уж про ванны заговорили, подскажите, pls, какие растворители используете?
  19. Проще всего, бросить в лист камень. Вы бы пояснили, 1) почему до вашего листа нельзя добраться приборами; 2) какого рода дефекты необходимо контролировать. Акустический метод потребует построить мат модель распространения волны в решетке с дефектами именно для вашего листа. Честно говоря, не знаю, реализован такой метод в коммерческих приборах или нет (2 AndrewN: это не УЗИ, это "звон колокола с трещиной и без").
  20. Найти дифур по известной временной реализации? Задача очень интересная, но к методам многомерной статистики отношения не имеет. Общих подходов к восстановлению дифуров, думаю, нет. Я бы мыслил в сторону сравнения фазовых портретов неизвестного процесса и известных уравнений.
  21. Значит, это не ваша задача. Могу посоветовать акустические методы, распространение звука в металле зависит от наличия неоднородностей. Возбудить волну можно дистанционно, а вот измерить отклик скорее всего только контактно.
  22. Скорее возрастать, в местах дефектов кристаллических решеток возникают очень сильные поля молекулярных масштабов. Помимо неоднородностей, фотоэфект сильно будет зависеть от химической чистоты поверхности, причем непредсказуемым образом. Я не специалист в этой области, но видел дефектоскопы (поверхность и скрытые дефекты) основанные на измерении неоднородности намагниченности.
  23. 1) В такого рода задачах нужно определиться с пространством описания - набором переменных, описывающих ваши объекты (интервалы запаздывания, спектральный состав ЭКГ и т.п.) Пространство описания выбирается исходя из догадок о физике неизвестного вам объекта. 2) Если возможны обучающие выборки, то есть, сопоставление известного свойства объекта (например, ЭКГ сотни потомственных дебилов) и измеренного отклика, то пользуются методами распознавания образов (кластерный анализ, дискриминантный анализ и т.п.). В результате обучающей выборки вырабатывается решающее правило, позволяющее классивфицировать неизвестный объект. Все это называют многомерной статистикой. Пространство описания за вами, остальное описано в книгах и алгоритмизовано, например пакет StatGraph. Со 100% вероятностью так говорят те, кто писал-писал, да так и не дописал. В рамках работ по многомерной статистике были проанализированы тысячи химических соединений для поиска закономерности "структура- биологическая активность" и разработаны новые лекарства и ... сами догадайтесь, что еще.
  24. Ну для проверки - прокатило, только пришлось добавить обращение к dummy[]: static eeprom char dummy[100]={0,0,0,0,0,0.....,0); ... dummy[01]=0x01; Только после всего этого две ошибки (ловятся compare EEPROM) переехали на другие адреса... Фигня какая-то... Пытаюсь разобраться...
  25. Как явно задать адреcа EEPROM

    Всем привет! Попался процессор Atmega64 в котором не прошиваются 2 адреса EEPROM 9h и 30h. Процессор менять не хочется, как бы сдвинуть все адреса в EEPROM и перекомпилить исходник? Вижу вариант сделать фиктивный массивчик (программа на 'C' в CodeVision) типа char eeprom dummy[100]; в надежде, что компилятор поместит его вначале EEPROM. Есть другие варианты?
×
×
  • Создать...