Технический форум по робототехнике.
Правила форума
В данном разделе каждый может иметь не более одной темы. Тема должна начинаться с логина (ника) робофорума.
dccharacter » 18 сен 2012, 03:27
даблиннесмешно:
To specify Configuration bit settings, select
Configure>Configuration Bits....
Нету такого в MPLAB X, более того, прямо в хелпе написано - конфиг биты надо устанавливать В КОДЕ. Ага, щас я пойду АСМ учить.
Добавлено спустя 21 минуту 48 секунд:
мда, фейл. bootloader not found. отличный аппноут и все такое.
Dmitry__ » 18 сен 2012, 03:54
не?

dccharacter » 18 сен 2012, 04:55
это Си, а код аппнота на асме. На асме то же самое - генерит код, но я фиг знает как эти директивы в асм вставлять. В общем все глухо, с си бы я еще поборолся, а тут глухомань полная. Причем классно генерит, асм офигевает от этого: "// PIC16F1827 Configuration Bit Settings"
- Код: Выделить всё • Развернуть
// PIC16F1827 Configuration Bit Settings
; CONFIG1
CONFIG FOSC = ECH ; Oscillator Selection (ECH, External Clock, High Power Mode (4-32 MHz): device clock supplied to CLKIN pin)
CONFIG WDTE = OFF ; Watchdog Timer Enable (WDT disabled)
CONFIG PWRTE = OFF ; Power-up Timer Enable (PWRT disabled)
CONFIG MCLRE = ON ; MCLR Pin Function Select (MCLR/VPP pin function is MCLR)
CONFIG CP = OFF ; Flash Program Memory Code Protection (Program memory code protection is disabled)
CONFIG CPD = OFF ; Data Memory Code Protection (Data memory code protection is disabled)
CONFIG BOREN = ON ; Brown-out Reset Enable (Brown-out Reset enabled)
CONFIG CLKOUTEN = OFF ; Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)
CONFIG IESO = ON ; Internal/External Switchover (Internal/External Switchover mode is enabled)
CONFIG FCMEN = ON ; Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled)
; CONFIG2
CONFIG WRT = OFF ; Flash Memory Self-Write Protection (Write protection off)
CONFIG PLLEN = ON ; PLL Enable (4x PLL enabled)
CONFIG STVREN = ON ; Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset)
CONFIG BORV = LO ; Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
CONFIG LVP = OFF ; Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming)
Dmitry__ » 18 сен 2012, 05:22
гыг, в асме еще проще:
Ищешь в исходнике асма определялку проца, например: "include p18f2520.inc"
Открываешь этот файл текстовым редактором и находишь "CONFIG" (в самом конце файла)
там все описано:
- Код: Выделить всё • Развернуть
;==========================================================================
;
; IMPORTANT: For the PIC18 devices, the __CONFIG directive has been
; superseded by the CONFIG directive. The following settings
; are available for this device.
;
; Oscillator Selection bits:
; OSC = LP LP oscillator
; OSC = XT XT oscillator
; OSC = HS HS oscillator
; OSC = RC External RC oscillator, CLKO function on RA6
; OSC = EC EC oscillator, CLKO function on RA6
; OSC = ECIO6 EC oscillator, port function on RA6
; OSC = HSPLL HS oscillator, PLL enabled (Clock Frequency = 4 x FOSC1)
; OSC = RCIO6 External RC oscillator, port function on RA6
; OSC = INTIO67 Internal oscillator block, port function on RA6 and RA7
; OSC = INTIO7 Internal oscillator block, CLKO function on RA6, port function on RA7
;
; Fail-Safe Clock Monitor Enable bit:
; FCMEN = OFF Fail-Safe Clock Monitor disabled
; FCMEN = ON Fail-Safe Clock Monitor enabled
;
; Internal/External Oscillator Switchover bit:
; IESO = OFF Oscillator Switchover mode disabled
; IESO = ON Oscillator Switchover mode enabled
;
; Power-up Timer Enable bit:
; PWRT = ON PWRT enabled
; PWRT = OFF PWRT disabled
;
; Brown-out Reset Enable bits:
; BOREN = OFF Brown-out Reset disabled in hardware and software
; BOREN = ON Brown-out Reset enabled and controlled by software (SBOREN is enabled)
; BOREN = NOSLP Brown-out Reset enabled in hardware only and disabled in Sleep mode (SBOREN is disabled)
; BOREN = SBORDIS Brown-out Reset enabled in hardware only (SBOREN is disabled)
;
; Brown Out Reset Voltage bits:
; BORV = 0 Maximum setting
; BORV = 1
; BORV = 2
; BORV = 3 Minimum setting
;
; Watchdog Timer Enable bit:
; WDT = OFF WDT disabled (control is placed on the SWDTEN bit)
; WDT = ON WDT enabled
;
; Watchdog Timer Postscale Select bits:
; WDTPS = 1 1:1
; WDTPS = 2 1:2
; WDTPS = 4 1:4
; WDTPS = 8 1:8
; WDTPS = 16 1:16
; WDTPS = 32 1:32
; WDTPS = 64 1:64
; WDTPS = 128 1:128
; WDTPS = 256 1:256
; WDTPS = 512 1:512
; WDTPS = 1024 1:1024
; WDTPS = 2048 1:2048
; WDTPS = 4096 1:4096
; WDTPS = 8192 1:8192
; WDTPS = 16384 1:16384
; WDTPS = 32768 1:32768
;
; CCP2 MUX bit:
; CCP2MX = PORTBE CCP2 input/output is multiplexed with RB3
; CCP2MX = PORTC CCP2 input/output is multiplexed with RC1
;
; PORTB A/D Enable bit:
; PBADEN = OFF PORTB<4:0> pins are configured as digital I/O on Reset
; PBADEN = ON PORTB<4:0> pins are configured as analog input channels on Reset
;
; Low-Power Timer1 Oscillator Enable bit:
; LPT1OSC = OFF Timer1 configured for higher power operation
; LPT1OSC = ON Timer1 configured for low-power operation
;
; MCLR Pin Enable bit:
; MCLRE = OFF RE3 input pin enabled; MCLR disabled
; MCLRE = ON MCLR pin enabled; RE3 input pin disabled
;
; Stack Full/Underflow Reset Enable bit:
; STVREN = OFF Stack full/underflow will not cause Reset
; STVREN = ON Stack full/underflow will cause Reset
;
; Single-Supply ICSP Enable bit:
; LVP = OFF Single-Supply ICSP disabled
; LVP = ON Single-Supply ICSP enabled
;
; Extended Instruction Set Enable bit:
; XINST = OFF Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
; XINST = ON Instruction set extension and Indexed Addressing mode enabled
;
; Background Debugger Enable bit:
; DEBUG = ON Background debugger enabled, RB6 and RB7 are dedicated to In-Circuit Debug
; DEBUG = OFF Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
;
; Code Protection bit:
; CP0 = ON Block 0 (000800-001FFFh) code-protected
; CP0 = OFF Block 0 (000800-001FFFh) not code-protected
;
; Code Protection bit:
; CP1 = ON Block 1 (002000-003FFFh) code-protected
; CP1 = OFF Block 1 (002000-003FFFh) not code-protected
;
; Code Protection bit:
; CP2 = ON Block 2 (004000-005FFFh) code-protected
; CP2 = OFF Block 2 (004000-005FFFh) not code-protected
;
; Code Protection bit:
; CP3 = ON Block 3 (006000-007FFFh) code-protected
; CP3 = OFF Block 3 (006000-007FFFh) not code-protected
;
; Boot Block Code Protection bit:
; CPB = ON Boot block (000000-0007FFh) code-protected
; CPB = OFF Boot block (000000-0007FFh) not code-protected
;
; Data EEPROM Code Protection bit:
; CPD = ON Data EEPROM code-protected
; CPD = OFF Data EEPROM not code-protected
;
; Write Protection bit:
; WRT0 = ON Block 0 (000800-001FFFh) write-protected
; WRT0 = OFF Block 0 (000800-001FFFh) not write-protected
;
; Write Protection bit:
; WRT1 = ON Block 1 (002000-003FFFh) write-protected
; WRT1 = OFF Block 1 (002000-003FFFh) not write-protected
;
; Write Protection bit:
; WRT2 = ON Block 2 (004000-005FFFh) write-protected
; WRT2 = OFF Block 2 (004000-005FFFh) not write-protected
;
; Write Protection bit:
; WRT3 = ON Block 3 (006000-007FFFh) write-protected
; WRT3 = OFF Block 3 (006000-007FFFh) not write-protected
;
; Configuration Register Write Protection bit:
; WRTC = ON Configuration registers (300000-3000FFh) write-protected
; WRTC = OFF Configuration registers (300000-3000FFh) not write-protected
;
; Boot Block Write Protection bit:
; WRTB = ON Boot block (000000-0007FFh) write-protected
; WRTB = OFF Boot block (000000-0007FFh) not write-protected
;
; Data EEPROM Write Protection bit:
; WRTD = ON Data EEPROM write-protected
; WRTD = OFF Data EEPROM not write-protected
;
; Table Read Protection bit:
; EBTR0 = ON Block 0 (000800-001FFFh) protected from table reads executed in other blocks
; EBTR0 = OFF Block 0 (000800-001FFFh) not protected from table reads executed in other blocks
;
; Table Read Protection bit:
; EBTR1 = ON Block 1 (002000-003FFFh) protected from table reads executed in other blocks
; EBTR1 = OFF Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
;
; Table Read Protection bit:
; EBTR2 = ON Block 2 (004000-005FFFh) protected from table reads executed in other blocks
; EBTR2 = OFF Block 2 (004000-005FFFh) not protected from table reads executed in other blocks
;
; Table Read Protection bit:
; EBTR3 = ON Block 3 (006000-007FFFh) protected from table reads executed in other blocks
; EBTR3 = OFF Block 3 (006000-007FFFh) not protected from table reads executed in other blocks
;
; Boot Block Table Read Protection bit:
; EBTRB = ON Boot block (000000-0007FFh) protected from table reads executed in other blocks
; EBTRB = OFF Boot block (000000-0007FFh) not protected from table reads executed in other blocks
;
;==========================================================================
;==========================================================================
;
; Configuration Bits
;
; NAME Address
; CONFIG1H 300001h
; CONFIG2L 300002h
; CONFIG2H 300003h
; CONFIG3H 300005h
; CONFIG4L 300006h
; CONFIG5L 300008h
; CONFIG5H 300009h
; CONFIG6L 30000Ah
; CONFIG6H 30000Bh
; CONFIG7L 30000Ch
; CONFIG7H 30000Dh
;
;==========================================================================
; The following is an assignment of address values for all of the
; configuration registers for the purpose of table reads
_CONFIG1H EQU H'300001'
_CONFIG2L EQU H'300002'
_CONFIG2H EQU H'300003'
_CONFIG3H EQU H'300005'
_CONFIG4L EQU H'300006'
_CONFIG5L EQU H'300008'
_CONFIG5H EQU H'300009'
_CONFIG6L EQU H'30000A'
_CONFIG6H EQU H'30000B'
_CONFIG7L EQU H'30000C'
_CONFIG7H EQU H'30000D'
Вот пример проги:
- Код: Выделить всё • Развернуть
IFDEF __18F2520
include p18f2520.inc
;*************************************************************************
CONFIG OSC = HSPLL ;Oscillator Selection
CONFIG BOREN = ON, BORV = 2, PWRT = ON ;Brown-out Reset, Brown-out Voltage, Power-up Timer
CONFIG WDT = OFF, WDTPS = 128 ;Watchdog Timer, Watchdog Postscaler
CONFIG LVP = OFF, STVREN = OFF ;Low Voltage ICSP, Stack Overflow Reset
CONFIG DEBUG = OFF ;Background Debugger Enable
CONFIG CP0 = ON, CP1 = ON, CP2 = ON, CP3 = ON ;Code Protection Block 0,1,2,3
CONFIG CPB = ON ;Boot Block Code Protection
CONFIG CPD = ON ;Data EEPROM Code Protection
CONFIG WRT0 = ON, WRT1 = ON, WRT2 = ON, WRT3 = ON ;Write Protection Block 0,1,2,3
CONFIG WRTB = ON ;Boot Block Write Protection
CONFIG WRTC = ON ;Configuration Register Write Protection
CONFIG WRTD = ON ;Data EEPROM Write Protection
; CONFIG EBTR0 = ON, EBTR1 = ON, EBTR2 = ON, EBTR3 = ON ;Table Read Protection Block 0,1,2,3
CONFIG EBTRB = ON ;Boot Block Table Read Protection
CONFIG PBADEN = OFF ;PORTB<4:0> pins are configured as digital I/O on Reset
CONFIG CCP2MX = PORTC ;CCP2 input/output is multiplexed with RC1
CONFIG IESO = ON ;Oscillator Switchover mode enabled
;*************************************************************************
ENDIF
IFDEF __18F252
include p18f252.inc
;*************************************************************************
CONFIG OSCS = OFF, OSC = HSPLL ;Osc. Switch Enable, Oscillator Selection
CONFIG BOR = ON, BORV = 45, PWRT = ON ;Brown-out Reset, Brown-out Voltage, Power-up Timer
CONFIG WDT = OFF, WDTPS = 128 ;Watchdog Timer, Watchdog Postscaler
config ccp2mux = on ;CCP2 MUX: Disable (RB3), Enable (RC1)
CONFIG LVP = OFF, STVR = OFF ;Low Voltage ICSP, Stack Overflow Reset
CONFIG DEBUG = OFF ;Background Debugger Enable
CONFIG CP0 = ON, CP1 = ON, CP2 = ON, CP3 = ON ;Code Protection Block 0,1,2,3
CONFIG CPB = ON ;Boot Block Code Protection
CONFIG CPD = ON ;Data EEPROM Code Protection
CONFIG WRT0 = ON, WRT1 = ON, WRT2 = ON, WRT3 = ON ;Write Protection Block 0,1,2,3
CONFIG WRTB = ON ;Boot Block Write Protection
CONFIG WRTC = ON ;Configuration Register Write Protection
CONFIG WRTD = ON ;Data EEPROM Write Protection
; CONFIG EBTR0 = ON, EBTR1 = ON, EBTR2 = ON, EBTR3 = ON ;Table Read Protection Block 0,1,2,3
CONFIG EBTRB = ON ;Boot Block Table Read Protection
;*************************************************************************
ENDIF
dccharacter » 19 сен 2012, 01:30
Нет, такого в инклюде проца нет. В самом конце стоят дефайны конфиг-слов, пример:
- Код: Выделить всё • Развернуть
_BOREN_OFF EQU H'F9FF' ; Brown-out Reset disabled
_BOREN_SBODEN EQU H'FBFF' ; Brown-out Reset controlled by the SBOREN bit in the BORCON register
_BOREN_NSLEEP EQU H'FDFF' ; Brown-out Reset enabled while running and disabled in Sleep
_BOREN_ON EQU H'FFFF' ; Brown-out Reset enabled
Я попытался вставить конфигурацию в инклюд, компилятор матерится: Error[176] E:\SERIALBOOTLOADER\TEST2\SBP16\BOOTCONFIG.INC 54 : CONFIG Directive Error: (processor "16F1827" is invalid for CONFIG directive)
Но бутлоадер заработал на дефолтных конфигах. Но пофиксить хочется. А то мне кажется, что его вотчдог дергает.
Добавлено спустя 4 минуты 53 секунды:>Release Notes for MPLAB® C Compiler for PIC18 MCUs v3.36
Мдааааааааааа
Добавлено спустя 1 минуту 54 секунды:Че-то не пойму. Инклюды для pic16 в папке mpasm есть (там же лежит MPASMWIN.exe). А если выйти выше, то написано, что компилятор для ПИК18 и ПИК16 в списке поддерживаемых нет. Я не доставил компайлер что ли?
Добавлено спустя 1 минуту 27 секунд:Ща проверим. Заодно на 1.41 обновлюсь.
Добавлено спустя 2 часа 39 секунд:Новый мплаб разучился работать с пробелами в путях, зато обзавелся встроенным асм-компилятором и нормальным конфигуратором:
- Код: Выделить всё • Развернуть
; PIC16F1827 Configuration Bit Settings
#include "p16F1827.inc"
; CONFIG1
; __config 0xFFE4
__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_ON & _FCMEN_ON
; CONFIG2
; __config 0xDFFF
__CONFIG _CONFIG2, _WRT_OFF & _PLLEN_ON & _STVREN_ON & _BORV_LO & _LVP_OFF
Добавлено спустя 27 минут 26 секунд:Йес, заработало. Спасибо, Дим.
dccharacter » 24 сен 2012, 22:27
Народ, тут собрал водосчетчик электронный, может по запросу выдавать на ком-порт значения на счетчиках и заряд батареи оставшийся. Есть желание сделать мини-сайт локальный, чтобы жена с какого-нить айпада могла зайти и увидеть показания. Может быть позже туда еще по мелочи всякого добавится - типа потребляемой энергии (мгновенно и в пике), остаток денег на электросчетчике и т.д.
Вопрос - как сделать попроще? Есть asus wl500gp, в нем есть уарт, к нему напрямую могу цапануть XBee-координатор, который, собственно, информацию по дому и собирает. На роутере можно запустить питон для парсинга информации с ком-порта. Там же можно поднять lighttpd. У которого сделать страничку (набор страничек), и через cgi цепляться к питону.
Есть поправки/идеи получше?
elmot » 24 сен 2012, 22:46
не уверен, что питон - хорошо. попробуй lua и uhttpd. а питать их по отдельности не впадлу? может, 1-wire?
и ваще можно по углам wifi роутеров 20баксовых понавтыкать, а не xbee дорогих
dccharacter » 24 сен 2012, 23:01
xbee стоит 17

Питать я пока до самого конца не разобрался, но если разобраться хорош, то с питанием проблем не будет. Там годами работают датчики на батарейках.
Провода тянуть нереально
Но в принципе ты поддерживаешь вебсайт на роутере со скриптами, да?
elmot » 24 сен 2012, 23:13
да. пока у меня uhttpd и жуткий хлам на всяких кошмарных ашах и гавках.
с lua интеграция точно есть - родная морда openwrt написана на lua.
Что за хбее за 17?
dccharacter » 24 сен 2012, 23:20
elmot » 25 сен 2012, 00:11
А будет еще оказия оттеда? и что у него за моск, у этого хбее?
dccharacter » 25 сен 2012, 00:18
elmot писал(а):А будет еще оказия оттеда? и что у него за моск, у этого хбее?
в ближайшее время не будет. мозг там EMC2500, но программить нужно либо спец программером за 90 баксов либо копать протоколы. При этом digi не дает просто так свои исходники, если требуется кастомный софт, то надо на связь с ними выходить.
При этом из коробки оно умеет строить меш-сеть, имеет дигитал айо, управляемые дистанционно, аналоговые входы. Квартиру мою бетонную со стенами 45см пробивает насквозь.
avr123.nm.ru » 25 сен 2012, 00:19
Однако в Москве есть Zigbee модули дешевле и мощнее! недорого и совстроеным микроконтроллером для юзерского ПО.

- Вложения
-

dccharacter » 25 сен 2012, 02:50
Вот это: ZigBee модуль мощностью 60 мВт для связи до 4 Км JN5121-000-M02 JENNIC со встроенным микроконтроллером для пользовательского приложения, легко конфигурируется по UART как координатор, роутер или конечное устройство. Не требует программирования для работы. Полный стек протоколов ZigBee, аппаратное шифрование и пакетирование. 18х40 мм. Цена 360 рублей. АЦП 4 входа 12 разрядов, ЦАП два 11-разряд. 2 компаратора, датчик температуры, 2 таймера для приложений, 3 таймера системные, два UART, SPI, i2c ???
Интересно кстати. Меш он, конечно, не умеет, но из-за мощности бешенной он и не факт что нужен. А ты сам пробовал?
Добавлено спустя 2 часа 23 минуты 55 секунд:
Блин, чо-то пальцы уже не помнят. Час потратил на поиск миником-а для роутера. Помню, что была прога, а найти не могу. Ну ничего. Прикрутил XBee к роутеру. Нормально работает. Надо роутер опять сетапить с нуля... Все возвращается на круги своя.
elmot » 25 сен 2012, 07:27
Оба-на! Вот это круто!
и вот вам lever punch
http://www.icshop.ru/search/JN5121Each of these modules can be supplied with a range of
protocol stacks, including a simple IEEE802.15.4 protocol for point to point and star applications and a ZigBee mesh
networking stack.