Internal RC
|
|
QWERTY |
Дата: Сб, 05.01.2013, 15:35 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
73
Замечания:
±
На сайте с 11.05.2008
Статус:
Offline
|
Принесли девайсину на пике. Погорела с дымом и феерверком. Стоял проц 16F819. Поменял кренки, конденсаторы, проц, выходные ключи. Написал прогу, прошил, отдал. Предыдущий пик работал от встроенного RC генератора. Вопрос меня поставил в тупик. Пришлось доработать плату и установить кварц 4мгц и два конденсатора. Вопрос знатокам: Как правильно в протоне организовать работу от встроенного генератора?
|
|
|
|
Andriy76 |
Дата: Сб, 05.01.2013, 16:24 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
231
Замечания:
±
На сайте с 06.04.2010
Статус:
Offline
|
Для Протона есть Фусе конфигуратор . Можно им настроить . Если не найдете скину сюда . CONFIG CP_OFF, CCP1_RB2, DEBUG_OFF, WRT_OFF, CPD_OFF, LVP_OFF, MCLRE_ON, PWRTE_OFF, WDTE_OFF, INTRC_IO, BOREN_ON, CP_OFF, WDT_ON, WRT_OFF Если ничего не напутал
|
|
|
|
ivan_fd |
Дата: Сб, 05.01.2013, 16:37 | Сообщение # 3 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Код Device = 16F819
Declare Reminders Off @ CONFIG_REQ = 0 ; Override Compiler's configuration settings Asm- __Config 0x3F70 ;FOSC_INTOSCIO & WDTE_OFF & PWRTE_ON & MCLRE_ON & BOREN_ON & LVP_OFF & CPD_OFF & WRT_OFF & DEBUG_OFF & CCPMX_RB2 & CP_OFF Endasm- Declare Reminders On
Например вот так. Но, если Вам нужно именно 4МГц, то нужно еще ппрописать регистр OSCCON. Потому, что при дефолтных параметрах будет работать на 8МГц.
|
|
|
|
QWERTY |
Дата: Сб, 05.01.2013, 16:45 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
73
Замечания:
±
На сайте с 11.05.2008
Статус:
Offline
|
Цитата (Andriy76) Для Протона есть Фусе конфигуратор . Можно им настроить . Если не найдете скину сюда . CONFIG CP_OFF, CCP1_RB2, DEBUG_OFF, WRT_OFF, CPD_OFF, LVP_OFF, MCLRE_ON, PWRTE_OFF, WDTE_OFF, INTRC_IO, BOREN_ON, CP_OFF, WDT_ON, WRT_OFF Если ничего не напутал Смело скидывайте сюда)) Я чаще всего на ATMEL совершаю колдунства , но бывает и пики пользую. Так что не помешает.Добавлено (05.01.2013, 16:45) --------------------------------------------- ivan_fd, а можно подробнее про строку инициализации?
|
|
|
|
ivan_fd |
Дата: Сб, 05.01.2013, 17:46 | Сообщение # 5 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Нужно прописать значение для 4МГц в регистр OSCCON.
|
|
|
|
QWERTY |
Дата: Сб, 05.01.2013, 18:32 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
73
Замечания:
±
На сайте с 11.05.2008
Статус:
Offline
|
Цитата (ivan_fd) Нужно прописать значение для 4МГц в регистр OSCCON.
Я читал пдф. В пдфке ни чего про команды протона нет))) Мне нужно знать какой командой протона записать эти значения в регистр? Желательно с примером, если можна канешна Добавлено (05.01.2013, 18:32) --------------------------------------------- я слепил уже платку с 16f819 и припаял светодиоды на порты. Написал программку:
Код Device = 16F819 Declare Reminders Off @ CONFIG_REQ = 0 ; Override Compiler's configuration settings Asm- __Config 0x3F70 ;FOSC_INTOSCIO & WDTE_OFF & PWRTE_ON & MCLRE_ON & BOREN_ON & LVP_OFF & CPD_OFF & WRT_OFF & DEBUG_OFF & CCPMX_RB2 & CP_OFF Endasm- Declare Reminders On main: PORTB.0 =1 PORTB.1 =1 PORTB.2 =1 PORTB.3 =1 DelayMS 100 PORTB.0 =0 PORTB.1 =0 PORTB.2 =0 PORTB.3 =0 DelayMS 100 GoTo main End
Что нужно сделать, чтобы она заработала от внутреннего генератора?
|
|
|
|
Broka |
Дата: Сб, 05.01.2013, 20:02 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
253
Замечания:
±
На сайте с 30.09.2009
Статус:
Offline
|
Цитата (QWERTY) Что нужно сделать, чтобы она заработала от внутреннего генератора?
Ну наверно в конфигурации ( в начале программы ) надо записать вот так : INTRC_OSC_NOCLK.(Работа от внутреннего генератора ).ну а остальную конфигурацию ты должен определить сам, нужно ли то или иное
Простой пример: Config PWRTE_ON, WDT_OFF, MCLRE_ON, INTRC_OSC_NOCLKOUT
Наладчик КИП и А
Сообщение отредактировал
Broka - Сб, 05.01.2013, 20:05
|
|
|
|
QWERTY |
Дата: Сб, 05.01.2013, 21:39 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
73
Замечания:
±
На сайте с 11.05.2008
Статус:
Offline
|
Broka, я так понимаю, INTRC_OSC_NOCLK ( хотя смысловое intrc - внутренняя PC цепь, NOCLK - нет тиков, тактов, или нет генерации.) Ну пусть эта фраза задает работу от внутреннего генератора,тогда как задавать частоту этого генератора? По даташиту, эта частота шевелится в значительном диапазоне от 125 кГц до 8 мГц. Добавлено (05.01.2013, 21:39) --------------------------------------------- Мне просто нужна фраза конфигурации внутреннего генератора. ватчдоги и прочие функции не интересуют.
|
|
|
|
ivan_fd |
Дата: Сб, 05.01.2013, 22:51 | Сообщение # 9 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Ваш код, что выше, конфигурация нормальная. Еще нужно прописать XTAL = 4.
И перед main поставьте ---
OSCCON = %01100100 - просто присваиваете значение регистру.
|
|
|
|
QWERTY |
Дата: Сб, 05.01.2013, 23:11 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
73
Замечания:
±
На сайте с 11.05.2008
Статус:
Offline
|
ivan_fd, пожалуйста, напишите шапку до main, как она должна работать. Я ни чего понять не могу или совсем запутался уже.
|
|
|
|
ivan_fd |
Дата: Сб, 05.01.2013, 23:23 | Сообщение # 11 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Пожалуйста.
Так для примера.
|
|
|
|
QWERTY |
Дата: Сб, 05.01.2013, 23:57 | Сообщение # 12 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
73
Замечания:
±
На сайте с 11.05.2008
Статус:
Offline
|
светодиоды просто светятся и все. Увеличение задержки до 500ms ни к чему не приводит. Добавлено (05.01.2013, 23:57) --------------------------------------------- упс....... касаюсь земли на плате, все работает... Перепаял прогер на донорскую плату и прошил в родной среде обитания. Светится цуко. касаюсь пальцем земли начинает моргать... Сделаю видео и выложу
|
|
|
|
Broka |
Дата: Вс, 06.01.2013, 15:15 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
253
Замечания:
±
На сайте с 30.09.2009
Статус:
Offline
|
QWERTY, Извиняюсь за свою не внимательность, по привычке написал для 16F628. ( Intrc_osc_noclk ) это не правильно.
Пробовал вот так...., всё работает ! '-------------------------- Опции компилятора -------------------------------- Declare SHOW_SYSTEM_VARIABLES = OFF ' При симуляции в Proteus не показывать внутренние переменные Declare FSR_CONTEXT_SAVE = OFF ' Не заботиться о сохранении содержимого регистра FSR Declare Reminders = OFF ' Выключить напоминания компилятора Declare Warnings = OFF ' Выключить предупреждения компилятора Declare Optimiser_Level 1 ' Включить оптимизацию программы Declare Bootloader = OFF ' Выключить загрузчик ;-------------------------- Общие настройки------------------------------------ Device = 16F819 ' Используемый микроконтроллер Xtal = 4 ' Частота осциллятора 4 МГц '-------------------------- Конфигурация программирования -------------------- Config CP_OFF, DEBUG_OFF, WRTE_OFF, CPD_OFF, LVP_OFF, BODEN_OFF, MCLRE_ON, PWRTE_ON, WDT_OFF, INTRC_IO '-------------------------- Настройки портов --------------------------------- PortB_Pullups = OFF ' Выключить подтягивающие резисторы на PORTB Declare All_Digital = On ' Установить все порты цифровыми входами/выходами TRISA = %00000000 TRISB = %00000000 PORTA = 0 PORTB = 0 OSCCON = %01100100 '-------------------------- Регистры специального назначения-------------------
Main: PORTB.0 = 1 DelayMS 200 PORTB.0 = 0 PORTB.1 = 1 DelayMS 200 PORTB.1 = 0 PORTB.2 = 1 DelayMS 200 PORTB.2 = 0 DelayMS 1000 GoTo Main End
Наладчик КИП и А
|
|
|
|
MiXaS |
Дата: Чт, 18.12.2014, 16:10 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Привет всем! Не стал создавать новую тему, вопрос не стоит темы. Купил сыну электромотоцикл, все вроде бы хорошо, но рвет он с места сильно, тем самым пугает наездника, точит колесо, убивает большими токами акк, ну и весь привод. Я решил его допилить и на контроллере собрать железку, которая бы управляла оборотами двигла, включала реверс, подавала команду на тормоз, а также показывала напряжение на источнике.От электровелосипеда валялась дома ручка газа на датчике холла, которая и будет менять обороты двигателя, также дома нашел от РУ модели регулятор скорости veloci на 400а, (думаю хватит) и начал софтить. Немного покурив даташит, я разобрался с внутренним генератором, как и на какую скорость его настроить. Для индикации взял 7 сигментный индикатор на 3 разряда, а так как на все хотелки ног не хватало, то я использовал max7221(был в наличии).У этого пика есть модуль ssp, но мне было проще использовать команду shout. С помощью мигающего лед и секундомера я убедился, что гена работает правильно. Потом решил накидать пример для отображения на индикаторе, что мне нужно. Все получилось, новот тут началось. Использую пик 16f818 (думал что припаленный поменял на 819, но это не помогло). На индикатор вывожу инкремент переменной каждые 100мс, сначала все работает, потом в какой—то момент индикатор начинает артефакты показывать, интервал прироста переменной изменяется, а иногда и зависает контроллер. Ладно думаю, перевел на внешний HS генератор, таже история. Для наглядности подцепил светодиод на портб.0 и прописал portb.0=~portb.0,смотрю как он моргает(Да, забыл, макс тоже висит на порту б). Как показала практика диод тоже нестабильно моргает. Ну думаю ладно, убрал строчку с инверсией порта, прошил, а светодиод моргает, только вообще без какого–либо закона, хаотично. Подцепил на другую ногу(тот же портб), та же история. Начал опять ковырять даташит, поотключал всю переферию (ну, по крайней мере я так думаю), мультиплицированную на порту б. Все–равно, при выводе данных через spi на макс 7221, весь порт дергается. поменял контроллер с 818 на 819, не помогло. Поменял на 628, ну чтобы исключить печатную плату, все работает идеально, без дерганий и зависаний. Возвращаю 819, колбасит. Решил изменить порты, но это тоже не помогло. Завтра думаю поставить кондер прям на макса, где–то 1000мкф, может он в сеть гадит, тогда почему 628 работает? Добавлено (18.12.2014, 16:10) --------------------------------------------- Ну, так и получилось. Макс сильно какал в сеть, чем сводил с ума контроллер, кондер спас ситуацию. Тогда вопрос, что 628 более устойчивый к помехам?
Сообщение отредактировал
MiXaS - Ср, 17.12.2014, 23:08
|
|
|
|
xvovanx |
Дата: Чт, 18.12.2014, 22:46 | Сообщение # 15 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
328
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Цитата MiXaS ( ) Тогда вопрос, что 628 более устойчивый к помехам? Скорее он просто "деревянее", чип "толще",емкости меньше.
P.S. по аналогии из юности - 155 логика работает от питания с такими пульсациями, от которых 555 "тошнило"
|
|
|
|