PIC12F1840 - Mr_Booo - 2016-02-23
Hi
I am not getting this to work no matter how hard I try. There was a thread that had some configuration settings but I lost it...
I tried setting USE_BRGH to 0 since that is what it is after reset and what the datasheet suggests also no luck.
I also tried varius PLL settings. The hardware uart works if PLL is enabled in the config word but 0 in osscon in Picbasic Pro.
To get this PIC's uart to work without the boot-loader is also tricky so I think I am missing a configuration setting or something.
tx
RE: PIC12F1840 - Mikael Gustavsson - 2016-03-02
This is working on my 12F1822 dev board, hopefully it is helpful for you:
Code: ; Set internal oscillator to 16MHz
banksel OSCCON
bsf OSCCON, IRCF3
bsf OSCCON, SCS1
; Make pins digital
banksel ANSELA
movlw 0x00
movwf ANSELA
; Disable weak pull-ups
banksel WPUA
movwf WPUA
; Select rx(ra5) and tx(ra4) pins
banksel APFCON
bsf APFCON, RXDTSEL
bsf APFCON, TXCKSEL
; Light led
banksel TRISA
bcf TRISA, TRISA2
banksel LATA
bsf LATA, LATA2
Code: ;------------------------------------------------------------------------------
;
; Title: ds30 Loader for PIC12F and PIC16F
;
; File description: settings used by the author during development
;
; Copyright: Copyright © 10-11, Mikael Gustafsson
;
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
; This file is part of ds30 Loader.
;
; ds30 Loader is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation.
;
; ds30 Loader is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with ds30 Loader. If not, see <http://www.gnu.org/licenses/>.
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
; Device
;------------------------------------------------------------------------------
LIST P=12F1822
;------------------------------------------------------------------------------
; Includes
;------------------------------------------------------------------------------
#include "devices.inc"
;------------------------------------------------------------------------------
; User preferences
;------------------------------------------------------------------------------
radix DEC
#define DEV_MODE_12F 1 ;xxx delete or comment this line
#define FOSC 16000000 ;xxx
#define BLINIT 2000 ;xxx hello receive timeout [ms]
#define HELLOTRIES 2 ;xxx number of non hello characters received before branching to the user application
#define BLTIME 2000 ;xxx data receive timeout [ms]
;------------------------------------------------------------------------------
; UART settings
;------------------------------------------------------------------------------
#define USE_UART1 1 ;xxx uncomment to use uart1
;#define USE_UART2 1 ;xxx uncomment to use uart2
#define BAUDRATE 115200 ;xxx baudrate
;#define USE_ABAUD 1 ;auto baud rate detection, only available on enhanced mid-range devices(?)
#define USE_BRGH 1 ;
#define USE_BRG16 1 ;16-bit brg, only available on enhanced mid-range devices(?)
;#define USE_TXENABLE 1 ;xxx uncomment to use a tx enable pin
ifdef USE_TXENABLE
#define TRISR_TXE TRISA ;xxx tris register containing tx enable
#define PORTR_TXE PORTA ;xxx port register containing tx enable
#define TRISB_TXE TRISA3 ;xxx tris bit for tx enable
#define PORTB_TXE RA3 ;xxx port bit for tx enable
endif
;------------------------------------------------------------------------------
; SW UART settings
;
; Baud rate constant calculation:
; FCY = OSCF / 4
; TCY = 1 / FCY
; BITTIME = 1 / BAUDRATE
;
; BITWAITCNT = ((( (BITTIME - 24*TCY) / TCY / 3 ) + 1 ) / 2 )
;
;------------------------------------------------------------------------------
;#define USE_SWUART 1 ;xxx uncomment to use software uart
#define BITWAITCNT 2 ;xxx baud rate, see formula above
#define TRISR_TX TRISA ;xxx tris register containing tx
#define TRISB_TX TRISA4 ;xxx tris bit for tx
#define LATR_TX LATA ;xxx port register containing tx
#define LATB_TX LATA4 ;xxx port bit for tx
#define TRISR_RX TRISA ;xxx tris register containing tx
#define TRISB_RX TRISA5 ;xxx tris bit for tx
#define PORTR_RX PORTA ;xxx port register containing tx
#define PORTB_RX RA5 ;xxx port bit for tx
;------------------------------------------------------------------------------
; I2C settings, commercial version only www.ds30loader.com
;------------------------------------------------------------------------------
;COMMERCIAL_BEGIN
;#define USE_I2C1 1 ;xxx uncomment to use I2C1
;#define USE_I2C2 1 ;xxx uncomment to use I2C2
#define ADDR_PIC 14 ;xxx node address for this device, 7 bits
#define TRISR_SDA TRISA ;xxx tris register containing SDA pin
#define TRISB_SDA TRISA2 ;xxx port bit for SDA pin
#define TRISR_SCL TRISA ;xxx tris register containing SCL pin
#define TRISB_SCL TRISA1 ;xxx port bit for SCL pin
;COMMERCIAL_END
;------------------------------------------------------------------------------
; Advanced settings
;------------------------------------------------------------------------------
;#define KICK_WD 1 ;xxx only uncomment if the watchdog is enabled
#define WRITE_VER 1 ;do flash write verification
#define EWRITE_VER 1 ;do eeprom write verification
#define USE_READ 1 ;uncomment to enable read from GUI, commercial version only
#define BLPLW 256 ;bootloader placement, words from end, should be a multiple of 64
;------------------------------------------------------------------------------
; Configuration bits, these macros can be found at the end of the inc-files located in
; C:\Program Files\Microchip\MPASM Suite\
;
; These can also be set in MPLAB IDE instead, they are found in Configure->Configuration bits...
;------------------------------------------------------------------------------
__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
__CONFIG _CONFIG2, _WRT_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_19 & _LVP_OFF
RE: PIC12F1840 - Mr_Booo - 2016-03-07
It lives !!!
Turns out the problem was banksel. After reading your post I did some more reading and it seems like some pic's want you to use banksel, and others don't care either way.
also, you have to set up the apfcon register.
Thank you again Mikael
RE: PIC12F1840 - Mikael Gustavsson - 2016-03-09
Great! Thanks for the feedback.
|