发新帖本帖赏金 60.00元(功能说明)我要提问
返回列表
打印
[DSC]

DSC MC56F8366控制板资料

[复制链接]
2426|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tom307|  楼主 | 2015-7-26 18:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    在之前新能源的一个项目中,使用MC56F8366作为控制器并顺利结题,时过境迁,把DSC最小系统及控制部分发上来,
由于DSC的控制器需要替代之前的产品,接口已经固定,因此走线不完全合理。
    首先是最小系统
     

复位电路、晶振



电源及滤波:


485通信电路


DSC.rar (624.36 KB)



33.png (5.66 KB )

33.png

打赏榜单

wangyingstat 打赏了 60.00 元 2016-03-22

相关帖子

沙发
tom307|  楼主 | 2015-7-26 18:46 | 只看该作者
还有个温度传感器的例程:
; -------------------------------------------------------
;
;       56F83x_init.asm
;
; Metrowerks, a Freescale Company
; sample code
;
; description:  main entry point to C code.
;                     setup runtime for C and call main
;
; -------------------------------------------------------

;===============================
; OMR mode bits
;===============================
NL_MODE                                                          EQU  $8000
CM_MODE                                                          EQU  $0100
XP_MODE                                                          EQU  $0080
R_MODE                                                           EQU  $0020
SA_MODE                                                          EQU  $0010
;===============================
; init
;===============================
        section startup
        XREF  F_stack_addr
        XREF  F_xROM_to_xRAM
        XREF  F_pROM_to_xRAM
        XREF  F_Ldata_size
        XREF  F_Ldata_ROM_addr
        XREF  F_Ldata_RAM_addr
        org   p:

        GLOBAL Finit_56800_
        SUBROUTINE "Finit_56800_",Finit_56800_,Finit_56800_END-Finit_56800_
Finit_56800_:
;
; setup the OMr with the values required by C
;
        bfset #NL_MODE,omr    ; ensure NL=1  (enables nsted DO loops)
        nop
        nop
        bfclr #(CM_MODE|XP_MODE|R_MODE|SA_MODE),omr               ; ensure CM=0  (optional for C)
                                                                  ; ensure XP=0 to enable harvard architecture
                                                                  ; ensure R=0  (required for C)
                                                                  ; ensure SA=0 (required for C)

; setup the m01 register for linear addressing
        move.w  #-1,x0
        moveu.w x0,m01                  ; set the m register to linear addressing
        moveu.w hws,la                  ; clear the hardware stack
        moveu.w hws,la
        nop
        nop

CALLMAIN:                               ; initialize compiler environment
                                        ; initialize the Stack
        move.l  #>>F_Lstack_addr,r0
        bftsth  #$0001,r0
        bcc     noinc
        adda    #1,r0
noinc:
        tfra    r0,sp                   ; set stack pointer too
        move.w  #0,r1
        nop
        move.w  r1,x:(sp)               ; put zero at top of stack
        adda    #1,sp                   ; increment stack
        move.w  r1,x:(sp)               ; put another zero

; Stationery default routine
; 56800E LC register doesn't have 8191 element limitation of 56800
; so we can use hardware loop here
; zeroBSS hardware loop utility
        move.l  #>>F_Xbss_length,r2     ; move count
        move.l  #>>F_Xbss_start_addr,r1 ; start address is BSS start
        move.w  #0,x0                   ; zero value
        nop
        do      r2,>>end_zeroBSS        ; copy for r2 times
        nop
        move.w  x0,x:(r1)+              ; stash value at x address r1
end_zeroBSS:

; xROM-to-xRAM utility
        nop
        move.w  #F_xROM_to_xRAM,r0      ; check for the option
        tst.w   r0
        beq     end_xrom2xram           ; if no xROM-to-xRAM, then exit
        nop
        move.l  #>>F_Ldata_size,r2      ; set data size
        move.l  #>>F_Ldata_ROM_addr,r3  ; src address -- xROM data start
        move.l  #>>F_Ldata_RAM_addr,r1  ; dest address -- xRAM data start
        do      r2,>>end_xrom2xram      ; copy for r2 times
        move.w  x:(r3)+,x0              ; fetch value at address r3
        nop
        nop
        nop
        move.w  x0,x:(r1)+              ; stash value at address r1
end_xrom2xram:

; pROM-to-xRAM utility
        nop
        move.w  #F_pROM_to_xRAM,r0      ; check for the option
        tst.w   r0
        beq     end_prom2xram           ; if no pROM-to-xRAM, then exit
        nop
        move.l  #>>F_Ldata_size,r2      ; set data size
        move.l  #>>F_Ldata_ROM_addr,r3  ; src address -- pROM data start
        move.l  #>>F_Ldata_RAM_addr,r1  ; dest address -- xRAM data start
        do      r2,>>end_prom2xram      ; copy for r2 times
        move.w  p:(r3)+,x0              ; fetch value at address r3
        nop
        nop
        nop
        move.w  x0,x:(r1)+              ; stash value at address r1
end_prom2xram:

; call main()
        move.w  #0,y0                   ; pass parameters to main()
        move.w  #0,R2
        move.w  #0,R3
        jsr     Fmain                   ; call the user program
loop_at_end_of_app:
        debughlt
        bra    loop_at_end_of_app
Finit_56800_END:
        endsec

使用特权

评论回复
板凳
buer1209| | 2015-7-28 14:07 | 只看该作者
不错  感谢分享

使用特权

评论回复
发新帖 本帖赏金 60.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

50

帖子

0

粉丝