Jump to content

    

mrVladimir

Участник
  • Content Count

    15
  • Joined

  • Last visited

Community Reputation

0 Обычный

About mrVladimir

  • Rank
    Участник
  • Birthday 11/12/1978

Информация

  • Город
    Зеленодольск (РТ)

Recent Profile Visitors

116 profile views
  1. А мы простых путей не ищем.
  2. Может и проще, но согласитесь, что в моем варианте тоже что-то есть. За совет спасибо. Присмотрюсь.
  3. Спасибо, конечно, но , друзья, я же не просил помочь мне сделать надежный помехозащищенный промышленный контроллер (на основе уже кем-то созданного). Я решил разобраться с вопросами программирования и задал вполне себе дилетантский вопрос (как я теперь понимаю). И , надо сказать, благодаря всем вам в моем мозгу уже сформировалось кое-что внятное. А как описать схемотехнику словами - я не совсем представляю. Ну да, есть и транзисторы (в оптронах ) и резисторы и конденсаторы в цепях питания. Со стороны станка сигналы уровнем 24В через оптроны "превращаются" в 5В и поступают на входы процессора. Выходы со стороны процессора через оптроны управляют исполнительными реле... Да не стояло такой задачи. Так что спасибо форуму и всем участникам.
  4. Плату контроллера я не разрабатывал. Говорю же, разобрался со схемотехникой уже приобретенного у сторонней фирмы. Выпаял LPC2214. Запаял чистый . Залил свою программу. Схемотехника простая. 24->5в - AM5T-2405sz. Затем из 5В делается 3.3 и 1.8 (LM1117). Входы/выходы для контроллера LPC управляются с помощью оптронов. А насчет RC-цепей, даже с родными контроллерами, которые были выполнены еще на 511 серии советских микросхем при неисправности RC-цепей наблюдались сбои необъяснимой природы. PS: так как аппаратная часть нисколько не моя, то и фото я приводить не могу. Извините.
  5. Разве я хоть чем-то попытался показать свое достоинство?
  6. Да нет. Зависания происходили в разные моменты по времени, но всегда в момент смены инструмента. Смена инструмента делается обычным асинхронным двигателем. С помощью двух пускателей, которые управляются указанным контроллером. Первый пускатель включается во время поиска инструмента, второй - при фиксации револьверной головки. RC цепи стоят паралельно обмоткам двигателя в шкафу станка. Из-за того, что они были в обрыве при начале вращения двигателя на поиск или на фиксацию возникали броски, которые передавались на плату контроллера, ну и далее - зависания. Двигатели примерно такой же мощности стоят и на подачу эмульсии, и на смазку. Они тоже управляются указанным контроллером, но при их включении бросков и зависаний не было с самого начала. С RC-цепями я конечно ступил немного. Надо было сразу обратить на них внимание.
  7. esaulenka, может быть опять у меня глупый вопрос, но как же я исполню мусор вместо инструкции, если на этапе компиляции на этот мусор ругается сам компилятор. А почему вы ничего не говорите про обнаруженные мной неисправные RC-цепи. Ведь благодаря им зависания ПРЕКРАТИЛИСЬ.
  8. Судя по Вашему профилю, Вы человек опытный, но для чего Вы это написали? Светодиодиком я уже давно поморгал. Вопрос задавал чисто с технической (программной) точки зрения. Специально искал рубрику для начинающих. И потом, в конце концов, этот станок ведь может быть моим личным имуществом. Кому какое дело до него. Кстати, во втором своем посте я же написал что зависания прекратились. Вопрос был связан с исключениями. Раз Вы проявляете внимание к моей скромной персоне, то лучше подскажите пожалуйста как можно на столе в лаборатории сымитировать Undefined instruction, Prefetch abort и Data abort.
  9. Вы меня не так поняли. Я под политикой имел ввиду что и у кого покупать. За предупреждение спасибо.
  10. Спасибо вам всем за советы и за заботу, но тему я создал только для того, чтобы прояснить вопросы программирования для себя. И свою историю написал больше для понимания моего небольшого уровня в этом деле. А вопросы политики обсуждать я не хотел.
  11. Да я и "тренируюсь" на пока простаивающем станке; под постоянным контролем. А "фирменные" контроллеры, как уже выяснено, также не очень надежны.
  12. Вместо двух "барахлящих" контроллеров приобрели новые этой же фирмы. Вместо LPC там уже STM32. До watchdog'a у меня пока не дошло. На самом деле на данном этапе просто хотелось бы разобраться с программированием. AlexandrY, спасибо за совет.
  13. Подскажите пожалуйста какой-нибудь пример, как отловить Undefined Instruction. Ну, допустим, случилось это Undefined Instruction и я из обработчика устанавливаю какой-либо бит в каком-либо порте. Как правильно и где прописать обработчик. С IRQ вроде разобрался, а вот с остальными... Вопросы, наверное, совсем корявые, но ведь это для начинающих.
  14. Друзья, спасибо вам за участие. Может быть в выражении "самого-самого"(см. пост 1) второе слово лишнее. Но, судя по тому, какие здесь вопросы задают другие участники, первое-то уж точно на своем месте. Расскажу предысторию. Работая ремонтным персоналом по станкам с ЧПУ, разрабатывал кое-какие устройства на PIC16... Пару лет назад предприятие приобрело контроллеры автоматики на старые станки, но на новой элементной базе (общим количеством около десятка штук). Этой базой оказался как раз LPC2214. Задача этих контроллеров на станке - смена инструмента и отработка технологических команд, таких как включение эмульсии, шпинделя, выбор диапазона вращения шпинделя и т.п. Фирма-производитель на данном этапе, я думаю, не важна. Так вот, спустя более года после нормальной работы сначала один, а затем и другой ... и третий контроллеры начали вести себя неадекватно. То путают инструмент, то не проходит какая-либо из М-команд. Разобравшись со схемотехникой (набор резисторов и оптронов), решил написать свою программу для данного контроллера. Купили новый LPC2214. Запаял на место старого. Скачал IAR Embedded. Пару недель ушло на знакомство с основами и через месяц родил программу, которая была залита в контроллер с помощью Flash Magic (через UART). Проект в IAR'e создавал "с нуля". Счастью моему не было предела, когда на столе в лаборатории, имитируя станочные сигналы, я получил работающее устройство. Принеся этот контроллер в цех на один из простаивающих станков, я радовался не долго, так как после нескольких циклов смены инструмента мой контроллер завис намертво. Понял я это по переставшему мигать светодиоду, который я связал с прерываниями таймера TMR0. Посоветовавшись еще на одном похожем форуме, понял, что зависания скорее всего происходят по трем причинам : UNDEF, PREFETCH ABORT, DATA ABORT. Отладчиком пока не обзавелся. Но даже если по одному из этих исключений (прерываний), то спрашивается - почему в лаборатории- то все нормально. И решил я проверить RC-цепи (штатные) на станке, и оказалось, что резисторы сгорели (именно на этом станке; на других с проблемными контроллерами все RC-цепи в порядке. Восстановил RC-цепи и зависания пропали. Теперь работает как часы. А я решил углубиться в изучение данного семейства. Вот в двух словах моя история. Теперь возвращаясь к вопросам. Правильно ли я понимаю, что: 1) иар по умолчанию вообще не вставляет в мой проект никакой стартап, а берет всю информацию из какой-то из своих библиотек? 2) для того, чтобы прописать функцию обработки прерывания типа UNDEF, PREFETCH ABORT, DATA ABORT необходимо это сделать в стартапе? И еще, если в опциях проекта во вкладке linker я открываю файл .icf, разве этого недостаточно, чтобы указать начальный адрес векторов (vector table - > .intvect start). Скачал Мартина Тревора. Но по исключениям там крайне мало. Сейчас попробовал открыть проект Phytec-PCM023 (это как пример в иаре) - и в составе проекта не увидел никакого стартапа. p.s. Извините, чего-то много получилось.
  15. Здравствуйте. Пытаюсь разобраться с программированием LPC2214 в среде IAR Embedded. Появилось несколько вопросов (уровень самого-самого начинающего ). Вопрос1: Откуда в среде IAR берется файл startup.s при компилировании, если я его просто не добавляю в проект? Вопрос2: Если возникает исключение (exception) undefined instruction (vector 0x0000 0004), что происходит "по умолчанию" ? Я так понимаю должна стоять ловушка в файле startup.s . Вопрос3: На просторах интернета нашел , что команда asm("udf.w #0") вызывает это самое прерывание. Так ли это?