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

N1X

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

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

  • Посещение

Репутация

0 Обычный

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

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

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

1 146 просмотров профиля
  1. В моем случае кстати SLC, и на самом деле все более менее не плохо. Взять микросхем с запасом, и все должно быть ок, но интересно копнуть глубже все же... По поводу замены типа микросхемы тоже не все просто. Драйвер читает идентификатор и с незнакомой вообще может не заработать... В частности у меня эти платы есть и с samsung и с hynix, так вот дампы сырые не взаимозаменяемы, там spare area чуть по разному разбита, если я правильно помню, соответственно загрузчик работать может и с той и с той, но формат хранения разный... Хотел попробовать на рабочей платке разметку nand глянуть, но там telnet отключается, видимо где-то в конфигурации прописано. А если живо только ядро - telnet работает )
  2. Случилась необходимость в ремонте/копировании старой железки, есть частичный успех, но ввиду недостаточного опыта с Windows CE не могу пока разобраться до конца. Железка построена на Intel XScale PXA255. Память - две микросхемы Flash. Загрузчик в NOR, ОС и файловая система в NAND. Путем реверса загрузчика разобрался как достать из NAND образ ОС в формате srec_msbin и как записать его в чистую NAND. И вот здесь собственно всплыл нюанс. Собственно почему ремонт: бывает слетает NAND. В этом случае я могу через загрузчик и TFTP залить этот образ и железка оживает. Это происходит т.к. файловая система жива (файлы прикладного ПО лежат в примонтированных на определенную папку разделах NAND). А вот если залить в чистую NAND, то ОС начинает грузиться, и файловая система поднимается в RAM. Т.е. я могу подключиться через FTP либо Telnet (это промышленная железка без экрана/клавиатуры), залить туда файлы проекта, запустить их и они работают. Однако после перезагрузки все это исчезнет и опять останется голая ОС. Собственно в чем вопрос: я правильно понимаю, что FAT в WinCE базируется на Flash Translation Layer, который должен являться частью образа системы? Я пришел к тому, что у меня нет разделов в NAND, соответственно если их создать и смонтировать, смогу скопировать на них нужные файлы и получу рабочую систему. Сейчас я могу залить сырой полный дамп NAND программатором и все начинает работать как должно. Но это немного костыльное решение (например если NAND будет с битыми блоками в неудачном месте то этот вариант не заработает). Я к чему с этим опусом: пока сам ковыряю неспешно, но возможно есть кто с опытом в разработке под WinCE и пнет в нужном направлении. Нашел BSP от Toradex под их одноплатники на PXA255, в частности драйвер NAND там вроде тоже есть (у них похожие SLC NAND, правда не знаю так же подключены к процу, или нет), родного BSP (одноплатник Compulab) к сожалению нет. Есть ли разумный шанс, что этого достаточно, чтобы с помощью Platform Builder сделать небольшую программку, которая позволит разметить NAND? Могу ли я где-то в файлах WinCE найти лог загрузки (возможно это стандартный инструмент, о котором я не знаю)? (возможно там будут какие-то сообщения об ошибках инициализации NAND) В консоль к сожалению вывода нет. Как только загрузчик запускает ядро вывод прекращается...
  3. Это для себя/хобби, или попытка в серию поставить? Т.к. готовых красивых решений уже масса, и конкурировать с ними будет не просто... В частности есть куча плат MESA для LinuxCNC, в частности у меня отлично работает MESA 7i92 - интерфейс ethernet, соответственно гальванически отвязана от ПК, кабель любой разумной длины и нет проблем с помехами, есть варианты и PCI и PCI-E. Для Mach тоже куча всего есть... Даже если хочется делать свое - посмотрите как сделано у них. А от LPT все потихоньку уходят, т.к. там и джиттер при генерации шагов, из-за отсутствия реалтайма нормального, и низкая частота шагов и т.д. и т.п.
  4. Там под картинкой есть заметка "Входные и выходные паразитные диоды не могут быть использованы как фиксирующие", а те которые для гашения выбросов таки сплошной нарисованы...
  5. Манганин имеет большое удельное сопротивление, и в отличие от нихрома еще и паяется )) За этим он там стоит (именно куски голого провода с желтоватым отливом). Стоит он там для того, чтобы сбалансировать токи транзисторов, иначе часть из них работает с перегрузкой, часть с недогрузкой (технологический разброс параметров неизбежен), а т.к. у них положительная зависимость тока коллектора от температуры перехода, и если один перегружен, то он начинает греться больше других, соответственно ток через него растет, получается этакая положительная обратная связь, в итоге он выходит из строя... Как выход - общий радиатор, который вносит свой вклад в балансировку температуры, плюс малоомные резисторы (в данном случае куски манганина).
  6. Манганин там есть. От каждого транзистора к силовой шине. Отрезки провода сантиметра по 3. Может до Вас их уже выкинул кто-то? :) А что значит "Действительно - другое дело"? я не вслепую сказал, бываю там регулярно и общаюсь с человеком который эти ключи ремонтирует... Плюется только на то, что транзисторы друг к другу подбирать нужно... По поводу вылетов в целом - "месяцами" это хороший показатель для моего завода, т.к. есть у нас и Бош, и Мезоматик, и БУ3609, и еще много чего... Реально нормально работают только SIMODRIVE 611, SINAMICS S120, Fagor, и прочие, у которых другое поколение и возраст не 20 лет, а 5-7... Возможно у нас и у Вас просто все слишком по разному...
  7. Окай, тогда еще вопрос: достаточно ли в бустере просто предохранителя по выходу, в смысле выходной диод Шоттки выживет пока вставка будет плавится, или все равно необходима какая-то схема защиты от КЗ? UPD: Хотя зря спросил, открыл даташит и сам ответил на свой вопрос...
  8. Ну про холл это я наполовину в шутку... хоть люди и делали так датчики, но по мне решение как-то не очень (именно пилить не хочется)... По поводу решения: вопрос был не в выборе топологии... С другой стороны у меня нет оснований Вам не верить, а так как своего опыта у меня явно не густо, то я может и вернусь в бустеру (раньше планировал применить именно его, просто делал чоппер 24/12-20А (реально 20 он так и не выдал, давал что-то в районе 15), дроссель получился довольно массивный (на Ш-образном магнитопроводе) и я решил что двухтакт будет компактнее... Но просто учитывая что есть готовый корпус-радиатор с установленными там трансформатором и выходным фильтрующим дросселем, то стоит ли переделывать готовые моточные? Тем более что сроки не жмут и лишним опыт не бывает...
  9. Основная причина - готовая силовая часть... Есть преобразователь для заряда батареи 2x12В аккумов в авто с 12-вольтовой бортовой сетью. Но там ВАХ соответственно падающая... Управление собрано на К1401УД1, и чем там разбираться так я решил что мне проще поставить свою плату... с какими-нибудь IRF540N вместо спараллеленных 837Д... И кстати бустер получается больше по габаритам, т.к. пуш-пулл получается в 2 раза меньше по мощности... по сути 120Вт вместо 240... (включение как вольт-добавка)... PS: с датчиками тока тоже облом вышел ) их уже у нас тоже нет нифига. Поизвращаться разве что ферритовое кольцо распилить и холл туда вставить )
  10. А вот про датчики тока реально ЗАБЫЛ! тем более, что они у нас были... Спасибо за идейку ) надо будет глянуть почем сейчас...
  11. Запитать выходным думал, но смущает поведение схемы при КЗ на выходе.... Кажется мне что ОУ может не хватить питание и токоограничение не отработает... По поводу всяких спец микрух - я не профессиональный разработчик, которые партию несколько сотен закажет, а в розницу у нас даже банально rail-to-rail операционников нет, которые тут возможно и работали бы, так как у них Vicm может быть равно Vcc+
  12. С одной стороны хочется обойтись общедоступными компонентами , с другой понимаю, что иногда желание и реальность взаимоисключают друг друга ) Уже думал воткнуть MAX4372 и забыть, так его у нас банально не купить...
  13. Делаю преобразователь 12/24. Необходимо организовать ограничение выходного тока в районе 10А. По понятным причинам в минус шунт ставить нельзя, приходится в плюс. Преобразователь делается по схему пуш-пул 12В/12В, выход которого включается как вольтдобавка к бортовой. Управление - TL494. Решил использовать шунт 0,01 Ом. Токоограничением будет управлять второй усилитель ошибки TL494, на который будет подаваться усиленный с шунта сигнал. Предварительный усилитель на LM358. Т.к. она питается от той же рейки в которой стоит шунт, то синфазный сигнал не вписывается в ее входной диапазон. Я нарисовал примерно вот так: Насколько это вообще адекватно, и может быть есть более правильные решения? (подозреваю что второй усилитель может быть и не нужен, возможно будет достаточным использовать сам усилитель ошибки в дифференциальном включении... Просто интересен именно верный подход к организации входных цепей)
  14. А что все так грешат на этот бедный "Размер"? отличный привод вполне в плане ремонтопригодности, если ремонтная служба более-менее нормально организована... У меня десятка полтора 16А20 с ним на обслуживании... Как правило если останавливается станок с этим приводом, то запустить его в 80% случаев удается за 30 минут максимум, а если с приводами постоянного тока (у нас болгарские КЕМ***) то начинается перепаивание плат, тыкание осциллографом и вызванивание мегометром тиристоров... Другое дело, что мы меняем модули, а ремонтом их занимается лаборатория... Извините конечно, что ничего не сказал по теме (я эти ключи поверхностно знаю), просто реально неприятно когда начинают дерьмом поливать весьма достойные вещи... Ну не научились тогда еще делать биполярные кирпичи по 100А с подходящими параметрами, вот и пришлось гроздья 839 через куски манганина включать, но оно работает! реально месяцами работает. Вылетать начинает только когда косяк какой-то...
  15. Прошу прощения если не в тему, но если нужна привязка ко времени и есть свободный аппаратный таймер, то не проще ли так? /***************************************** Модуль таймеров Автор: N1X Дата: 09.2011 ******************************************/ #ifndef TIMERS_h #define TIMERS_h #include <iostm8s105c4.h> #define MAXLTIMERS 2 //Кол-во программных таймеров //Список локальных таймеров: #define LCD_LTIMER 0 //Имена для упрощения ))) кому как больше нравится, можно enum прикрутить #define MAINTIMER 1 //Экспортируемые функции: void TimersInit(void); //Инициализация аппаратуры void StartLTimer(unsigned char TimerID); //Обнуляет таймер TimerID unsigned int GetLTimer(unsigned char TimerID); //Возвращает текущее значение нужного таймера #endif #include "timers.h" #include <intrinsics.h> volatile unsigned int LTimers[MAXLTIMERS]; void TimersInit(void) { //CLK_PCKENR1 |= ?; //Вкл. тактирование таймера 3 TIM3_PSCR = 0; //Делитель выключен TIM3_ARRH = 0x3e; //Считаем до 16000 TIM3_ARRL = 0x80; TIM3_IER = 0x01; //Прер. по переполнению вкл. TIM3_CR1_CEN = 1; //Включаем счетчик __enable_interrupt(); } void StartLTimer(unsigned char TimerID) { LTimers[TimerID] = 0; } unsigned int GetLTimer(unsigned char TimerID) { return(LTimers[TimerID]); } #pragma vector=TIM3_OVR_UIF_vector __interrupt void TIM3_Int(void) { TIM3_SR1_UIF = 0; unsigned char i; for (i=0; i < MAXLTIMERS; i++) LTimers[i]++; } В данном примере при 16 МГц тактовой имеем инкремент таймеров каждую мс... Итого точность хода, + не обязательно тупо ждать в цикле, а можно делать че-нить полезное... Хотя мелкие задержки так делать расточительно, постоянные прерывания... Использовать вообще просто, чтобы запустить ожидание вызываем StartLTimer и переодически проверяем значение функцией GetLTimer...
×
×
  • Создать...