Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Internal RC
Internal RC
QWERTY Дата: Сб, 05.01.2013, 15:35  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 73
Репутация: 0   ±
Замечания:   ±
На сайте с 11.05.2008

Статус: Offline

Принесли девайсину на пике. Погорела с дымом и феерверком. Стоял проц 16F819. Поменял кренки, конденсаторы, проц, выходные ключи. Написал прогу, прошил, отдал. Предыдущий пик работал от встроенного RC генератора. Вопрос меня поставил в тупик. cool Пришлось доработать плату и установить кварц 4мгц и два конденсатора.
Вопрос знатокам: Как правильно в протоне организовать работу от встроенного генератора?
ЯНДЕКС Дата: 05.01.2013
Andriy76 Дата: Сб, 05.01.2013, 16:24  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 231
Репутация: 10   ±
Замечания:   ±
На сайте с 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
Если ничего не напутал smile
ivan_fd Дата: Сб, 05.01.2013, 16:37  |                                                                                                                Сообщение # 3
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 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
Репутация: 0   ±
Замечания:   ±
На сайте с 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 совершаю колдунства cool , но бывает и пики пользую. Так что не помешает.

Добавлено (05.01.2013, 16:45)
---------------------------------------------
ivan_fd, а можно подробнее про строку инициализации?

ivan_fd Дата: Сб, 05.01.2013, 17:46  |                                                                                                                Сообщение # 5
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Нужно прописать значение для 4МГц в регистр OSCCON.

QWERTY Дата: Сб, 05.01.2013, 18:32  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 73
Репутация: 0   ±
Замечания:   ±
На сайте с 11.05.2008

Статус: Offline

Цитата (ivan_fd)
Нужно прописать значение для 4МГц в регистр OSCCON.


Я читал пдф. В пдфке ни чего про команды протона нет))) Мне нужно знать какой командой протона записать эти значения в регистр?
Желательно с примером, если можна канешна wacko

Добавлено (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
Репутация: 9   ±
Замечания:   ±
На сайте с 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
Репутация: 0   ±
Замечания:   ±
На сайте с 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
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Ваш код, что выше, конфигурация нормальная.
Еще нужно прописать XTAL = 4.

И перед main поставьте ---

OSCCON = %01100100 - просто присваиваете значение регистру.
QWERTY Дата: Сб, 05.01.2013, 23:11  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 73
Репутация: 0   ±
Замечания:   ±
На сайте с 11.05.2008

Статус: Offline

ivan_fd, пожалуйста, напишите шапку до main, как она должна работать. Я ни чего понять не могу или совсем запутался уже. wacko
ivan_fd Дата: Сб, 05.01.2013, 23:23  |                                                                                                                Сообщение # 11
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Пожалуйста.

Так для примера.
Прикрепления: Test16f819.zip (34.8 Kb)
ЯНДЕКС Дата: 05.01.2013
QWERTY Дата: Сб, 05.01.2013, 23:57  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 73
Репутация: 0   ±
Замечания:   ±
На сайте с 11.05.2008

Статус: Offline

светодиоды просто светятся и все. Увеличение задержки до 500ms ни к чему не приводит. cry

Добавлено (05.01.2013, 23:57)
---------------------------------------------
упс....... касаюсь земли на плате, все работает... Перепаял прогер на донорскую плату и прошил в родной среде обитания.
Светится цуко. касаюсь пальцем земли начинает моргать...
Сделаю видео и выложу

Broka Дата: Вс, 06.01.2013, 15:15  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 253
Репутация: 9   ±
Замечания:   ±
На сайте с 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
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 550
Репутация: 27   ±
Замечания:   ±
На сайте с 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 более устойчивый к помехам? wink

Сообщение отредактировал MiXaS - Ср, 17.12.2014, 23:08
xvovanx Дата: Чт, 18.12.2014, 22:46  |                                                                                                                Сообщение # 15
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 326
Репутация: 59   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата MiXaS ()
Тогда вопрос, что 628 более устойчивый к помехам?

Скорее он просто "деревянее", чип "толще",емкости меньше.

P.S. по аналогии из юности - 155 логика работает от питания с такими пульсациями, от которых 555 "тошнило" biggrin
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Internal RC
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: