Fórum témák

» Több friss téma
Fórum » CAN üzenet küldése PIC18F258-al
 
Témaindító: cwerke, idő: Nov 6, 2008
Témakörök:
Lapozás: OK   1 / 1
(#) cwerke hozzászólása Nov 6, 2008 /
 
Sziasztok!

Egyszerü CAN üzenet küldését szeretném kipróbálni CAN Buszra egy PIC18F258 ukontrollerrel és egy 82C250 CAN transciever-rel.
Tudnátok segítséget adni vagy linket küldeni ahol alapkapcsolási rajzot és hozzá .ASM forrást találhatok?
Elöre is köszönöm a segítséget.
(#) spikk válasza cwerke hozzászólására (») Nov 6, 2008 1 /
 
:google:
Még ennyit segítek: PIC ASM "CAN BUS" site:.hu (opcionális)
Alapkapcsolást meg talán adatlapban keresnék.
82C250 filetype:pdf
Megcsinálni senki nem fogja helyetted.
(#) potyo válasza cwerke hozzászólására (») Nov 6, 2008 /
 
Van valami oka, hogy nem a beépített transceivert akarod használni?
(#) cwerke válasza potyo hozzászólására (») Nov 7, 2008 /
 
Szia!

A mérésem úgy épül fel, hogy van az egy egyik oldalon egy általam már megépített kapcsolás (ezt a Google barátommal találtam, de ez még nem müködik) a másik oldalon pedik egy cég által forgalmazott CANalayzer Software egy PCMCIA CAN kártya és egy CAN transciever. Ezt a kettöt szeretném összekötni a CAN Buszon mégpedig úgy , hogy a software-rel simuláltam egy CAN hálózatot. A célom az lenne, hogy kiimátkozzak a PIC-böl egy Pl.: 8 byte hosszú id: 34d 10 03 20 00 00 ff 50 00 értékü üzenetet --> ez csak egy példa volt. Ha a PIc ezt az üzenetet ki tudja küldeni akkor azt a simuláción egyszerre látom, mert megjelenik az adott ms-ban, hogy üzenet érkezett a buszra.
A mellékletben csatoltam az eddig megépített kapcsolásomat és a PIC szoftwaret. Ezt is a Google barátommal találtam. A kapcsolásból megépítettem mindent, de csak a Fesz.stabot használom, a kvarcot a PIC-hez és a transcievert.
A transceivert (82c250)szerintem azért kell használnom, mert a simuláció oldalán is van és ez tudja a számítógépröl az adatokat a Buszra közvetíteni. De ebbe nem vagyok teljesen biztos, mert a pic-et nem ismerem és az adatlapjában sem találtam, hogy van illesztöje.
A segítséget elöre is köszi.

(#) Amarton válasza potyo hozzászólására (») Nov 16, 2008 / 4
 
Szerintem kell, hozzá a CANIC, mert ez csatolja ki a CANH CANL vonalra az RX - TX jelet. Az autóiparban minden vezérlőben a mikróhoz raknak CAN csatoló IC-t, mert a mikro csak a protokolt ismeri.
(#) tendrive válasza cwerke hozzászólására (») Dec 14, 2008 /
 
Sziasztok!
Én kisérletképpen összeraktam PIC18F258+ CAN csatoló IC -vel egy CAN_ rendszert. A Microchip honlapján lévő "C"-CAN program hibáinak néhány éjszakán át történő keresgélése, és kijavítása után szépen működött. Az 500kBit/sec CAN-Buszon a PIC, egy Lenze PLC meg egy CAN-es frekiváltó volt, a PIC a PLC-től fogadott adatokat a CAN-en, és irogatta ki 4 bites módban egy 4x20-as LCD-re, illetve küldözgette az Analóg inputjainak az értékét CAN-en vissza a PLC-nek illetve a frekiváltónak.
A programfutás ellenőrzése, és a sok kezdeti szívás miatt még RS232-n is kommunikált a PC-vel (ezért a dugasz panelen egy MAX232-es figyelt az RC6,RC7 lábon). A buszon szaladgáló 8 bytos CAN telegrammokat én egy USB-s CAN átalakítóval monitoroztam a PcanView programmal.
Ha érdekel az *.asm helyett a "C" program és elboldogulsz az Mplab C18 fordítójával(Student Editon) akkor eltudom küldeni e_mailben a fenti dolgokat művelő programot. (tendrive@freemail.hu)
A kapcsolási rajz nagyon primitiv, mert csak ráakasztod a PIC CANRx/Tx lábára az MCP2551-es CAN illesztőt, a MAx232-t az RC6,7-re, az LCD-t meg ahova jólesik.
Vonali illesztésre én MCP2551-et használtam, bár szerintem más a piacon kapható hasonló 8 lábú illesztő IC is megfelel. Ja és ne felejtsétek el a 120ohm-os lezáró ellenállást
(#) cwerke válasza tendrive hozzászólására (») Dec 23, 2008 /
 
Hello!

Gratulálok az elkészítéshez.
A C programot szívesen megnézném, habár a C-t még annyira nem ismerem, de találn majd lépésről lépésre elboldogulok vele. Lenne egy-két rész benne amit szeretnék megnézni.
Köszönöm.
(#) Doma84 hozzászólása Feb 15, 2012 /
 
Hello mindenkinek!

Szeretnék egy kis segítséget kérni. PIC18F4680-as mikrovezérlővel szeretnék CAN buszon kommunikálni. 125kb/s sebességgel 20MHz-es kvarccal. Az a problémám, hogy a CAN modul nem lép ki konfigurációs módból. Tapasztalt valaki már ilyen hibajelenséget? Hogy lehetne ezt megoldani?

  1. ;******************************************
  2. CAN_Config
  3.  
  4. bcf TRISB,2; RB2 = CANTX láb
  5. bsf TRISB,3; RB3 = CANRX láb
  6.  
  7. ;--------------------------------
  8. ; Konfigurációs módra váltás
  9.  
  10. banksel CANCON
  11.  
  12. movlw B'11100000'
  13. movwf CANCON
  14.  
  15. ;--------------------------------
  16. ; Várakozás a konfigurációs módra
  17.  
  18. banksel CANSTAT
  19. cfw
  20. movf CANSTAT,W
  21. andlw B'11100000'
  22. btfss WREG,7
  23. goto cfw
  24.  
  25. ;---------------------------------
  26. ; ECAN modul beállítása MODE0-ra
  27.  
  28. banksel ECANCON
  29. movlw B'00000000'
  30. movwf ECANCON
  31.  
  32. ;---------------------------------
  33. ; Baude rate beállítása 125kb/s @ 20MHz
  34. banksel BRGCON1
  35. movlw B'00001001'
  36. movwf BRGCON1
  37.  
  38. banksel BRGCON2
  39. movlw B'01011000'
  40. movwf BRGCON2
  41.  
  42. banksel BRGCON3
  43. movlw B'10000001'
  44. movwf BRGCON3
  45.  
  46. banksel CIOCON
  47. movlw B'00100000'
  48. movwf CIOCON
  49.  
  50. banksel val1; váltás bank0-ra
  51.  
  52. return
  53. ;----------------------------------------------------------
  54. CAN_NormalMode
  55. banksel CANCON
  56. movlw B'00001000' ; Set to Normal_mode.
  57. movlw CANCON
  58.  
  59. NormalWait
  60. banksel CANSTAT
  61.  
  62.     movf CANSTAT, W   ; Read current mode state.
  63.      andlw B'11100000' ; Interested in OPMODE bits only.
  64.        btfsc WREG,7      ; Is it Normal mode yet? Bit7=0
  65.        goto NormalWait    ; No. Continue to wait...
  66.              
  67.        movf CANSTAT, W   ; Read current mode state.
  68.        andlw B'11100000' ; Interested in OPMODE bits only.
  69.        btfsc WREG,6      ; Is it Normal mode yet? Bit6=0
  70.        goto NormalWait    ; No. Continue to wait...
  71.      
  72.        movfCANSTAT, W   ; Read current mode state.
  73.        andlw B'11100000' ; Interested in OPMODE bits only.
  74.        btfsc WREG,5      ; Is it Configuration mode yet? Bit5=0
  75.        goto NormalWait    ; No. Continue to wait...
  76.        
  77. banksel val1; váltás bank0-ra
  78. return
  79. ;-----------------------------------------------------------------------
  80. CAN_Send_Msg
  81.  
  82. movlw0x0f ; Bank 15  
  83.       movwfBSR
  84.  
  85. ;-------------------------------------
  86. ; Azonosító beállítása: 0x130 Standard
  87.  
  88. movlwB'00100110'
  89.   movwfTXB0SIDH
  90.  
  91. movlwB'00000000'
  92. movwfTXB0SIDL
  93.  
  94. ;-------------------------------------
  95. ; DLC beállítása
  96.  
  97. movlwB'00000101'  ; DLC=5bájt remote nélkül
  98.      movwfTXB0DLC
  99.  
  100. ;--------------------------------------
  101. ; Adatbájtok beállítása: 05 00 00 00 00
  102.  
  103. movlw05h
  104. movwfTXB0D0
  105.  
  106. movlw00h
  107. movwfTXB0D1
  108.  
  109. movlw00h
  110. movwfTXB0D2
  111.  
  112. movlw00h
  113. movwfTXB0D3
  114.  
  115. movlw00h
  116. movwfTXB0D4
  117.  
  118. movlw00h
  119. movwfTXB0D5
  120.  
  121. ;---------------------------------------
  122. ; Adáskérés
  123.  
  124. movlw 0x0b
  125. movwf TXB0CON      ; BSF TXB0CON,3 ;Bit fürs senden setzen +Hohe Sende Prio
  126.  
  127.   movlw 0x00; Bank 0
  128.     movwf BSR
  129.  
  130. return
  131. ;---------------------------------------------------------------------
(#) attila066 válasza Doma84 hozzászólására (») Ápr 27, 2012 /
 
MOVLW B'10000000' ; Set to Configuration Mode.
MOVWF CANCON

ConfigWait
MOVLWB'10000000'
cpfseqCANSTAT
BRA ConfigWait

Nekem ezzel kilép, más kérdés az, hogy küldésnél egyből kapok busz errort, pedig csak összekötöttem az RX-TX et
(#) attila066 válasza attila066 hozzászólására (») Ápr 27, 2012 /
 
közben szkóppal kiszámolgattam, és az ACK-nál keletkezik a hiba(pollingoltam a bitet és az volt a trigger esemény ), ami utólag logikusnak tűnhet,hiszen nincsen másik pic a buszon ami ACKzon, de majd holnap kipróbálom
(#) Diagnet hozzászólása Nov 7, 2012 /
 
Üdv!


500Kbites CAN hálózaton szeretnék önállóan működő elektronikával egy 8 byte hosszú üzenetet folyamatosan megjelentetni.
Segítene valaki abban, hogy az általa választott mikrokontrollerre térítés ellenében megírná a programot?
Természetesen a hardver elkészítését és felprogramozását magam csinálom.

Köszönöm!
(#) andru95 hozzászólása Okt 4, 2014 /
 
Hello

Nem dolgoztam még 18f szériával és a config-ja is fárasztó számomra mert amit próbáltam azokat nem fogadta el az mplab egy 18f2520 al játszanék ha tudnék tudna valaki segíteni esetleg egy minta progit küldeni amiből ki tudnám nézni ?
(#) cpt.zoltan.simon hozzászólása Okt 4, 2014 /
 
Ha a CONFIG fárasztó, a többi egyenesen halálos lesz.
Csináltam CAN buszt ASM-ben PIC24, dSPIC33-on, C-ben meg PIC32, és STM32-n.
Amit ajánlani tudok: tanulás céljából olyan procit válassz, amiben KETTŐ CAN modul van.
A kettőt összekötöd transciever nélkül, és a configját párhuzamosan csinálod. Ikrek legyenek. Kivéve persze a filterek-et hiszen az a cím(címtartomány ha a maszk is a képbe jön).
Ezek után már egyszerű a dolgod, egyik küld, a másik modulnak venni kell.
Előny: egy proci, egy program, egy debugger, minden egy képernyőn. Bonyolítani, pl CAN I/O expanderrel ráérsz később bonyolítani.
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem