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

sbw

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

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

  • Посещение

Репутация

0 Обычный

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

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

Контакты

  • ICQ
    Array

Информация

  • Город
    Array
  1. Есть предположительно неисправный сервопривод Sanyo Denki BL Super Servo Amplifier Model 65BA030DDK02, и двигатель к нему 65BM030HXE00, с энкодером. Нет никакой документации :( Симптомы: двигатель крутится, но, предположительно, не так, как надо - вроде бы рывками (я не видел, как он должен крутиться "как надо"). Довольно быстро нагревается в состоянии, когда ему не нужно крутиться, и через несколько минут после включения срабатывает защита по перегрузке или перегреву - перестает крутиться, и на приводе загорается светодиод "OL" Осциллографом видно, что напряжение обеих полярностей между разными фазами есть, но как оно должно выглядеть "правильно" - не известно. В положении останова на фазы подаются короткие импульсы. Гугление ничего не дало - привод старый, середины 90х. Был бы рад хоть какой-нибудь документации на подключение управления этим приводом, ну и советам по ремонту. На выходе привода стоит, предположительно, здоровый IGBT мост или транзистор. Двигатель, говорят, проверяли - он вроде бы в порядке.
  2. не, тогда бы светодиод мигал - между моментом сброса, когда порты отключены от нагрузки, и моментом инициализации порта, когда на него выставляется "1" для светодиода, должно проходить время тайм-аута WDT. А он горит постоянно.
  3. В прерывании готовности АЦП. Прерывание - freerun. Причем ресетится вочдог после выставления уровня на ноге. В этом же прерывании происходит передача по SPI. // отправить байт по SPI if (data_command == command_) { data_command = data_; if (transfer_address <= max_channel) // если номер канала в пределах массива { PORTB &= ~(1<<packet_control); // ~SS = 0 - начать передачу SPDR = transfer_address; // послать 1й стартовый ноль или адрес } // если за пределами массива - ничего не посылаем } else // data_command = data_ { data_command = command_; if (transfer_address == 0) { SPDR = 0; // второй стартовый ноль transfer_address++; // увеличить номер канала } else { if (transfer_address <= max_channel) // если номер канала в пределах массива { SPDR = ch_levels_address_send [transfer_address-1]; // послать уровень канала transfer_address++; // увеличить номер канала } else // if transfer_address > max_channel { PORTB |= 1<<packet_control; // ~SS = 1, завершить передачу transfer_address=0; ch_levels_address_temp = ch_levels_address_change; // переписать указатели на массивы ch_levels_address_change = ch_levels_address_send; ch_levels_address_send = ch_levels_address_temp; wdt_reset(); // <<<<<<<<<<<<---------- WD reset } } } переменная transfer_address в другом месте не обнуляется, только при старте программы. Состояние после зависа - уровень 1 на ноге выставлен, передачи нет (ни данных, ни клока). Когда происходит просто сбой - то ощущение, что меняется код программы: часть данных передается, а часть - нет. Или будто бы память (в котором хранится массив на передачу) запорота и не обновляется. если бы проходил - была бы передача по SPI, чего не наблюдается осциллографом. Забыл добавить, что мега работает от внешнего кварца 16мгц. Грешил на него - менял, менял конденсаторы обвязки. Но после того, как переключил на внутренний RC и оно зависло все равно - "опустились руки". Завтра попробую поменять мегу, она "не свежая" была, выпаяна из другого проекта.
  4. Проц atmega48PA вводится в Power Down режим: SMCR = (2<<SM0); // power down sei (); sleep_enable (); sleep_cpu (); // заснул // ждет прерывания sleep_disable(); // проснулся Эта последовательность команд вызывается внутри прерывания по переполнению таймера 0. Внешнее прерывание настроено так: void ext_int_init (void) // инициализация внешнего прерывания { EICRA = (3<<ISC00); // The rising edge of INT0 generates an interrupt request. EIMSK = (1<<INT0); } Прерывание (вне режима сна) работает правильно. В пдф-е сказано, что в режиме power down внешние прерывания могут быть только типа level, поскольку входные буфера не тактируются. На входе INT0 у меня "0", и будится импульсами "1" (порядка 1-4мс). Проверял, действительно ли в power down: насколько я понимаю, да, потому что таймер-счетчик стоит. Где я ошибаюсь? Кто сталкивался, кто посоветует? Понимаю, что вопрос может быть даже чисто теоретический, правильно было бы использовать Pin change int и не морочить никому голову, но все же хочется полного понимания процесса, потому что ошибка может закрасться совсем в другом месте.
  5. Столкнулся с ситуацией, когда виснет устройство (на mega32), причем так, что включенный WDT его не ресетит. Уже несколько дней извел на понимание проблемы, но пока безрезультатно. Иногда не виснет, а глючит (однократный сбой). BOD включен, WD включен... Процессор еще не менял, но до сих пор мне сбойные не попадались. Так что я бы советовал ставить внешний супервизор со своим таймаутом и пинать его от ножки проца.
  6. Спасибо за эту мысль! Провозился больше дня... Да, в доке это есть, но в виде примечания под примером, мимо которого я все время проходил (а просто тупо повторить пример, не понимая, что делаю, гордость не позволяла): Note: If the Watchdog is accidentally enabled, for example by a runaway pointer or brown-out condition, the device will be reset and the Watchdog Timer will stay enabled. If the code is not set up to handle the Watchdog, this might lead to an eternal loop of time-out resets. To avoid this situation, the application software should always clear the Watchdog System Reset Flag (WDRF) and the WDE control bit in the initialization routine, even if the Watchdog is not in use. то есть, если флаг не сброшен - вачдог не отключишь. Неочевидная фигня. У меня эта ситуация возникла от того, что зашиваю проц одной прошивкой, в которой возникает событие "переполнение таймера вачдога и сброс по нему", а потом следом за ней - без передергивания питания - другой прошивкой, в которой вачдог перед sleep отключается. И в момент отключения вачдога (стандартная winavr-ная библиотечная процедура) генерится ресет... А если питание передернуть - этого не происходит (WDRF очишается)
  7. А писал на основе чего-то, или "с нуля", свою совсем?
  8. А можете мне дать ссылку на эти сорцы? стоит задача сделать плату PCI на этом же 3м циклоне Ели это в квартусе прошивка? А как ее сделать "долгоиграющей", то есть не ограниченной по времени?
  9. Почему-то мне не удалось зарегистрироваться на сайте марвела и получить доступ к бОльшей документации, они мне написали, я не понял этого момента насчет NDA: You indicated on the registration form that you either don't have a Marvell Non-Disclosure Agreement (NDA) on file with us, or that you were unsure. Because of the confidential nature of the information you can access from the Extranet, you do need to be under an NDA to use the site. You'll be contacted shortly by a Marvell Sales Representative to confirm your NDA status. If you don't have an NDA on file, you will be provided with one to complete. Может я просто попрошу Вас где-нибудь выложить ту доку, что у вас есть по этим чипам? А на отладочные платы документация (точнее, схема) есть?
  10. Спасибо. Посмотрел - вроде бы он дороже Техасов, его меньше продают и корпус больше (больше шариков), все тот же BGA :( Спасибо, интересный вариант! Особенно в плане корпуса, так так я в TQFP ничего другого не находил, и цена хорошая (в пределах 10$). Смущает вот что: На сайте пдф только в состоянии "Preliminary": Doc. No. MV-S104870-U0, Rev. B February 27, 2008, Preliminary И нет ни одной аппликухи. На efind-е нет ни у кого этих микросхем на складе (в россии), только от нескольких недель. Доставаемо ли оно? И есть личный опыт их применения? Одна из проблем применения всех этих мостов и PHY в том, что они все (кроме Марвела) BGA, а это сразу увеличивает стоимость печатной платы (в разы), сложность изготовления и ремонта.
  11. Спасибо, это обнадеживает :) Вопросы: переходник делали сами? Сколькислойная печатная плата получилась? Где и почем покупали чип?
  12. Спасибо за ответ. но Spartan - это же Xilinx, значит, прошивку прийдется сначала еще и на VHDL переводить? Альтеровский Cyclone III PCI-express не потянет? Изначально предполагалось воспользоваться им, но что-то я посмотрел и увидел, что альтеровские разве что Arria и Stratix используются в примерах, а это уже другой ценовой диапазон.
  13. стоит задача переработки (переноса) готового PCI устройства, которое сделано на альтере EP1K100 (прошивка на AHDL) на шину PCI express. Посоветуйте, что смотреть, куда копать, о чем и где читать. Какие альтеровские чипы работают с экспрессом? (предполагается x1) Где почитать про сам стандарт шины PCI express? Что из чипов еще нужно будет ставить для совмещения альтеры с шиной? Буду рад любым советам :)
  14. Нет, я посмотрел этот bay.ru - это не вариант. они цену накручивают вдвое :( Уж дешевле самому купить и растаможить. Вот, для сравнения: http://www.bay.ru/index.php?pageID=102&amp...ktronix+tds-210 там два лота: Tektronix TDS 210 w/ Communication Module 2Chan #397 26.208,00 руб Tektronix TDS210 Digital Storage Oscilloscope TDS 210 21.340,80 руб смотрим это же, на настоящем ебее: http://search.ebay.com/search/search.dll?f...&category0= Те же лоты: Tektronix TDS 210 w/ Communication Module 2Chan #397 BuyItNow= $675.00, Shipping to USA= $25.00 Storage Oscilloscope TDS 210 Текущая цена=$200.00, BuyItNow= $470.00, Shipping to USA= $100.00, до конца аукциона осталось 5d 22h 54m. А вообще, всего на американском 8 лотов плюс 5 в store. Каких годов - посмотри сам на тектрониксе, я не обращал внимания. Не 80х, наверное :))
×
×
  • Создать...