Jump to content
Sign in to follow this  
Benjamin

Gsm Сигнализация На Pic18, Вопросы По Готовой Схеме

Recommended Posts

Добрый день. Помогите, пожалуйста, разобраться в схеме. Студент, 2ой курс, прошу строго не судить. Есть вопросы касательно отдельных элементов схемы. Ниже прикрепил картинку с непонятными зонами. Ссылка на описание на сайте автора: http://ut2hi.qrz.ru/UT2HI/strazh.htm. Насколько я понял, то, что заводится на 3 вывод (канал АЦП), стабилизируется стабилитроном КС133А до 3.3 В (его номинальное напряжение стабилизации) для мониторинга наличия основного питания. 2ой вывод (также канал АЦП) предназначен для контроля уровня напряжения, выдаваемого аккумулятором, и включения в случае чего через реле на 6ом выводе подзарядки через КРЕН. Поправьте, если что не так.

А вот роль диодов VD1 и VD3 мне непонятна, зачем VD6 вообще не понимаю. Также c правой стороны схемы цепочка Comm-резистор 100 Ом-(питание)!? Это что?) :huh: В описании на сайте автора есть пометка про контроль температуры в месте расположения системы, может это с этим связано? Заранее благодарю за помощь. :)

post-175518-0-80518400-1383135384_thumb.gif

Edited by Benjamin

Share this post


Link to post
Share on other sites

диоды vd1,3,6 - защита от долба....ов, которые не в состоянии отличить + от -.

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

Share this post


Link to post
Share on other sites

Изготовление 2-х слойных плат от 2$, а 4-х слойных от 5$!

Быстрое изготовление прототипа платы всего за 24 часа! Прямая доставка с нашей фабрики!

Смотрите видео о фабрике JLCPCB: https://youtu.be/_XCznQFV-Mw

Посетите первую электронную выставку JLCPCB https://jlcpcb.com/E-exhibition чтобы получить купоны и выиграть iPhone 12, 3D-принтер и так далее...

VD1, VD3 -развязка питания: где больше (АКБ или внешнее), от того и питается схема, при этом исключается протекание тока через АКБ при питании от внешнего БП и наоборот. Роль VD6 мне пока непонятна.

Через 100 Ом подается питание на что-то подключаемое к устройству- просто защита от КЗ снаружи.

Edited by КЭС

Share this post


Link to post
Share on other sites

В поисках идеального силового ключа

Выбор полупроводникового силового ключа зависит от его свойств, стоимости жизненного цикла преобразователя, а также цели его разработки и требований к производительности. Infineon предлагает целую линейку MOSFET и IGBT с широкой запрещенной зоной (SiC и GaN), продолжая при этом работать над их усовершенствованием.

Подробнее

Romanchek82, исправил.

КЭС, благодарю, все доступно и доходчиво. :thank_you2: Осталось с VD6 разобраться.

Задам еще один вопрос по поводу организации охранных шлейфов. В большинстве найденных мною системах шлейф помимо всего прочего через резистор подтягивался к Vdd (+5 В). Здесь же не так. А в чем собственно разница?

Share this post


Link to post
Share on other sites

Запускаем новый BLE 5.2-чип BlueNRG-LP от STMicroelectronics

Любая разработка начинается с чтения документации и изучения доступных средств разработки. Данный материал целиком посвящен средствам разработки, включая детальные инструкции по запуску вашего первого приложения на BlueNRG-LP. Описана работа с отладкой STEVAL-IDB011V1, набором инструментов и пакетом ПО позволяющим разработчику быстро войти в курс дела.

Подробнее

Для меня тоже загадка (к вопросу о шлейфах). Ведь если входы портов оставить в воздухе, об установившихся уровнях можно только гадать. Я вижу одно объяснение: к внешним входам подключается "что-то", имеющее на своих выходах лог."0" или "1". Тогда вывод питания на этот разъем логичен (для этого "что-то").

По поводу VD6, так он, имхо, нах.. не нужен. Цитата: "...отряд не заметил потери бойца...".

Еще добавлю: не вижу смысла в R43 (убрать), VD4 (замкнуть), VT5,R33,R38 (убрать, светодиод подключить сразу через R32-не думаю, что там мощный подразумевается).

VD7,VD13,VD14 правильнее ставить параллельно обмоткам реле.

Edited by КЭС

Share this post


Link to post
Share on other sites

Материалы вебинара Практическое использование TrustZone в STM32L5

Материалы вебинара, посвященного экосистеме безопасности и возможностях, которые дает новая технология TrustZone в МК STM32L5, содержат две подробные практические работы: создание простого приложения с изоляцией в TrustZone, и пример отладки и тестирования TFM-SBSFU. Программа рассчитана на технических специалистов и тех, кто уже знаком с основами защиты ПО в STM32.

Подробнее

Для меня тоже загадка (к вопросу о шлейфах). Ведь если входы портов оставить в воздухе, об установившихся уровнях можно только гадать. Я вижу одно объяснение: к внешним входам подключается "что-то", имеющее на своих выходах лог."0" или "1". Тогда вывод питания на этот разъем логичен (для этого "что-то").

Странно, ведь насколько мне известно охранные или пожарные датчики не имеют на своем выходе лог. "0" или "1". :unknw:

Нашел еще что-то похожее по организации шлейфов: :wacko::blink:

post-175518-0-01928900-1383170846_thumb.gif

По поводу VT5, R33, R38 - вероятно да, ведь для индикации работы модуля мощный светодиод не нужен. :)

А реле я так делал: :dance2:

post-175518-0-03973500-1383171176.jpg

Share this post


Link to post
Share on other sites

Если речь идет о пожарной или охранной сигнализации, тогда все сходится. В любом приборе ОПС контролируется сопротивление шлейфа ("норма.", "КЗ", "Обрыв"). При этом "общего" провода у шлейфов нет, шлейф включается в мост из резисторов, далее компаратор напряжения и уже тогда только на вход контроллера.

Edited by КЭС

Share this post


Link to post
Share on other sites

хм...цитата из описания этой системы на сайте автора:

"«Страж» имеет 4 канала оповещения о тревожных событиях, на которые возможно подключение любых типов датчиков, таких как датчик движения, датчик пожара, различные газоанализаторы, концевые датчики дверей и т.п. датчики имеющие выход типа «сухой контакт»." :help:

Share this post


Link to post
Share on other sites

Да, в принципе, почему бы и нет? Если в программе МК перед опросом порта кратковременно сконфигурировать его на выход и установить в "0", то для перевода его в "1" потребуется подача напряжения извне (через "сухие контакты", что и предусмотрел автор, выведя его через R16. (Так вот оно зачем!!!)

ПС. Или так: в этом МК имеется возможность "подтяжки" входов к "земле" программно подключаемыми встроенными резисторами (хотя я такое не встречал)-надо даташит изучать.

Edited by КЭС

Share this post


Link to post
Share on other sites

Да, в принципе, почему бы и нет? Если в программе МК перед опросом порта кратковременно сконфигурировать его на выход и установить в "0", то для перевода его в "1" потребуется подача напряжения извне (через "сухие контакты", что и предусмотрел автор, выведя его через R16. (Так вот оно зачем!!!)

Все сходится тогда ;) Единственное что смущает, так это то, что нигде "12 main" нету, и почему 12, ведь там где main power выводится, побольше по идее будет?? или это неважно..

ПС. Или так: в этом МК имеется возможность "подтяжки" входов к "земле" программно подключаемыми встроенными резисторами (хотя я такое не встречал)-надо даташит изучать.

где-то по-моему видел такое, даташит почитаю. :)

Share this post


Link to post
Share on other sites

Единственное что смущает, так это то, что нигде "12 main" нету, и почему 12, ведь там где main power выводится, побольше по идее будет?? или это неважно..

Да, похоже, это упущение автора. "12 main" и "main pow" -это одно и тоже, это видно по рисунку печатной платы.

Share this post


Link to post
Share on other sites

Экранированный кабель. Оплетка на корпусе.

Share this post


Link to post
Share on other sites

А какова роль резистора R28? не понимаю номеров сигналов, входящих в шину.

Share this post


Link to post
Share on other sites

R28 -так называемая "подтяжка" к питанию. Обычно ставится на выход с открытым коллектором (ОК) или стоком (ОС).

В шине провода с одним номером соединены между собой. Например, под номером 1 соединяются R28, выв.25 модуля А1 (выход питания сим-карты), С26,С27 и выв.6 сим-карты.

Share this post


Link to post
Share on other sites

Подскажите, пожалуйста, какое будет напряжение в точке съема main power, если подать на вход 15 В? На сайте автора написано: "Питается система от сетевого адаптера с напряжением не менее 15 вольт, обеспечивающего ток не менее 1,5-2А", то есть можно подать больше 15 В или нельзя все-таки? :unknw:

Share this post


Link to post
Share on other sites

В точке "main power" будет на 0.5...0.7В меньше напряжения питания -обусловлено падением напряжения на диоде VD1. Максимально допустимое напр.питания смотрим даташит на DA1.

Share this post


Link to post
Share on other sites

В точке "main power" будет на 0.5...0.7В меньше напряжения питания -обусловлено падением напряжения на диоде VD1. Максимально допустимое напр.питания смотрим даташит на DA1.

Понятно. :thank_you2:В даташите на MIC максимальное входное "продолжительное" напряжение - 26 В. Пусть мы подадим 25В, не много ли это будет для питания реле и шлейфов!?

PS. И еще: если написано, что необходимо мин 15 В, но ведь резервный аккумулятор на 12В !?

Share this post


Link to post
Share on other sites

По поводу минимального напряжения 15В объяснение в #3. Аккуму ничего не случится, т.к. его зарядный ток стабилизирован DA2. Напряжение шлейфов ограничено стабилитронами VD8-VD11. Реле... смотря какие, обычно двойная перегрузка им не вредит. Ну а вообще, сдуру можно и болт сломать. :yes:

Share this post


Link to post
Share on other sites
Аккуму ничего не случится, т.к. его зарядный ток стабилизирован DA2. Напряжение шлейфов ограничено стабилитронами VD8-VD11. Реле... смотря какие, обычно двойная перегрузка им не вредит. Ну а вообще, сдуру можно и болт сломать. :yes:

:crazy: это понятно.

По поводу минимального напряжения 15В объяснение в #3.

Т.е внешнее питание должно быть больше, чтобы схема питалась от него, а не от аккума. Я так понял. :rolleyes:

Share this post


Link to post
Share on other sites

Т.е внешнее питание должно быть больше, чтобы схема питалась от него, а не от аккума. Я так понял. :rolleyes:

Правильно.

Share this post


Link to post
Share on other sites

Подскажите, пожалуйста, с точки зрения алгоритма функционирования МК (программы), принимает ли он участие в переключении на питание от аккума? Насколько я понимаю, это обеспечивается диодами VD1 и VD3, когда внешнее напряжение становится меньше напряжения аккумулятора, схема начинает питаться от АКБ. Микроконтроллер в данном случае только подает сигнал на включение подзарядки, я правильно понимаю?

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Сообщения

    • У в обшем случае у них комплексный подход, они не зацикливаться на одних лишь "нулях" в ущерб устойчивости, повторямости, массогабаритам, цене и тп. Чего не скажешь о любительских творениях.   
    • Да, тяжёлый случай. От магнитопровода многое зависит...
    • У меня проблема. Мне надо получить с трансформатора как можно выше напряжение с минимальным количеством витков во вторичке его. Начинаю повышать напряжение на первичке его, и тогда это требует повышения числа витков в ней, что бы не шёл активный ток. Но тогда приложенное напряжение делится на большое количество витков первички и тогда ко вторичке прикладывается меньшее напряжение через коэффициент трансформации. Тогда надо повышать частоту. Слышал, что на СВЧ частотах трансформаторы перестают повышать, только на каких?    По расчётам моего трансформатора, его рабочая частота должна быть в районе 1000 Мгц. Будет ли на такой частоте повышать трансформатор напряжение. Или надо частоту по ниже.                                   
    • Собрал обведенную красным часть схемы, хочется посмотреть, как будет работать IR2153. Как оно должно быть, на резисторах R16 и R17 должны быть противоположные меандры? Сами полевики и C13 отсутствует на данный момент. Меандр присутствует только на одном резисторе. Это нормальная работа или искать ошибку? Или какая то часть схемы не собрана и поэтому не работает?  Питание 30 В постоянного, подаю на R5. Может IR хреновая, но вроде бы в чип и дип брал ) Никак не пойму зачем нужен стабилитрон VD2, он ведь будет работать только если с трансформатора на 6ю ногу ИРки пройдет какой то переменный импульс, который пропустит конденсатор C9, если это стабилитрон по питанию ИРки, то питание к нему не пустит VD1... Где я ошибаюсь?
    • "5 колонна" под внешним Управлением. Тогда на "военном приоритете", сейчас на "политическом" и давят на шекель, как будто навальный шторы приоткрыл, что царь ворует. Детали очевидны и Ельский ВУЗ готовит ТОЛЬКО Резидентов. Ни чего не поменяет в корне, СССР давно захвачен и "п-Резидент" не зря получил погремуху "Иуда" (кинул, как вседа, всех, кто его Крышует я не знаю) Здесь тема "о говне", я и сижу сверху, показывая к какой кучке вы гребете. Котенок - вентилятор, дует свнжим воздухом, а то от вас воняет. ))
    • Все можно "скрестить"  вопрос в количестве диодов, и целесообразности. Три мостовых выпрямителя  в каждой фазе, между фазой и нулем, будут равноценны   трем диодам . Анодами к фазам и катодом к нагрузке, ноль берется напрямую. На емкостях фильтра будет напряжение 310 вольт,  но каждая фаза нагрузится только наполовину. Да и из-за внесения постоянной составляющей в сеть ,будет подмагничиваться железоо в трансформаторах и двигателях. Это нехорошо. Можно включать мосты между фазами,  но проще собрать трехфазный мост - схему Ларионова. Нагрузка на фазы равномерная, постоянная составляющая в сеть не идет, все хорошо, кроме того , что на емкостях фильтра будет 380*1.42 = 540 вольт. А вам нужно получить с трех фаз после выпрямления 310 вольт для питания инвертора. Для этого нужно применить трехфазный трансформатор 380-220 , можно автотрансформатор, для уменьшения габаритов. И после него трехфазный мост .
    • Плёнка - самоклейка выглядит откровенно дёшево, да и царапается легко. Я бы оставил как есть, а новодельные делали тоже лаком с морилкой покрыл, под цвет остального. Яхтный лак не так уж сильно воняет, и то, в первые пару часов только.
  • Similar Content

    • By Tulen
      Здарова, железячники. 
      Собираю клавиатуру из 12-ти кнопок, которую подключаю к пичку (PIC18F25K80). Но про клавиатуру не важно, там все разобрано и код сделал уже. Проблема в том, что сейчас нет времени самому писать библиотеку для работы с LCD дисплеем (через недельку-две я сяду и разберусь), поэтому я ищу готовые библиотеки. Дисплей - LM016L, контроллер - HD44780. 
      Нашел одну библиотеку, добавил в код. Компилятор ругается на выводы строчек и не хочет выводить переменные. 
      Прилагаю код:
      IDE - MPLAB X v4.05
      Компилятор - XC8 бесплатный.
      Варнинги от компилятора + строчки:
          PORTC = (data & 0x0F)*16; // newmain.c:46: warning: (373) implicit signed to unsigned conversion     PORTC = (data >> 4)*16; // newmain.c:54: warning: (373) implicit signed to unsigned conversion     PORTC = (data & 0xF)*16; // newmain.c:57: warning: (373) implicit signed to unsigned conversion     WriteByte(addLUT[row] + col); // newmain.c:65: warning: (373) implicit signed to unsigned conversion     SetLCDPosition(LCD_Line+1,0);  // newmain.c:87: warning: (373) implicit signed to unsigned conversion     WriteByte(i); // newmain.c:116: warning: (373) implicit signed to unsigned conversion     ShowStr(b); // newmain.c:160: warning: (357) illegal conversion of integer to pointer     ShowStr("BAD"); // newmain.c:172: warning: (359) illegal conversion between pointer types  
    • By Speed Fighter
      Здарова, инженеры. 
      Не подсобите студню с заданием? 
      Задание, если кому интересно:
      Я подчитнул некоторую теорию, про индикацию, матричную клавиатуру и её опрос. Но вот возникли след. вопросы/трудности:
      1. В случае использования только двух кнопок, целесообразно ли подключать кнопку непосредственно к выводу микроконтроллера? Насколько сильно это упростит решение задачи?
      2. Можно ли где-то посмотреть пример реализации таких клавиатур именно на PIC18? (Уж очень у меня не хватает практики по программированию устройств, всегда на уровне любителя работал на крестах и ему подобных языках для решения мелких проблем и забав)
      3. Можно ли где-то смоделировать моё творение, т.е. посмотреть работоспособность? (MPLAB, proteus, xlinx)
      4. На чем в данном случае рациональнее "кодить" - язык ассемблера или сишка?
      Есть некоторый алгоритм для обработки дребезка контактов:
      https://pp.userapi.com/c840123/v840123038/23a0/IjXofwjEmuc.jpg
      Есть некоторая схемка, которую я в инете откопал:
      https://pp.userapi.com/c840123/v840123038/23a7/-rD4tgCfvLs.jpg
      Так же нашел небольшой код на просторах интернета (увы, он для AVR) :
       
      Благодарю за каждый пендель в нужном направлении, тема-то хорошая.
       
    • By vv7
      Всем привет !
      Столкнулся с проблемой написания кода управления LCD экранчиком под C18 компилятором. В XC8 компиляторе или в MicroC IDE есть те или иные библиотеки для работы с LCD экраном.
      От отчаяния переписываю код из XC8 под C18, но пока ничего не выходит. В виду ускорения процесса ... прошу помощи. Может кто поделиться ?
      Всем откликнувшимся, отдельное спасибо !!!
      Хотя, вот нашёл что-то http://www.romux.com/bootloader/usb-pic18f4550/lcd-hello-world
    • By vv7
      Всем Добрый день, Форумчане !!!
      Всё вот никак не могу понять, как рассчитать время для таймеров в C18 компиляторе. Вот под MicroC - в курсе, а под C18 - ну, вот - никак !
      Есть ли где нормальное описание, что за что отвечает ? Всё перерыскал и собрал хоть какой, но рабочий код из кусочков, который нашёл в инете.
      Камень: PIC18F452
      Среда разработки: MPLAB X, Linux.
      Компилятор C18.
      Программатор: PICkit3
      Кварц на 10 МГц, так как в наличии только 22пкф

      Конфигурация в файле "config_bits.h":

      // PIC18F452 Configuration Bit Settings // 'C' source line config statements #include <p18f452.h> // CONFIG1H #pragma config OSC = HS // Oscillator Selection bits (HS oscillator) #pragma config OSCS = OFF // Oscillator System Clock Switch Enable bit (Oscillator system clock switch option is disabled (main oscillator is source)) // CONFIG2L #pragma config PWRT = OFF // Power-up Timer Enable bit (PWRT disabled) #pragma config BOR = ON // Brown-out Reset Enable bit (Brown-out Reset enabled) #pragma config BORV = 20 // Brown-out Reset Voltage bits (VBOR set to 2.0V) // CONFIG2H #pragma config WDT = OFF // Watchdog Timer Enable bit (WDT disabled (control is placed on the SWDTEN bit)) #pragma config WDTPS = 128 // Watchdog Timer Postscale Select bits (1:128) // CONFIG3H #pragma config CCP2MUX = ON // CCP2 Mux bit (CCP2 input/output is multiplexed with RC1) // CONFIG4L #pragma config STVR = ON // Stack Full/Underflow Reset Enable bit (Stack Full/Underflow will cause RESET) #pragma config LVP = OFF // Low Voltage ICSP Enable bit (Low Voltage ICSP disabled) // CONFIG5L #pragma config CP0 = OFF // Code Protection bit (Block 0 (000200-001FFFh) not code protected) #pragma config CP1 = OFF // Code Protection bit (Block 1 (002000-003FFFh) not code protected) #pragma config CP2 = OFF // Code Protection bit (Block 2 (004000-005FFFh) not code protected) #pragma config CP3 = OFF // Code Protection bit (Block 3 (006000-007FFFh) not code protected) // CONFIG5H #pragma config CPB = OFF // Boot Block Code Protection bit (Boot Block (000000-0001FFh) not code protected) #pragma config CPD = OFF // Data EEPROM Code Protection bit (Data EEPROM not code protected) // CONFIG6L #pragma config WRT0 = OFF // Write Protection bit (Block 0 (000200-001FFFh) not write protected) #pragma config WRT1 = OFF // Write Protection bit (Block 1 (002000-003FFFh) not write protected) #pragma config WRT2 = OFF // Write Protection bit (Block 2 (004000-005FFFh) not write protected) #pragma config WRT3 = OFF // Write Protection bit (Block 3 (006000-007FFFh) not write protected) // CONFIG6H #pragma config WRTC = OFF // Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) not write protected) #pragma config WRTB = OFF // Boot Block Write Protection bit (Boot Block (000000-0001FFh) not write protected) #pragma config WRTD = OFF // Data EEPROM Write Protection bit (Data EEPROM not write protected) // CONFIG7L #pragma config EBTR0 = OFF // Table Read Protection bit (Block 0 (000200-001FFFh) not protected from Table Reads executed in other blocks) #pragma config EBTR1 = OFF // Table Read Protection bit (Block 1 (002000-003FFFh) not protected from Table Reads executed in other blocks) #pragma config EBTR2 = OFF // Table Read Protection bit (Block 2 (004000-005FFFh) not protected from Table Reads executed in other blocks) #pragma config EBTR3 = OFF // Table Read Protection bit (Block 3 (006000-007FFFh) not protected from Table Reads executed in other blocks) // CONFIG7H #pragma config EBTRB = OFF // Boot Block Table Read Protection bit (Boot Block (000000-0001FFh) not protected from Table Reads executed in other blocks) #pragma target clock 10_000_000
      Сам код:

      #include "config_bits.h" #include <stdio.h> #include <stdlib.h> #include <timers.h> void high_isr (void); // ?????! #pragma code high_vector = 0x08 void interrupt_at_high_vector(void) { _asm GOTO high_isr _endasm } #pragma interrupt high_isr // Зачем эти приоритеты ?! void high_isr (void) { static int o = 0; if (INTCONbits.TMR0IF){ INTCONbits.TMR0IF = 0; TMR0H = 0x85; // Здесь, я так понял, всё обнуляем ... TMR0L = 0xEE; // И тут // Юзер [b]Alex[/b] попросил меня изменить данный цикл, я потом изменю, но как-то всё разберу окончательно !! Спасибо !!! if ( o == 0 ) { PORTB = 0x0E; o = 1; } else if ( o == 1 ) { PORTB = 0x0D; o = 2; } else if ( o == 2 ) { PORTB = 0x0B; o = 3; } else if ( o == 3 ) { PORTB = 0x07; o = 4; } else if ( o == 4 ) { PORTB = 0x0B; o = 5; } else if ( o == 5 ) { PORTB = 0x0D; o = 0; } } } void main (void) { // Тут просто распределяем выходы, входы и номиналы. TRISA = 0x00; PORTA = 0x00; TRISB = 0xF0; PORTB = 0x0F; TRISC = 0x00; PORTC = 0x00; TRISD = 0x00; PORTD = 0x00; TRISE = 0x00; PORTE = 0x00; ADCON1 = 0x0F; // Тут та самая **па T0CON = 0x85; // Регистр контроля ? Почему 0x85 ? 10000101 - я так понял включает определённые биты в этом регистре. В даташите были прописаны определённые биты, но почему именно эти !? TMR0H = 0x85; // Вписываем что-то в таймер ? 10000101, опять ? TMR0L = 0xEE; // Тут также ? Почему 11101110 ? INTCON = 0x20; // Регистры прерывания ?! INTCON2 = 0x04; // ? RCONbits.IPEN = 1; // Включаем приоритеты ? T0CON = 0x85; // Опять регистр контроля ? TMR0H = 0x85; // Вписываем что-то опять в таймер ? TMR0L = 0xEE; // Тут опять также ? INTCONbits.GIEH = 1; // Активирует все высокие приоритеты ? while (1) { } }
      Сам код работает стабильно на живой схеме, но точно не в 1 секунду.

      ------------------------------------------


      Собсно, сам вопрос ... ну вот как тут научиться рассчитать хоть 0.00001с или что, за что отвечает. Я рыскал в инете и под каждый компилятор всё по разному ... есть ли где литература или хоть что-то, где можно найти ответы на эти вопросы !!!?
      Нашёл пару информаций по сайтам, например ... http://ee.cgu.edu.tw...uP102_Timer.pdf, но, блин, может кто нормально объяснить что и зачем ? Я буду очень благодарен ! Спасибо и дай Бог вам счастья и здоровья !!! :thank_you2:
    • By vv7
      Всем привет !
      Да, вот так вот. Опять светодиод и опять не запускается.
      В чём косяк ?
      Питание - от автозарядки для мобилки ( 12В -> 5В ).
      Среда разработки ( IDE ): MPLAB X v3.35 Linux, компилятор C18.
      Программатор: PICKit3
      Прошивка, по-моему - нормальная.
      Сконфигурирован - нормально. ( Или нет ? )
      Элементы все рабочие.
      В наличие есть кварц: 4, 8, 10 МГц.
      Фотка со схемкой - в атаче.
      Осциллографа под рукой - нет .
      Исходник прошивки:

      #include "config_bits.h" #include <stdio.h> #include <stdlib.h> void main (void) { int i = 0; TRISA = 0x00; PORTA = 0x00; TRISB = 0x00; PORTB = 0xFF; TRISC = 0x00; PORTC = 0x00; TRISD = 0x00; PORTD = 0x00; TRISE = 0x00; PORTE = 0x00; while (1) { for ( i = 0; i < 1000000; i++) { PORTB = !PORTB; } } }
      Файл "config_bits.h":

      // PIC18F452 Configuration Bit Settings // 'C' source line config statements #include <p18f452.h> // CONFIG1H #pragma config OSC = HS // Oscillator Selection bits (HS oscillator) #pragma config OSCS = OFF // Oscillator System Clock Switch Enable bit (Oscillator system clock switch option is disabled (main oscillator is source)) // CONFIG2L #pragma config PWRT = OFF // Power-up Timer Enable bit (PWRT disabled) #pragma config BOR = ON // Brown-out Reset Enable bit (Brown-out Reset enabled) #pragma config BORV = 20 // Brown-out Reset Voltage bits (VBOR set to 2.0V) // CONFIG2H #pragma config WDT = OFF // Watchdog Timer Enable bit (WDT disabled (control is placed on the SWDTEN bit)) #pragma config WDTPS = 128 // Watchdog Timer Postscale Select bits (1:128) // CONFIG3H #pragma config CCP2MUX = ON // CCP2 Mux bit (CCP2 input/output is multiplexed with RC1) // CONFIG4L #pragma config STVR = ON // Stack Full/Underflow Reset Enable bit (Stack Full/Underflow will cause RESET) #pragma config LVP = OFF // Low Voltage ICSP Enable bit (Low Voltage ICSP disabled) // CONFIG5L #pragma config CP0 = OFF // Code Protection bit (Block 0 (000200-001FFFh) not code protected) #pragma config CP1 = OFF // Code Protection bit (Block 1 (002000-003FFFh) not code protected) #pragma config CP2 = OFF // Code Protection bit (Block 2 (004000-005FFFh) not code protected) #pragma config CP3 = OFF // Code Protection bit (Block 3 (006000-007FFFh) not code protected) // CONFIG5H #pragma config CPB = OFF // Boot Block Code Protection bit (Boot Block (000000-0001FFh) not code protected) #pragma config CPD = OFF // Data EEPROM Code Protection bit (Data EEPROM not code protected) // CONFIG6L #pragma config WRT0 = OFF // Write Protection bit (Block 0 (000200-001FFFh) not write protected) #pragma config WRT1 = OFF // Write Protection bit (Block 1 (002000-003FFFh) not write protected) #pragma config WRT2 = OFF // Write Protection bit (Block 2 (004000-005FFFh) not write protected) #pragma config WRT3 = OFF // Write Protection bit (Block 3 (006000-007FFFh) not write protected) // CONFIG6H #pragma config WRTC = OFF // Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) not write protected) #pragma config WRTB = OFF // Boot Block Write Protection bit (Boot Block (000000-0001FFh) not write protected) #pragma config WRTD = OFF // Data EEPROM Write Protection bit (Data EEPROM not write protected) // CONFIG7L #pragma config EBTR0 = OFF // Table Read Protection bit (Block 0 (000200-001FFFh) not protected from Table Reads executed in other blocks) #pragma config EBTR1 = OFF // Table Read Protection bit (Block 1 (002000-003FFFh) not protected from Table Reads executed in other blocks) #pragma config EBTR2 = OFF // Table Read Protection bit (Block 2 (004000-005FFFh) not protected from Table Reads executed in other blocks) #pragma config EBTR3 = OFF // Table Read Protection bit (Block 3 (006000-007FFFh) not protected from Table Reads executed in other blocks) // CONFIG7H #pragma config EBTRB = OFF // Boot Block Table Read Protection bit (Boot Block (000000-0001FFh) not protected from Table Reads executed in other blocks)
      Проблема: Он то ли не запускается, то ли ещё что-то. Светодиод на 30 ножке ( PORTBbits.RB0 ( B0 ) ) просто горит. А ведь в программе я прописал, чтоб весь блок B периодически переключался на противоположенное значение, но этого не происходит. Менял значения цикла от 1000000 до 10 - 0 по цельсию.
      Вопрос, что может быть. Может минус плохой и на монтажных схемках такого рода ( как на фотке ) собирать схемы на МК - плохая идея ? Аля нужно паять ?!
      Спасибо !!!



×
×
  • Create New...