TinyBLD Bootloader für den PIC 18F2585
Mittwoch, 23. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  Programmiersprache Assembler  |  TinyBLD Bootloader für den PIC 18F2585 « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: TinyBLD Bootloader für den PIC 18F2585  (Gelesen 1406 mal)
 
mkkircner
Gast
« am: Dezember 29, 2010, 23:54:23 »

Hallo,
Nutze normalerweise TINY BootLoader und bräuchte einen passenden
Bootloader für den PIC 18F2585. Leider gelingt es mir nicht die Source
des Bootloaders von dem 18F258 "umzustricken"!,

Könnte mir evtl. jemand mit einem passenden Bootloader aushelfen Smiley

Ich muss gestehen, dass ich leider ein reiner C-Programmierer bin Smiley
(nutze auch noch CCS) und tu mir mit asm und den Tiefen der Register
doch sehr schwer.

Vielen Dank
Martin
Gespeichert
Stampede
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 969



Profil anzeigen WWW
« Antworten #1 am: Dezember 30, 2010, 01:04:47 »

Hi,

was klappt denn nicht?
Der Hauptunterschied bei den Typen liegt in der unterschiedlichen Blockgroesse die programmiert werden muss, wenn ich mich recht entsinn sind es 8 Byte beim 18F258 und 64 beim 18F2585. Dass die Config richtig sein muss (und die Baudrate) versteht sich ja von selber.
Der 18F2585 sollte aber mit dem selben BL wie der 18F4680 (den gibts auf der Homepage) zu beschreiben sein.

Gruss
Stefan
Gespeichert

mkirchner
Gast
« Antworten #2 am: Dezember 30, 2010, 01:12:32 »

Ich habe den Bootloader wie folgt erstellt:

Code:
radix DEC
LIST      P=18F2585 ; change also: Configure->SelectDevice from Mplab
xtal EQU 20000000 ; you may want to change: _XT_OSC_1H  _HS_OSC_1H  _HSPLL_OSC_1H
baud EQU 115200 ; the desired baud rate
delaytime EQU 2000000   ; for 40MHz: 1000000 gets about 1sec, for 20MHZ: 2000000 gets about 1sec
; The above 4 lines can be changed and buid a bootloader for the desired frequency (and PIC type)

;********************************************************************
; Tiny Bootloader 18F series Size=100words
; claudiu.chiculita@ugal.ro
; http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm
;********************************************************************


#include "../icdpictypes.inc" ;takes care of: #include "p18fxxx.inc",  max_flash, IdTypePIC
#include "../spbrgselect.inc" ; RoundResult and baud_rate

#define first_address max_flash-200 ;100 words

;can we dump these ? winpic etc have the function of configuring all
  
__CONFIG _CONFIG1H, _OSC_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H
; __CONFIG _CONFIG2L, _PWRT_OFF_2L & _BOREN_OFF_2L
; __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_1_2H
; __CONFIG _CONFIG3H, _MCLRE_ON_3H & _PBADEN_OFF_3H ;& _CCP2MX_PORTBE_3H not in 4680
; __CONFIG _CONFIG4L, _DEBUG_OFF_4L & _LVP_OFF_4L & _STVREN_OFF_4L & _XINST_OFF_4L
; __CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L
; __CONFIG _CONFIG5H, _CPB_OFF_5H
; __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L
; __CONFIG _CONFIG6H, _WRTB_OFF_6H & _WRTC_OFF_6H
; __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L
; __CONFIG _CONFIG7H, _EBTRB_OFF_7H & _DEVID1 & _IDLOC0


Wenn ich nun ein Programm per TINY flashe funktioniert zwar das Flashen, aber die timings (delay_ms(xy)) stimmen nicht, und wenn ich variablen über die RS232 Ausgebe steht da nur müll drin.
Brenne ich das Testprogram direkt, läuft es einwandfrei Huch

Das Testprogram:

Code:
int32 i;
 int x;
 int32 u;
void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF|ADC_TAD_MUL_0);
   setup_spi(FALSE);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);                                          
   setup_timer_2(T2_DISABLED,0,1);
   setup_vref(FALSE);
   setup_oscillator(False);

   // TODO: USER CODE!!
   i=0;
     while(1)
     {              
     i++;
     U=4;
      output_high(PIN_C4);
      delay_ms(200);
      output_high(PIN_C5);                                                                                      
      delay_ms(300);
      output_low(PIN_C5);
      output_low(PIN_C4);
      delay_ms(100);
      printf("I=%lu  Xc=%c   Xd%d  Ud=%ld\r\n",i,x,x,u);
     }
}  

Danke!!

Martin
Gespeichert
Stampede
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 969



Profil anzeigen WWW
« Antworten #3 am: Dezember 30, 2010, 04:30:25 »

Hi,

bevor ich mich jetzt mit deinem BL auseinandersetze versuche doch mal den auf der Homepage des TINYBootloader zu benutzten. Da steht dass dein Typ unterstuetzt wird.

Gruss,
Stefan
Gespeichert

mkirchner
Gast
« Antworten #4 am: Dezember 30, 2010, 12:09:17 »

Den habe ich probiert, aber das fertige HEX lässt sich nicht brennen:
Zitat
code don't fits into FLASH!

und den BL den ich gepostet habe habe ich aus dem asm vom 4620 erstellt.

Ich nutze halt auch einen 20MHz Quarz.

Vielen Dank!
martin
Gespeichert
mkirchner
Gast
« Antworten #5 am: Dezember 30, 2010, 18:30:41 »

O.K.
Mit dem DS30 Bootloader hat es direkt funktionierts. ASM Datei entsprechend angepasst, geflasht und funktioniert!
Warum es mit TINY nicht geht HuchHuchHuch
Trotzdem DANKE!!

martin
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.032 Sekunden mit 18 Zugriffen.
 
Top! Top!