2 378 сообщений в этой теме

antzol    2
Кто сталквался с шиной I2C?.....

Покажи хоть код.

На чём пишешь? Как реализуешь, аппаратно или программно?

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

Поделиться сообщением


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

Я может не вовремя :) Помогите реализовать задержку с точностью до нескольких мкс на СИ, для pic16f84. встроеной задержки, как я знаю там нет, может кто подкинет готовую функцию

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
antzol    2

2DJ Димон

А какой компилятор используешь? В CSS PCWH есть функция delay_us(const int16 microsec).

Поделиться сообщением


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

Компилятор HI-TECH PICC, как-то так. Ещё есть такой CCS C Compiler но я ещё его не испытывал.

Кстати есть хороший сайт для новичков в освоении МК http://www.pcports.ru/ как мне кажется!

Изменено пользователем DJ Димон

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
antzol    2
Ещё есть такой CCS C Compiler но я ещё его не испытывал.

Я этот и имел в виду. Одну букву в названии перепутал... :)

Поделиться сообщением


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

Этот компилятор на меня сругался 'Error: The selected compiler: "PCM" is not installed on this PC' почему-то.

я в HI-TECH нашёл файл с функцией DelayUs(x); х - время в мкс.

//-----------------------------------Задержка в мкс------------------------------------------

#ifndef XTAL_FREQ

#define XTAL_FREQ 20MHZ // Частота кварца в MHz

#endif

#define MHZ *1000L // Количество kHz в MHz

#define KHZ *1 // количество kHz в kHz

#if XTAL_FREQ >= 12MHZ

#define DelayUs(x) { unsigned char _dcnt; \

_dcnt = (x) * ((XTAL_FREQ)/(12MHZ)); \

while(--_dcnt != 0) \

continue; }

#else

#define DelayUs(x) { unsigned char _dcnt; \

_dcnt = (x) / ((12MHZ)/(XTAL_FREQ)) | 1; \

while(--_dcnt != 0) \

continue; }

#endif

//--------------------------------------------------------------------------------------------

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
antzol    2
Этот компилятор на меня сругался 'Error: The selected compiler: "PCM" is not installed on this PC' почему-то.

Странно... Это он говорит, что у него что-то не установлено для 14-разрядных пиков.

А так, в нем есть встроенные функции задержек (циклы, мкс, мс).

Просто указываешь в h-файле частоту тактового генератора в герцах:

#use delay (clock=5000000)

или

#use delay (clock=5000000, RESTART_WDT)

А в коде программы, где нужно, вставляешь, например, delay_us(X) или delay_ms(X).

И всё...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Bugrim    2

Подскажте, можно ли в MPLAB IDE (асемблер), в командах указывать назваеие регистров, бтов (н-р BCF STATUS,RP1)? В примерах пишется, а у меня не получается, может клацнуть гдето надо? :wacko:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ilya_rad    5

Можно, если в начале пишешь

include '16f84.h' - например. Указываешь свой контроллер только.

В этих файлах указаны регистры и биты, затем можно использовать, как у тебя в примерах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Bugrim    2
Можно, если в начале пишешь

include '16f84.h' - например. Указываешь свой контроллер только.

В этих файлах указаны регистры и биты, затем можно использовать, как у тебя в примерах.

***СПАСИБО***

:D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
I2C    0

Возьмите и меня в обучаемые... Please... Железо и желание есть. Установлен PCWH Compiler v.4.049 & MPLAB IDE v.7.62.00.00.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Bugrim    2

Купил микросхему PIC16F876A-I/SP. Подскажите что означает буква "а", а то нигде не могу найти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
antzol    2

В контроллерах с буквой "А" увеличено количество аналоговых портов (т.е. коммутируемых на АЦП), а также изменен способ программирования. А в остальном они ничем не отличаются от тех, что без буквы "А".

На нее нужно обращать внимание при выборе программатора, некоторые из них не могут программировать контроллеры с А.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ViKtor_VK    1

Всем привет!

Возникла проблема с PIC12F629 (начинаю осваивать).

Суть вот в чем: Нужно написать простенькую программу - зажеч светодиоды, порты GPI1,GPI2(Ген-ХТ, кварц 4МГЦ)

__CONFIG_XT_OSC_WDT_OFF_PWRTE_ON

Программу написал в MPLABe (компиляция прошла успешно).

Пробовал запустить в PROTEUSe(6.9sp5). Заливаю HEX-файл нажимаю на PLAY - ничего не происходит!

Все выводы в PIC12F629 не активны!

Пробовал сделать тоже на PIC16F84A - все получилось прекрасно. но этот ПИК дорогой, да и задача не

для него.

Подскажите что не так!

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexi    1

Выложите схему и прошиву будет смотреть

Изучайте СИ.

да и берите за основу хотябы PIC16F628A.

Их валом везде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ViKtor_VK    1
Выложите схему и прошиву будет смотреть

Изучайте СИ.

да и берите за основу хотябы PIC16F628A.

Их валом везде.

По поводу изучения СИ - это ближайшая задача.

Сейчас изучаю PIC16F628A, а PIC12F629 нужен для конкретной небольшой задачи.

Схема и прошивка остались на работе, завтра утром все выложу. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexi    1
По поводу изучения СИ - это ближайшая задача.

Сейчас изучаю PIC16F628A, а PIC12F629 нужен для конкретной небольшой задачи.

Схема и прошивка остались на работе, завтра утром все выложу. Спасибо.

Изучайте Си не в перспективе а сейчас, много гемора с себя снимете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Bugrim    2
В контроллерах с буквой "А" увеличено количество аналоговых портов (т.е. коммутируемых на АЦП), а также изменен способ программирования. А в остальном они ничем не отличаются от тех, что без буквы "А".

На нее нужно обращать внимание при выборе программатора, некоторые из них не могут программировать контроллеры с А.

Привет!!! Спасибо большое. Где можно найти документацию которая указалаб на эти отличя (особенно режм программирования)

Где можно найти документацию которая указалаб на эти отличя (особенно режм программирования) на микросхему PIC16F876A-I/SP???

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexi    1

Если Вы про физическую схему подколючения - то разницы нет. Остальное делает программатор сам. А если про регистры банки памяти то сомторите в datasheet. Там все есть.

По воросу выше на 1 пост читаем http://www.microchip.by/files/87x_to_87xa.pdf.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ViKtor_VK    1

По поводу пика 12F629.

Cхемка простая сделана для выяснения "тормоза" ,поэтому описать ее быстрей, чем нарисовать:

К выводу GP1 присоединен резистор 330 ом за ним светодиод и на "землю".

К выводу GP2 присоединен резистор 330 ом за ним светодиод и на "землю". Вся схема.

Вот программа на АСМе:

; PIC12F629 Кварц 4 МГц.

LIST p=12F629

#include<p12f629.inc>

__CONFIG_XT_OSC_WDT_OFF_PWRTE_ON

;------------------------------------------------------------------------------------------------

; Определение положения регистров специального назначения.

;------------------------------------------------------------------------------------------------

GPIO equ 05h

Status equ 03h

TRISIO equ 85h

;------------------------------------------------------------------------------------------------

; Определение названия и положения регистров общего назначения.

;================================================================================================

RP0 equ 5 ;Присваивание 5 биту имени RPO регистра Status.

;------------------------------------------------------------------------------------------------

; Определение места размещения результатов операций.

;------------------------------------------------------------------------------------------------

w equ 0

F equ 1

;------------------------------------------------------------------------------------------------

; Текст рабочей части программы.

;------------------------------------------------------------------------------------------------

; Установка направления работы портов.( Переписано из ДШ по пикам).

;------------------------------------------------------------------------------------------------

Start bcf Status,RP0 ;Переходим в 0-й банк.

clrf GPIO ;Инициализация защелок GPIO.

movlw 0x07

movwf CMCON ;Каналы GPIO-цифровые входы-выходы.

bsf Status,RP0 ;Переходим в 1-й банк.

movlw .8 ;Значения для инициализации

;направления каналов GPIO (00001000).

movwf TRISIO ;Канал 3 настроен на вход-остальные на выход.

bcf Status,RP0 ;Переходим в 0-й банк.

;------------------------------------------------------------------------------------------------

d movlw .6 ;(00000110) на выводах GP1,GP2 установить "1"

movwf GPIO ;Зажеч светодиоды и больше ничего не делать.

goto d

end

В PROTEUSe на выводах ПИКА никакого движения (ни "0" ни "1" нет) симулятор ошибки не выдает.

ПО поводу изучения СИ-согласен .В основном все рекомендую книгу Ю.Шпака -Программирование PIC иAVR.

Что то еще есть по ПИКам на СИ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lexi    1

В мои руки сначала попал компилятор, который описан в этой книге, а потом и сама книга. Теперь вот привык к нему ;). Но это как кому. Книга Кэригана в передоде. Там чистый Си++.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ViKtor_VK    1

Открыл сегодня microC - 6.0(Он установлен был раньше), начал просматривать примеры и нашел

похожий на мою задачу. В журнале Радиоаматор за 2006 год есть краткое описание работы в microC с примерами. :rolleyes:

Модифицировал пример под свою схему, ПИК взял 16F628A (компиляция прошла успешно),

потом залил HEX-файл в ПИК в PROTEUSe и схема заработала!!!!!! :lol:

Книга Кэригана у меня есть - теперь буду плотно ее изучать.

Теперь туже схему попробую сделать на 12F629 в microC. Спасибо. ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ViKtor_VK    1

Пробовал запустить PIC12F629, PIC12F675 в PROTEUSe (6.9sp5).

Ничего не выходит.

Брал готовые примеры из microC -компилировал-заливал в PIC12F629, PIC12F675 в PROTEUSe (6.9sp5)-тишина!!

Видно не хочет мой PROTEUS их обрабатывать :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ViKtor_VK    1

В железе пока не пробовал, остановлюсь на PIC 16F628A. переустановлю PROTEUS новую версию, попробую еще раз, а потом буду пробовать в железе PIC 12F629.

Поделиться сообщением


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Stratix
      Здравствуйте, у меня проблема с прошивкой разных устройств из-за программаторов. Дело в том что у меня есть некоторое количество китайских и самодельных программаторов для разных производителей, с ними постоянно какие-то проблемы, некоторые отказываются нормально работать на windows 10(другие версии ПО не устраивают), другие не работают с последними версиями сред разработки и т.д. Так же нужно прошивать схемы памяти. Хочу прошивать устройства без постоянной сборки программаторов и неудобств. Думаю о двух вариантах: взять оригинальные программаторы для всех производителей: altera, xlinx, arm, pic, avr(некоторые найти сложно, например оригинальный usb-blaster и высокая стоимость в сумме), второй вариант: взять универсальный программатор, который бы поддерживал все новые микросхемы, а вот с этим проблема, большинство универсальных программаторов не шьют stm, плис. Есть ли вообще реально универсальные программаторы? Мне было бы намного удобнее если на столе б лежал один программатор, а не куча. Смотрел список микросхем chipprog-48, пока что самый большой, к сожалению не поддерживает новые fpga, например: cyclone IV. Связывался, сказали что поддержки не будет и в будущем. Стоит ли взять chipprog-48 в 2018 году или есть программаторы лучше, с большим списком микросхем?
    • Автор: ITSpec
      Привет всем. Это мой первый пост здесь  прошу отнестись снисходительно.
      Просматривал ролики на Ютуб и понравилась тема одного из блогеров: "Воруем у китайцев". Идея понравилась и полез на Алиэкспресс поискать какой нибудь конструктор чтобы сплагиатить.
      Выбор пал на этот.

      Схему даже с платы не пришлось перечерчивать она была на странице продавца.

      Основная часть этой схемы обычный мультивибратор, который "перемигивает" параллельно подключенные диоды. Вторая часть схемы служит для музыкального сопровождения и состоит из трех компонентов: музыкальной микросхемы, усилителя звука в виде транзистора и громкоговорителя в виде пьезового зумера.
      Такой микросхемы у меня конечно же небыло и я заменил ее на чип H-83a который не нуждался в усилителе.

      Сразу припаял на него SMD резистор и кнопку для переключения мелодий согласно схеме.

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

      Открыл EASYEDA и нарисовал схему.

      Потом спроектировал плату.

      После прибегнул к технологии ЛУТ.

      Припаял все элементы. Отсек для батарейки и чип посадил на термоклей.

      Вот фото окончательного устройства.

      Включается устройство от переключателя, а мелодии от кнопки на музыкальном чипе. Если кому-то хочется чтоб мелодия играла при включении вместо кнопки можно впаять перемычку.
      Ссылка на видео как собиралось:
       
    • Автор: Михаил Савин
      Добрый день. Подскажите есть устройство на плате для регулирования дроссельной заслонки от Калины. Довольно специфическое, индивидуальная разработка, аналогов не купить. Основывается на микроконтроллере ATXMEGA128A3U AU 1651. Возможно ли скопировать залитый в него код что бы изготовить данное устройство ? Или это невозможно в принципе ?
    • Автор: Дмитрий Дмитрий
      Здравствуй, добрый Алл.
      Задумал сделать сенсорный выключатель (блокировщик) двери. Задача: при двойном прикосновении к поверхности пластикового выключателя подать на управляющий контакт +5В.
      Реализация:  Использовать контроллер емкостного сенсора AT42Q1010, микроконтроллер PIC10F200.
      Логика: при полном закрытии двери,  срабатывает геркон, подается +5В на схему. На схеме расположены емкостной контроллер AT42Q1010 и микроконтроллер PIC10F200. Емкостной контроллер при прикосновении пальца дает сигнал на цифровой выход. Этот выход соединен со входом PIC10F200. В PIC10F200 крутится программа, определяющая двойное прикосновение, с заданными промежутками времени (ориентируюсь на обычный двойной клик мыши). Как только определяет двойной клик - подает на три GPIO выхода +5В, и уходит в пустой цикл, до снятия питания.
      С одного GPIO питаются светодиоды: 2 шт, 1.8 В, 1 мА, удалены на 3 метра, подключены кабелем 3х2.5 мм2.
      Со второго GPIO активируется герконовое реле 5В, 10мА, размыкающее наружную клавишу открытия двери.
      С третьего GPIO питаются светодиоды: 2 шт, 1.8 В, 1 мА, удалены на 3 см. Они находятся в том же выключателе, где будет смонтирована схема.
      Для повторного запуска нужно открыть - закрыть дверь. Питание будет отключено-включено, программа запустится с нуля.
      Вопросы:
      1. Нормально ли цеплять светодиоды прямо к PIC контроллеру, на такую дистанцию? Потери посчитал, выходит в районе 1%. Думаю проблем быть не должно, но чувствую кощунственность решения.
      2. Нормально ли PIC контроллер отнесется к многократному хард ресету? Дверью пользуюсь 50 раз в день. Это каждый раз снятие питания, включение обратно.
      3. Какое время на загрузку ожидать от схемы? Т.е. через какое время после полного закрытия двери я смогу заблокировать дверь. Судя по документации на емкостной контроллер , оно меньше 100 мс. Микроконтроллер PIC около 30 мс (reset time). Я нигде не ошибся?  
      4. Нужно ли вставлять резистор между герконовым реле блокировки двери и микроконтроллером? Расстояние от микроконтроллера до реле около 2 метров. Насколько я понимаю, желательно использовать токоограничительный резистор около 1 кОм, но методика точного расчета номинала мне не известна.
      5. Нужно ли вставлять резистор между дальними свтодиодами и контроллером? Ближним и контроллером? Для понижения напряжения я планирую в обоих случаях использовать резисторы 1.5кОм и последовательно подключать два диода 1.8 В,  1 ма. Этого достаточно? Диоды и резистор располагаются на крышке выключателя.
      6. Для подбора конденсатора нужной емкости для сенсора прикосновения хочу использовать макетную плату (такая пластиковая, с много рядов отверстий), и кучку кондеров из чип и дипа, около рекомендованной емкости.  К ним припаять проводки и по очереди проверять, каждый раз скидывая питания. Это верная методика или есть способ лучше?
      7. Имел ли кто дело с таким емкостным контроллером? Насколько plug and play решение? На внутреннюю часть выключателя планирую наклеить медную фольгу, номиналы конденсаторов и резистора подобрать на столе. Потом все собрать на печатной плате, смонтировать в корпус выключателя. Не уплывет ли со временем точность такого сенсора? Может быть на плате предусмотреть какие-то элементы для подстройки в будущем?
      8. Я выбрал самый младший из PIC  контроллеров. Могу ли я столкнуться с нехваткой памяти в своей задаче? Портов хватает. Может быть я не учел какой-то еще ресурс, которого не хватит для выполнения этой задачи?
      Даташит на емкостной контроллер  https://ru.mouser.com/datasheet/2/268/40001946A-1145216.pdf
      Даташит на PIC  контроллер http://ww1.microchip.com/downloads/en/DeviceDoc/40001239F.pdf
      С уважением,
      Дмитрий.
    • Автор: ficus216
      Здравствуйте всем. Такая проблема. Дорожка работала, при беге в максим. 10км/ч резко прибавила скорость до 12 наверное ( хотя только до 10 максимум она разгоняется)
      попытался убавить скорость но ничего не срабатывало, можно только переключать между табло "каллории" "скорость" "расстояние""время" ничего убавить нельзя. Дальше вытаскиваю магнит (обычно дорожка автоматически выключается после этого) в этом случае нет, она дальше работала на полной скорости.
      Снизу находится общий включатель, раньше если его вкл то пока старт не нажмешь ничего не будет. а сейчас нажимаю этот вкл снизу и сразу на 12шке херачит.
      Тестором все прозвонил, сгорел микропроцессор я так понимаю. В магзиине мне сказали. что только если на али заказать. Название сгоревшего sonyx sn8p2624kb на али нет в точности с таким названием. прилагаю ссылку
      можно ли заказать этот или любой другой с другим названием ? что делать дальше ? не нужно потом это все прошивать ? и как ?https://clck.ru/DQhDh



  • Сообщения

    • Выключение модуля осуществляется ровно также, как и его включение. Только обратной операцией.
      Как его включить (или выключить) - подробно описано в документации на камень.
    • Плату от трансформатора немного отодвинуть бы
    • В общем, я подумал и сейчас развожу плату под корпус SO-8 (3 шт), иначе плата большой получится, в каждом корпусе по 2 полевика, по габаритам получается как пара SOT23 в сумме, но зато SOT23 можно раскинуть проводками, если что. Эти полевики обычно стоят в мониторах LCD, у них сопротивление 20-50-100 мОм, но купить можно в магазе, даже по 7-12-25 мОм, по деньгам 15-25-40 руб каждый корпус.  2 полевика (1 корпус) точно надо на 20-50 мОм (1000-10 000мкф), остальные - некритично, ток мало играет роли, можно и по 1 Ом. По напряжению - наверное 30 В и ток 5-10 А, чтобы точно выдержал напругу на щупах. Ну и по затвору 1.5-2.5 В открытия, 3.7 В питания конечно все убивает, приходится буферы ставить. Биполярники по току на базе не смогут прокачать, так что полевики рулят.
    • проходили, мочили, фанерка того, расклеивается...потом клеил лепестки 3мм фанеры в пресе (так же изготавливать пресс форму и тут надо всё равно) изгибал по 5шт вроде или 4 (непомню), и ничего круто. А вот потом как состыковать то и идеальо нарезать торцы под углом точным чтоб сошлось скажем 6 или 8 граней? я пока не смог. Есть вариант на чпу лепескти вырезать из дерва, я рисовал и сдавал, оценили 8 лепестков - 1 рупор под 1.5 евро. Не кисло так. Но зато там только слекиваешь и всё. Есть где то видео где так делают рупор. Но очень дорого это за 2 рупора только за чпу отдать 3 евро. 
    • Собрал фильтр по данной схеме. Подключаю только через высокоуровневый вход, т.е. источник с выхода китайского усилителя 4х10 вт. Проблема вот в чем: Когда подключаю оба канала - все работает нормально только на низкой громкости, а совсем чуть повысив - звук "обрывается" в китайском УМ, как буд то защита какая то срабатывает... Как только отключаю один из каналов и оставляю любой другой - все играет отлично даже на самой максимальной громкости. Кто что думает? В чем может быть проблема? Схему фильтра взял отсюда, но чуток обрезал.
    • Неужели фанерку тяжелее отмочить-изогнуть-склеить, нежели прессом гнуть 20кг железа и варить?
    • Сегодня послушали усилитель с разными источниками (с внешним цапом тоже игрались) и на разной акустике. Кендайлы положил в ящик на хранение. С самвой АМ звук приятней. На мои уши - звук приятней и ВЧ естественней, что ли, на ВЧ с кендайлами каша. Заметно с любой акустикой и любым источником. Вот такие вот дела. В архивчике "бардачок" из разных источников и колонок.   Photos.rar