ML12. CAN Kommunikationskort

Relevanta dokument
microlf, , Alla rättigheter förbehålles

microlf, , Alla rättigheter förbehålles

MC11. Enkortsdator. MC11 - Hårdvarubeskrivning. MC68HC11 är Motorola INC MS-DOS är Microsoft Corporation MC11, MC68 och MD68k är microlf

Laborationskort - ML4

Tangentbord/Display ML23

MC68. Enkortsdator. microlfã1998ããalla rättigheter förbehållna

Övning 7. Timer, serieport

F6: I/O hantering. Typer av I/O i ett datorsystem. Protokoll för synkronisering. Drivrutiner. Memory mapped Port mapped. Polling Timed Interrupt DMA

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

GPIO - General Purpose Input Output

Övningsuppgifter i Mikrodatorteknik 4p/5p

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.

Digital- och datorteknik

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)

Lösningsförslag till Tenta i Mikrodator

X9017. Kommunikationskort, EIB. Kommunikationskort för EIB- och KNX-nätverk, för intern montering i EXOflex etc.

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

Lösningsförslag till Tenta i Mikrodator

Facit till övningsuppgifter Kapitel 13 Anslutning av minnes- och I/O-moduler till buss 13-1

GPIO - General Purpose Input Output

Felsökning på 6803LAB - ett mikroprocessorkort

Adressrum, programmerarens bild

Dataöverföring på Parallell- och serieform MOP 11/12 1

Tentamen PC-teknik 5 p

Adressavkodning - busskommunikation

Ett program som frågar regelbundet om något skall utföras. Exempelvis om spänningen på ett batteri sjunkit under en viss nivå.

HW-proj ver 3, ett kortsystem

Anders Arvidsson ROBOTBESKRIVNING. Roboten på bilden är extrautrustad

Gateway Modbus-Profibus

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf

F6: I/O hantering. Typer av I/O i ett datorsystem. Memory mapped

Installationsmanual CAT12 CE Moderkort

Support Manual HoistLocatel Electronic Locks

, fukt- och temperaturdetektor Modbus RTU, trafikljus

Laboration i digitalteknik Datablad

Det finns en handledning till kortet på hemsidan. AVR STK500.

EDI022. Digitala Projekt. Rapport. Björn Åkesson 5/20/2011

Digital- och datorteknik

2 UPPBYGGNAD OCH FUNKTION

EP8102. Dual Basic Serial PIFA

F5: Högnivåprogrammering

Miniräknare. Laborationsrapport Laborationsrapport i mikrodatorkonstruktion. En rapport skriven av teknologstuderande: Martin Bergström Gert Johnsen

Beijer Electronics AB 2000, MA00336A,

Tentamen. Datorteknik Y, TSEA28

MD68k. Enkortsdator. microlf MD68K 1 HÅRDVARUBESKRIVNING. Revision 2

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

PROJEKT LJUD. KOPIERINGSUNDERLAG Martin Blom Skavnes, Staffan Melin och Natur & Kultur Programmera i teknik ISBN

F7: I/O hantering. Asynkron och synkron busscykel Bussfördelning. Periferikretsar

Övning 6. Parallellport, timer

Lösningar till övning CE_O CE_O6. Parallell in/utmatning (I/O). Förberedelser till laboration nios2io.

CanCom Bluetooth BLUETOOTH V5.6. Specifikation Specification LED. transceiver

F5: Högnivåprogrammering

Demonstration och konsultation Arbetsbokens avsnitt 5 och 6 LCD Grafisk display Introduktion till laboration 3

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)

Datakommunikation med IR-ljus.

Får endast utföras av behörig personal. May only be carried out by authorized electrician

Programmering av inbyggda system. Kodningskonventioner. Viktor Kämpe

Bussar och I/O. samt. vad kan man göra med NEXYS3

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

CanCom. Multimodul C700 V7. Specifikation. Inputs. Digital/Analog

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

Digitalteknik: CoolRunner-II CPLD Starter Kit

IS1500 Lösningar övning CE_O CE_O7. Programmerad in/utmatning. Serieport. Förberedelser till nios2io.

Digital- och datorteknik

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Digital- och datorteknik

Exempelsamling Assemblerprogrammering

Maskinorienterad programmering

LOG/iC2. Introduction

Hjälpmedel: Appendix A. VHDL-syntax. (bifogas detta prov) Appendix B.2. IEEE-package (bifogas detta prov)

4 grundregler. Minneshantering. Problemet. Windows minkrav

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

2.45GHz CF Card Reader User Manual. Version /09/15

Effektpedal för elgitarr

Maskinorienterad programmering

Styrsystem M580. Användare tips för Modicon M580. Skapad: Rev

Tentamen Datorteknik D del 2, TSEA49

Programmering av grafisk display

Instruktioner för uppdatering av enheter med ISP

InstalationGuide. English. MODEL:150NHighGain/30NMiniUSBAdapter

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Luxor tillhandahöll två olika typer av styrkort till diskettstationer. Det fanns även typer som tillverkades av MyAB och DiAB.

Modbus. Supportdokument. Lathund för att använda Modbus över RS XXX eller TCP/IP.

Datorteknik. Exempeluppgifter i Laborativ Examination

Kombinationskretsar. Föreläsning 4 Digitalteknik Mattias Krysander Institutionen för systemteknik

Programmering av grafisk display

Programexempel för FLEX

IndraDrive Open-loop. Styrning av asynkronmotor över Profibus. Version 1

Maskinorienterad programmering

Digitala System: Datorteknik ERIK LARSSON

(Lösningsförslag finns sist i denna fil.)

Angående buffer. clk clear >=1 =9?

KALIBRERINGS MENY. För att komma tillbaka till Mätfunktionerna håll inne M -knappen 3s. eller vänta 1 min. 1 =MOD. 9.6 KBaud

Profibus. Altivar/Altistart. Kom-igång med Profibus till ATS48/ATV28 (via Modbusgateway)

Ersättning styrkort GOLD, stl 1-3, Version 1-3/ Replacement control circuit board GOLD, sizes 1-3, Version 1-3

Avancerad SSL-programmering I

Tentamen med lösningsförslag

PROJEKT STAFFAN STALLEDRÄNG

Transkript:

ML CAN Kommunikationskort MC000, MC00, MC00, MC00,MC00, MC00, MC, MC, MC är, Motorola INC MS-DOS är Microsoft Corporation MC och MDk är microlf db är GMV Dokument: ML - Hårdvarubeskrivning Id. nummer: -0 microlfãããalla rättigheter förbehållna

HÅRDVARUBESKRIVNING ML 0/ lu HWW ODERUDWLRQV RFK XWYHFNOLQJVNRUW I U &$ SURWRNROOHW.RUWHW VRP lu DQSDVVDW I U 0&V H[SDQVLRQVEXVV LQQHKnOOHU lyhq HQ ELWDUV SDUDOOHOO LQSRUW PHG VWU PVWlOODUH RFK HQ ELWDUV SDUDOOHOO XWSRUW PHG O\VGLRGHUI UDWWNXQQDJHLQGDWDWLOORFKVWXGHUDXWGDWDIUnQ NRUWHW BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB. INLEDNING. ADRESSRUM.. Basadresser.. I/O-adresser. KORTETS FUNKTION. KORTETS ANSLUTNINGAR.. Expansionsbuss.. I/O.. Avbrott.. Kortets byglar. APPLIKATIONSEXEMPEL Den senaste versionen av denna dokumentation finns tillgänglig på Internetadressen: http://www.gbgmv.se 0. PLFUROI

ML HÅRDVARUBESKRIVNING,QOHGQLQJ ML är ett laborationskort för CAN-protokollet och anpassad för MC s expansionsbuss. Utöver en CAN-krets är kortet bestyckat med en -bitars parallell inport och en -bitars parallell utport. Indata kan ställas med hjälp av strömställare på inporten och utdata kan avläsas på lysdioder på utporten. Vidare har de parallella portarna anslutningar anpassats för tangentbordet ML (Se under Anslutningar nedan). Det finns också en stiftlist som kan byglas för att exempelvis ge kortet olika CAN-adresser eller nod-nummer i distribuerade applikationer. P J-J microlf ML CAN Kommunikationskort P P PJ R, R P P P P J-J PLFUROI 0.

HÅRDVARUBESKRIVNING ML $GUHVVUXP Kortet kan byglas för olika adresser. Se nedan. %DVDGUHVVHU De olika basadresserna ges i tabellen nedan. Studera figur för att lokalisera bygel J och J. (U=Ute, I=Inne) Tabell. Basadresser Bygel Bas adress (-maxadr) J J U U $000 (-$FF) U I $00 (-$FF) I U $00 (-$FF) I I $00 (-$FF) Vid leverans är bygel J och J ute och default är kortets basadress således $000. Observera att ofullständig adressavkodning används vilket innebär att hela adressområdet från $000 till $FF utnyttjas,dguhvvhu Följande adresser används på ML. Tabell. IO-adresser Krets Basadress Skriv/Läs CAN-krets Bas +$000 Utport Bas +$00 Skriv Inport Bas +$00 Läs CAN-kretsen upptar hela adressutrummet från $000 $0ff och Ut och inporten nås inom hela adressområde från $00 till $ff..ruwhwvixqnwlrq De parallella in- och utgångarna är enkla I/O. Som inport används en buffert HC och som utport ett register HC. Observera portarnas anslutningar P och P är anpassade för att anslutas till tangentbordsdelen på ML. Kortet är bestyckad med en CAN-krets från INTEL. Denna är byglad för -bit Non-Multiplexed Mode och en synkron buss (DSACK används EJ). Det hänvisas här till databladen för för registerbeskrivning. 0. PLFUROI

ML HÅRDVARUBESKRIVNING Som drivkrets för CAN-bussen används PHILIPS C0. Denna har en justerbar SLOPE via spänningsdelaren R/R. Vid leverans är denna byglad till jord via R, som är dragen som en ledningsbana på kortets lödsida. Studera figur och lokalisera R. För att ändra SLOPE krävs att ledningsbanan på kortets lödsida kapas och önskade motståndsvärden för R/R löd in. Byglarna J-J är direkt anslutna till CAN-kretsens port och bestyckade med ett pull-up motstånd till +V. Porten är vid RESET definierad som inport och kan byglas till jord för att ställa indata. Byglarna kan således vara användbara för att ge kortet ett unikt nummer etc. Eller för att starta upp olika programrutiner från PROM exempelvis..ruwhwvdqvoxwqlqjdu Studera figur som visar kortets olika anslutningar. ([SDQVLRQVEXVV Anslutningarna P, P, P och P (alla 0-poliga) utgör kortets expansionsbuss. Tabell. Expansionsbuss Pin P P P P NC GND NC GND CSEXT D0 A A R/W D A A AS D A A RESET D A A CLKOUT D A A TIN D A0 A TOUT D A A TGATE D A A0 0 NC +V NC +V PLFUROI 0.

HÅRDVARUBESKRIVNING ML, Anslutning P (Parallell Output) och P (Parallell Input) beskrivs i tabellen nedan. Tabell. I/O-anslutning Pin P P GND GND DO0 DI0 DO DI DO DI DO DI DO DI DO DI DO DI DO DI 0 +V +V Anslutning P är för CAN-bussen. Tabell. CAN-anslutning Pin P CAN-Low CAN-High $YEURWW Avbrott från CAN-kretsen kan kopplas vidare från anslutning J..RUWHWVE\JODU Tabell. Byglar Bygel Funktion J-J Anger kortets basadress, se kapitel J-J För framtida bruk J-J Port P.0 -P. på CAN-krets 0. PLFUROI

ML HÅRDVARUBESKRIVNING $SSOLNDWLRQVH[HPSHO Följande subrutiner ger exempel på hur ML kan användas tillsammans med MC. Programexemplet är utvecklat med XC. * * Interface routines MC/ML * C-prototypes: * void CANinit(void); * void CANSend(int msgobject, char *data); * void CANSetupRec(int msgobj); * int CANrec(int msgobject); * Export... DEFINE _CANInit DEFINE _CANSend DEFINE _CANSetupRec DEFINE _CANRec * io-addresses for MC/ML CAN EQU $000 **************************************** * CAN controller init * see Intel application note AP- * * C-prototype: * void CANinit(void); _CANInit: * init controller LEA (CAN).L,A0 controller base address * set CPU interface register: (page ) * SCLK = XTAL/ * MCLK = SCLK * disable CLKOUT signal MOVE.B #$0,(,A0) * set CCE (Change Configuration Register) * bit in Control register (page ) * enable write access to configuration registers * prevent activities on the CAN-bus ORI.B #$,(A0) * set bus configuration register (page ) * bypass comparator * logical ones is recessive * disable TXl driver * DcR0 and DcR are don t cares MOVE.B #$,($f,a0) PLFUROI 0.

HÅRDVARUBESKRIVNING ML * set bit timing registers (page ) * 0 kbits/s * sampling mode is fast * TSEG =, TSEG = (page ) MOVE.B #$0,($f,A0) MOVE.B #$,($f,a0) * clear CCE bit * prevent write access of * configuration registers MOVE.B #,(A0) * reset control register 0 and for each message object MOVE.L #$0,D0 resloop: MOVE.B #$,(A0,D0) MOVE.B #$,(,A0,D0) ADDI.L #$0,D0 CMPI.L #$00,D0 BNE resloop * set global masks "don t care" CLR.B (,A0) CLR.B (,A0) CLR.B (,A0) CLR.B (,A0) CLR.B ($a,a0) CLR.B ($b,a0) * load C into arbitration registers * message object (page ) * will set ID(0) MOVE.B #$c,($,a0) MOVE.B #$c,($,a0) MOVE.B #$c,($,a0) MOVE.B #$c,($,a0) * Take chip out of the init mode CLR.B (a0) RTS 0. PLFUROI

ML HÅRDVARUBESKRIVNING ************************************************ * Simple send routine for test purposes * * C-Prototype: * void CANSend(int msgobject, char *data); _CANSend: * calc base address for this message object MOVE.L (,SP),D0 get "msgobject" ROL.L #,D0 LEA (CAN).L,A0 base of controller ADDA.L D0,A0 a0 holds address of control0 MOVEA.L (,SP),A address of data * init for transmit MOVE.B #$,(A0) MOVE.B #$,(,A0) MOVE.B #$c,(,a0) * update data start MOVE.B #$FA,(,A0) * update data bytes CLR.L D0 index L: MOVE.B (A)+,(,A0,D0) ADDQ.L #,D0 CMPI.L #,D0 BNE L * update data end MOVE.B #$E,(,A0) * return to caller RTS PLFUROI 0.

HÅRDVARUBESKRIVNING 0 ML ************************************ * Set up message object as receiver * void CANSetupRec(int msgobj) _CANSetupRec: * calc base address for this message object MOVE.L (,SP),D0 get "msgobject" ROL.L #,D0 LEA (CAN).L,A0 base of controller ADDA.L D0,A0 a0 holds address of control0 * setup as receiver MOVE.B #$,(A0) MOVE.B #$,(,A0) MOVE.B #$,(,A0) RTS * * Non-blocking CAN-message receiver * C-Prototype: * int CANrec(int msgobject); _CANRec: * calc base address for this message object MOVE.L (,SP),D0 get "msgobject" ROL.L #,D0 LEA (CAN).L,A0 base of controller ADDA.L D0,A0 MOVEA.L (,SP),A address of data * see if message is pending BTST.B #,(,A0) BEQ RecRet0 no data * Reset NewData MOVE.B #$FD,(,A0) * pick up data CLR.L D0 index L: MOVE.B (,A0,D0),(A)+ ADDQ.L #,D0 CMPI.L #,D0 BNE L MOVE.L #,D0 return TRUE RTS RecRet0: CLR.L D0 return FALSE RTS 0. PLFUROI

ML HÅRDVARUBESKRIVNING /* */ File N.C (node, transmitter) C-test program MC/ML - Can-controller /* prototypes for assembly routines */ void CANInit(void); void CANSend(int, char *); /* sample use */ char Data[][0]; void { int main() i,j; } /* CANInit(); /* init hardware in this node */ strcpy(data[0],"hej"); strcpy(data[],"du"); strcpy(data[],"can.."); j=0; while(){ /* Send the block */ CANSend(,Data[j]); for (i=0;i<00000;i++); /* wait a while */ if(j==)j=0; else j++; /* Show we are alive */ puts("node transmit"); } File N.C (node, receiver) MC/ML - Can-controller */ /* prototypes for assembly routines */ void CANInit(void); int CANRec(int, char *); void CANSetupRec(int); char Data[]; void { } main() CANInit(); /* init hardware in this node */ CANSetupRec(); while(){ /* Spin for a message block */ if(canrec(,data)){ Data[]= \0 ; puts(data); } } PLFUROI 0.

HÅRDVARUBESKRIVNING ML 0. PLFUROI

R 00 U 0 0 C 0n C 0n C 0n P: IDCXM 0 IDCXM 0 P: P: IDCXM 0 IDCXM 0 P: u C IDCXM 0 P: k R HC U B B B B B B B B A A A A A A A A DIR G HC U Q Q Q Q Q Q Q Q D D D D D D D D CLK CLR P: IDCXM 0 S 0.0 ML-- 00 microlf SIMPLE I/O and BUS D0 D0 D0 D0 DO DO DO DO0 AS R/ W CSEXT RESET TGATE TIN TOUT CLKOUT A A A A A A0 A A GND A0 A A A A A A A GND D D D D D D D D0 GND D D D D D D D D0 CSDOUT RESET GND CSDIN GND DI0 DI DI DI DI DI DI DI D0 D D D D D D D A B C D D C B A A Rev Number Title Size Date Filename Drawn by of Sheet

A B C D C C p p X MHz R/ W CSCAN RESET XTAL XTAL A0 A A A A A A A RX 0 0 U R/ W INT RD/ E READY/MISO ALE/AS DSACK0 CS RESET VSS MODE MODE0 TX0 RX0 TX RX XTAL CLKOUT XTAL A0/ICP P.0 A/CP P. A/CSAS P. A/STE P. A/MOSI P. A P. A/SCLK P./ INT A P./ WRH 0 0 J TX CANCLK IRQ J J J J J J J J J J0 J J R k CSEXT R/ W A A A A IRQ U GALV I0 I I/O I I/O I I/O I I/O I I/O I I/O I I/O I I/O I GALV A A CSCAN RE CSDOUT A0 A CSDIN D0 D D D D D D D D0/P.0 D/P. D/P. D/P. D/P. D/P. D/P. D/P. R k TX RX TXD GND RXD U SLOPE CHI CLO NC C0 CHI CLO SLOPE P: R R R Not Connected R jumpered on card solder side CAN CONTROLLER & DRIVER 00 ML-- A B C D Title Size A Date Filename Number Drawn by microlf Sheet of Rev.0

microlf ML U P R R C J J J J Bit 0 U CAN Kommunikationskort R S Bit 0 U P CAN BUS J IRQ U P R R P C U C U UTPORT INPORT P P J J J0 J J J J J R P C X C C