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

crazz

Рекомендуемые сообщения

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Помигайте светодиодами, занимательное занятие. :)

Воспользуйтесь, прежде всего, поиском по форуму. Из "разжевывающих" источников мне нравятся сайты: pcports.ru и http://ikarab.narod.ru/. Особенно первый источник. Ваш чип, судя по названию, какой-то древний, но это не помешает, если сконцентрироваться на даташите. А вот с программатором, на первых порах, я бы не возился, а тупо попросил у знакомых.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Я как раз и говорю о том что счетчик во время прерываний считает, и основная программа никогда не сможет получить его значений непосредственно при возникновении переполнения 8-ми или 16-ти битного счетчика. Такая ситуация: основная программа приступает к считыванию значения счетчика но её прерывает событие - переполнение таймера! При этом отрабатывает прерывание и программа благополучно пропускает некоторое количество входных импульсов...

Затем это будет выражаться в том что если постепенно повышать частоту(в режиме частотомера) показания каждые 255 единиц будут проскакивать определенную область.

ситуация вторая ... программа приступила к считыванию значения счетчика запретив прерывания(это естественно) но сам таймер был на грани переполнения. Естественно программе надо считать значение нескольких байт из памяти, и значение таймера ... но таймер уже переполнился а прерывание по переполнению еще не отработано - значение счетчика будет неверным на 256 единиц.

Это лишь очевидные проблемы, а сколько их еще скрыто?

И самое интересное, что такие глюки будут возникать достаточно редко, что затруднит их отлов если не продумать все хорошенько заранее и не рассмотреть все возможные ситуации.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Раскрываю ситуацию полностью. Возникла необходимость заменнить "УЦИ" в которой используется часть устройства, а именно индикация перемещения координаты станка. Перемещение координаты происходит в ручную, т.е. "УЦИ" не управляет перемещением, а только отображает текущее положение координаты. Исходне устройство имеет 7 значащих разрядов, плюс знак (например "-0841,521"мм), от сюда 27 разрядов в двоичной. Да действительно для данной системы такая точность не нужна, но для устройчтва, в перспективе, есть и другое применение.

Что касается быстродействия. Для определения положения координаты используется датчик положения с круглой линейкой (энкодер), расположеный на вылу двигателя. Частота оборотов двигателя может достирать 15 об/сек, а это 15*2500=37500Гц (2500 - количество рисок) Так как датчик имеет два вывода (sin, cos) и схема подсчета импульсов может распозновать 4 импульса на каждый период одного из сигналов, то в результате получаем 37500Гц*4=150кГц.

То есть, если использовать прерывания, то на их обработку потребуется (например при 20 МГц) (20/4)/0,15=33 цикла между прерываниями. А туда есче по мимо счетчика и динамическую индикацию воткнуть надо, хотя это не проблемма, но в пиковых ситуациях возможны сбои.

Сейчас обдумываю можно ли изменить исходные данные.

Изменено пользователем Bugrim
Ссылка на комментарий
Поделиться на другие сайты

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

А у меня на руакх PIC16c66.
Если бы ты поинтересовался что это за контроллер... буква С - означает что он однократно программируемый, и если он где-то уже стоял то его можно просто выкинуть - с ним ты уже ничего не сделаешь.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

.........................

Это лишь очевидные проблемы, а сколько их еще скрыто?

.........................

И самое интересное, что такие глюки будут возникать достаточно редко, что затруднит их отлов если не продумать все хорошенько заранее и не рассмотреть все возможные ситуации.

Сначала Вам, Alexeyslav. Я так и не понял, почему импульсы будут пропущены? В 18 пиках возможно чтение на лету в один прием, а в 16-х можно читать в два приема с подтверждением. Алгоритм известен и он типовой, никаким ноу-хау не является. В любом случае счетчик не останавливается и пропустить он ничего не может. Для решения вопроса о прерывании процедуры чтения используется ЭЛЕМЕНТАРНЫЙ алгоритм. ПОСЛЕ чтения проверяют факт отсутствия его прерывания, например флагом... Вообще не проблема. Если такого рода вопросы считать существенными, то и за программирование браться не стоит...

Раскрываю ситуацию полностью. ................

...............................................................

Сейчас обдумываю можно ли изменить исходные данные.

Ваще то контроллеры , например PIC18F25K20, имеют максимальную частоту задающего осциллятора 64 МГц (кварц 16 и включена учетверяющая PLL), что соответствует частоте циклов 16 МГц. Во вторых, есть МК со встроенными квадратурными энкодерами, они правда стоят подороже упомянутой выше микросхемы (она стоит 70 руб.), но в таких легко реализуется энкодер двигателей с датчиком положения ротора, а это совсем другие частоты... Есть и 24-ые пики, там вообще можно сигналы обрабатывать в реальном времени для формирования шестифазного синус-ШИМа.

Но применение МК в станках - это профессиональное, а не любительское действо. Читайте аппликухи микрочипа, там есть готовые решения для разых семейств...

ЗЫ. Куртуазно слепить Вашу схему на МК со встроенным драйвером ЖКИ. Никакой динамической индикации. Только однодолларовая подсветка под индикатор. Но это если не нужен встроенный энкодер...

Изменено пользователем my504

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Сначала Вам, Alexeyslav. Я так и не понял, почему импульсы будут пропущены?

Импульсы пропущены не будут, программа на лету не сможет получить конкретные значения счетчика, что будет выражаться в "проскакивании" некоторых значений.

При работе чисто с таймером проблем не возникает, у нас же многоразрядный счетчик разрядность которого выше.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

И что с того, что будут пропущены некоторые значения на индикатор? Это же индикация... Да хоть три четверти не уйдут на индикацию, что с того... Инерция зрения на изменяющиеся цифры около четверти секунды. Более того, их чаще и нельзя изменять, иначе при быстрых сменах параметров(вращении суппорта) все сегменты будут гореть одновременно..., что очень некрасиво...

А старшие программные разряды будут устойчиво инкрементироваться по обработчику. С чего им быть пропущеными?

Весь алгоритм такой.

В прерывании по переполнению ставим флаг.

В мейне:

Загасили флаг. Сняли показания в буфер. Проверили флаг. Если стоит, повторяем процесс съема данных со счетчика сначала, пока флаг после съема в буфер не будет опущен.

Изменено пользователем my504

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Но применение МК в станках - это профессиональное, а не любительское действо.

Да, но по сложности и по коду, который на данный момент мне кажется, это наверняка можно отнести к любительской конструкции, а вот преминение, это другое.

Ваще то контроллеры , например PIC18F25K20,........

На данный момент я осваиваю PIC16F628A, когда покупал в "Гамме" PICKT -2 заказал сразу несколько штук. При правильном подходе сия микросхема должна обеспечить, надеюсь, нужный результат. А осваивать новое семейство, на мой взгляд, пока рановато и необходимости пока не возникает.

По поводу ЖКИ - я склонен к динамической индикации на семисегментных индикаторах. И стоимость, наверное, поменьше и ударов не так боиться, ведь уст-во будет орентировано на работу на производстве, а там, к оборудованию, не очень относятся.

Да кстати в Proteus есить импульсый энкодер, а то я не нашел.

Спасибо всем за советы.

Ссылка на комментарий
Поделиться на другие сайты

В принципе... если использовать статичную индикацию(всмысле не отображения информации на физическом уровне, а отображение самого числа как такового фиксируемого каждые 250мс к примеру) то проблем быть не должно - для человеческого глаза такие огрехи будут незаметны, но если вдруг надо будет куда-то подключить?

Но есть еще одна идея - использовать 4-битный реверсивный счетчик, а контроллер будет следить за его значением - как в мышке и определять приращение. Но чтобы не сбится со счета - разность между соседними выборками не должна превышать +-7 единиц. т.е. за период выборки на вход счетчика должно поступить не более 7 импульсов. если взять 8-битный счетчик, допустимо будет 128 импульсов и контроллер применить на более низкой частоте.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Вопрос по PIC16F84A:

если настроить вывод порта (неважно какой) на работу на вход и оставить этот вывод висеть в воздухе

затем входе исполнения программы обратиться к нему чтобы считать что на нем находится (ноль или еденица). PIC считает с него НОЛЬ??

Или его заглючит, ведь вход висит в воздухе и по логике ни ноля ни еденицы на нем нет, а программа должна выбрать сценарий работы в зависимости от того, какой сигнал действует на этом входе?

С уважением, Дмитрий

Ссылка на комментарий
Поделиться на другие сайты

На этот вопрос тебе ответит даташит. И вот что он тебе скажет: в качестве входов используется полевик с изолированным затвором и триггер шмидта, неопределенного состояния у него быть не может - только 1 или 0. а это будет определятся напряжением на выводе, а в области переключения триггера еще и предыдущим состоянием. напряжение у вывода висящего в воздухе и имеющем огромное входное сопротивление будет определятся скорей наводками или токами утечки с соседних выводов. Чтобы такого не происходило, для этого предусмотрены подтягивающие резисторы которые можно включить в специальном регистре, и тогда все входы подключаются к +шине через источники тока около 2мА.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Даташит на буржуйском, а языками я к сожелению не владею )

Подтяжка есть только у порта B порт А подтяжки не имеет. Можно использовать внешнюю подтяжку, правильно? Каким должен быть номинал резистора?

И еще вопрос, чем рукаводствоваться при выборе емкостей опорного генератора? Просто видел схемы с емкостями 15 пик и 22 пик (может есть еще и генераторы с другими номиналами, незнаю...)

С уважением, Дмитрий

Ссылка на комментарий
Поделиться на другие сайты

ищи лучше, есть и на русском.

емкости ... ставь какие рекомендуют, от них зависит стабильность работы кварцевого генератора во всем диапазоне питающих напряжений и температур и скорость раскачки при подаче питания или выхода из энергосберегающего режима.

Можно использовать внешнюю подтяжку, правильно? Каким должен быть номинал резистора?

Номинал резистора выбирается лишь из соображений внешней схемы подключаемой к порту, контроллеру вовсе не важно какие там резисторы стоять будут - он воспринимает напряжение на входе порта. поскольку сопротивление входа велико, практически любой резистор сможет подтянуть уровень, соответственно при больших значениях надо будет учитывать утечки в текстолите, влага если на выводы попадет - она проводит ток... и т.д.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Благодарю Alexeyslav!

"ищи лучше, есть и на русском."

Искал, но не нашел, видать плохо искал... Если у тебя имеется, выложи пожалуйста сюда.

С уважением, Дмитрий

Ссылка на комментарий
Поделиться на другие сайты

Я не очень понимаю мазохистов, готовых платить по 100 и более рублей за старинный и примитивный 16F84, если есть превосходные новые чипы за 40...50 руб.

Русский даташит на 12F629(675) , а также универсальный даташит по разделам на всю 16-ую серию есть в разделе документация на сайте www.microchip.ru

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Искал, но не нашел, видать плохо искал...

На PIC16F84 полно литературы на руском.

А по поводу:

также универсальный даташит по разделам на всю 16-ую серию

прочитай сообщение от error2 на 3-й странице этого форума, Там не только ссылки на русские доки, но и другая полезная информация.

Ссылка на комментарий
Поделиться на другие сайты

Ага, вот здесь там есть описание по разделам для каждого модуля в отдельности на РУССКОМ.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

это значит, что в команде пропущен адрес назначения результата и по умолчанию будет соответствовать адресу источника.

пример:

addwf temp эквивалентен addwf temp, f (результат будет помещен в temp)

или нужно указать назначение: addwf temp, w (результат будет помещен в w)

Изменено пользователем my504

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Спасибо, понятно!

my504, вы писали про мазохизм... ) Просто я учился програмированию МК на примере PIC16F84A, поэтому сейчас хочу написать пару-тройку программ именно под этот контроллер и проверить их работу в железе. А потом конечно нужно переходить на другой контроллер. Кстати, подскажите на какой лучше...?

И еще вопрос, можно ли програмно устранить дребезг контактов, или сделать это на внешних элементах?

С уважением, Дмитрий

Ссылка на комментарий
Поделиться на другие сайты

Применять нужно ОПТИМАЛЬНЫЙ для данного случая контроллер.

Т.е. сосчитать количество точек управления/входных сигналов, прикинуть внутренние ресурсы: наличие нужных периферийных модулей или возможности их программно-аппаратной замены, производительности и т.п. После этого сделать небольшой резерв (это необязательно, в крайнем случае камень можно поменять в процессе проектирования) и все.

Пример.

Спидометр для велосипеда на ЖК индикаторе. один вход с датчика импульсов. питание.общий.три интерфейсных линии на индикатор.два на кварц. Итого 8 выводов. Значит можно сделать на 12F629.

Тоже самое на светодиодном, но без кварца (точности хватит и при калибровке встроенного генератора) - 14 выводов (16F630).

И в таком же духе можно выбирать на другие задачи.

Иногда быстрый АЦП определяет выбор МК с избыточной производительностью.

Скажем я сейчас делаю проект, где выбор PIC24 обусловлен 500 килосемпловым АЦП. А разрядности хватило бы и 8 (у 24-го 16 разрядов)...

И самое главное - цена. Конечно нужно брать самый дешевый из возможных...

Изменено пользователем my504

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Дребезг контактов можно устранить програмно.

Если кнопка нажата в течении определенного времени - выполнить подпрограмму обслуживания кнопки. Время можно отсчитывать по переполнению регистра, который инкрементируется при нажатой кнопке, при отпущеной он обнуляется.

Я обслуживал кнопки так.

Ссылка на комментарий
Поделиться на другие сайты

можно ли програмно устранить дребезг контактов, или сделать это на внешних элементах?

Самый простой способ - проверять состояние защелки порта с частотой 20-50Гц, этого вполне хватает чтобы устранить эффект дребезга без дополнительных мер. будь то аппаратных или программных.

Принцип действия заключается в том что если проверка состояния кнопки происходит между её переключениями - то собственно все это и так будет работать, а если выборка произойдет во время дребезга - результат выбора будет случайным, но самое главное заключается в том что это произойдет лишь один раз - предыдущая выборка относится еще до переключения а следующая выборка будет заведомо уже после нажатия когда процесс дребезга давно закончился. Как нетрудно догадаться при таких условиях возможны только такие варианты: для включения 0 0 1 или 0 1 1 для выключения 1 0 0 или 1 1 0. в любом случае получаем в результате только один переход.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...