Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Macchina A0
#81
Hmm, Pululice odavno imaju CAN interface, a ima i USB-Serial ...  
Ovo mora da probam ... : )

UPDATE: F103 probao i NE MOGU da rade zajedno CAN i USB, sve ostale kombinacije mogu ali baš ta ne može, dele neke iste buffere, inače radi CAN : (
F401 nema CAN ...
Moraće F407 da se potera ili H755 ...

[Image: attachment.php?aid=45276]


Attached Files
.png   Screen Shot 2025-03-28 at 22.48.20.png (Size: 236,09 KB / Downloads: 275)
Reply
#82
Probao sam stari dobri STM32F4-Discovery, uspeo sam USB da nateram da radi zajedno sa CAN, ali na CAN ne dobijam poruke, vidim neke "pokušaje" da napravi neki puls ali neće ništa dalje od toga da pošalje.

Probao sam F103 isto tako se ponašao CAN dok nisam PRESPOJIO fizički TX>RX, kako spojim tako izadje ceo CAN frame, odspojim više ga nema!? Ima neka detekcija ne znam, za F103?

Kod F407 ima još više nekih registra za CAN periferiju, probao NORMAL i LOOPBACK mode isto se ponaša, krene jedan puls i nema dalje, i to tako uradi mislim tačno 16 puta (neki buffer/mailbox?) i posle toga taj puls bude kraći i više ne pokušava dalje?

Da li neko ima predstavu šta se tu dešava?
Reply
#83
Znas kad nemam predstavu kako treba da izgleda CAN protokol, juce kad sam pogledao osciloskopom sve sto vidim jeste konstantan 14.7kHz pwm , kad bi spojio na automobil bice ili ce se promeniti nesto ili ce ovaj interfejs ponovo na astal da se doradi. Bilo bi interesantno napraviti jedan stm32 usb loger na primer kada dodje vcds da se ovaj nadje izmedju can i automobila kao can bridge + dekoder u hex, tako da kad na vcds uradim neku komandu tako da stm32 preko usb posalje na PC u tekstuslnom obliku log, pa se samo sa strane pored dekodirane komande i pretvorene u hex rucno sa strane napise koja komanda je izvrsena na vcds, to bi bilo dobro imati.
Reply
#84
Za Init STM32F407 CAN1
Code:
  /* USER CODE END CAN1_Init 1 */
  hcan1.Instance = CAN1;
  hcan1.Init.Prescaler = 16;
  hcan1.Init.Mode = CAN_MODE_NORMAL;
  hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;
  hcan1.Init.TimeSeg1 = CAN_BS1_13TQ; //CAN_BS1_1TQ <<<<<<<< 13
  hcan1.Init.TimeSeg2 = CAN_BS2_2TQ; //CAN_BS2_1TQ <<<<<<<< 2
  hcan1.Init.TimeTriggeredMode = DISABLE;
  hcan1.Init.AutoBusOff = DISABLE;
  hcan1.Init.AutoWakeUp = DISABLE;
  hcan1.Init.AutoRetransmission = DISABLE;
  hcan1.Init.ReceiveFifoLocked = DISABLE;
  hcan1.Init.TransmitFifoPriority = DISABLE;
  if (HAL_CAN_Init(&hcan1) != HAL_OK)

Za slanje
Code:
    HAL_CAN_Start(&hcan1);
    HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING);

    CAN_TxHeaderTypeDef txHeader;
    uint8_t txData[8] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88};
    uint32_t txMailbox;

    txHeader.DLC = 8;
    txHeader.IDE = CAN_ID_STD;
    txHeader.RTR = CAN_RTR_DATA;
    txHeader.StdId = 0x123;

    HAL_CAN_AddTxMessage(&hcan1, &txHeader, txData, &txMailbox);

Radi kao DOXA! Smile

[Image: attachment.php?aid=45280]


Attached Files
.png   DS2_2025329154552.png (Size: 40,55 KB / Downloads: 126)
Reply
#85
Eto ko bi rekao, evo bas gledam izlaze neki rezultati vezano za stm32f407 -> https://www.google.com/search?q=vcds+stm...+stm32f407 to su ti klonovi sa bas tim stm32 sto ti sad probavas... probaj ako mozes neki fw da pustis dali ce da radi vcds + loader, ja sam to nesto na kratko gledao pre godinu dana ali nedovoljno, nisam bio odlucan da ga kupim
Reply
#86
Haha ... Uhakovaće ih sve redom, samo da prorade ovi prvi pokušaji ... Smile

Za moje potrebe hoću da napravi repliku "Just4Trionic" ali sa nekim STM-om jer je originalno za neke NXP-ove koje nemam po fijokama ... Smile
Reply
#87
@savan
Za taj VCDS vidim da spominju STM32F429 (i F407) ali F429 je ovaj kontroler ako se sećaš, iz PTPD GPS time servera, jel' taj kontroler? Smile
Imao sam još jednu takvu pločicu moram da po tražim, sigurno može da se usnimi FW za VCDS!
Taj je posebno dobar jer ima i Ethernet, cela pločica.
Najbolji u toj seriji je definitivno STM32H755, sve to isto sa Ethernet ali ima DVA procesorska jezgram jedno Cortex-M4F kao kod F407 koje "radi vrhunski" samo na još većem Clock i ima i još jedno Cortex-M7 koje tek "izuva" na 480MHz, tu se vrti FreeRTOS koji hendluje sve oko mrežnog saobraćaja, od WEB servera pa nadalje!

[Image: attachment.php?aid=41211]

BTW: Kao podsetnik, ovo je jedna od implementacija STM32H755, primer šta sve taj kontroler može da radi! Smile
Taj setup je nekada bio baziran na RPi2 i posebnom F407 ali kada se pojavio dual-core M7+M4F to je bilo definitivna kombinacija i eto završila u ormanu!

[Image: attachment.php?aid=45100]
Reply
#88
@savan
Biće kontrolera i za "Miki4Trionic" i "La Makina Savanova" ... Wink

Mogu ti pošaljem jednu pločicu pa se igraj i ubaci VCDS, eto privremeno dok ne poručiš sebi nešto slično ...

Za razvoj vidim da su kompletirali skoro sve periferije za ZephyrOS (FreeRTOS) za ovaj kontreoler i konkretno tu pločicu.
Tu je dobro što to RTOS pokriva sve oko Etherneta i internih procesa i dalja integracija sa ostalim stvarima je relativno prosta pa i za CAN.
https://docs.zephyrproject.org/latest/bo...index.html

[Image: attachment.php?aid=45281]


Attached Files
.jpg   IMG_20250329_172457458_HDR.jpg (Size: 265,56 KB / Downloads: 128)
Reply
#89
Ne smem za sada nista vise da pocinjem, jedva sam se oslobodio projekata koje sam okolo naokolo zapoceo, tu nema kraja!!! : ) Tako da sam se malo rasteretio projekata i hocu da se vratim na class D! : )
Reply
#90
(03-29-2025, 02:54 PM)mikikg Wrote: Kod F407 ima još više nekih registra za CAN periferiju, probao NORMAL i LOOPBACK mode isto se ponaša, krene jedan puls i nema dalje, i to tako uradi mislim tačno 16 puta (neki buffer/mailbox?) i posle toga taj puls bude kraći i više ne pokušava dalje?

Da li neko ima predstavu šta se tu dešava?

Da li ti je terminiran bus?
Reply
#91
(03-30-2025, 08:47 AM)gorankg Wrote:
(03-29-2025, 02:54 PM)mikikg Wrote: Kod F407 ima još više nekih registra za CAN periferiju, probao NORMAL i LOOPBACK mode isto se ponaša, krene jedan puls i nema dalje, i to tako uradi mislim tačno 16 puta (neki buffer/mailbox?) i posle toga taj puls bude kraći i više ne pokušava dalje?

Da li neko ima predstavu šta se tu dešava?

Da li ti je terminiran bus?

Tada nije bio, nisam imao ni tranceiver IC.
Caka je u tome, posle video, što se prati i RX prilikom TX, "prati sam sebe šta šalje" pa arbitrira sa tim i gleda ACk-ove.
Treba tranceiver IC i terminiacija da bi to bilo ok, nemam trenutno ISO1050 ...
Reply
#92
Imam ja teansiver neki. Pogledacu kasnije.
Reply
#93
Ovo je na CAN liniji sa povezanim ECU, ELM327, vide se frejmovi ali je poveća gužva, ne mogu da uhvatim relaciju kako koji upit radi sa ovim mojim parametrima i PID-ovima, ne mogu da nadjem u saobraćaju frejmove vezane za PID 0x53F i 0x541, postoje tu negde i vide se kako se menjaju ali ne znam tačno koji frejmovi ...

Vidi se i zadnji puls druge amplitude koji je ACK na tu komandu.

[Image: attachment.php?aid=45284]

[Image: attachment.php?aid=45285]

[Image: attachment.php?aid=45286]

Za početak samo me nekoliko tih probranih tu vrednosti (PID) interesuje, ti TP senzori i naponi

Ovo je kratak log, mora da bude u relaciji sa ovim na screen-shot

Code:
CAN
Time,ID,DLC,Data,CRC,ACKed,
6.2446905E-03,7E8,8,35 216 40 21 0 0 0 0,5DC7,Y,
4.5308904E-03,110,8,128 0 0 0 0 0 0 0,552E,Y,
4.2822904E-03,120,8,0 50 3 32 0 87 128 0,3EA0,N,
1.5496495E-06,7E8,8,36 138 0 0 0 250 0 20,229D,Y,
6.2539498E-03,7E8,8,37 0 0 0 0 0 0 0,7CB1,Y,
7.8920698E-03,110,8,128 0 0 0 0 0 0 0,552E,Y,
8.1402298E-03,120,8,0 50 3 32 0 87 128 0,3EA0,N,
2.0342310E-02,110,8,128 0 0 0 0 0 0 0,552E,Y,
2.0590470E-02,120,8,0 50 3 32 0 87 128 0,3EA0,N,
2.3970990E-02,300,8,25 192 0 130 0 0 254 0,60B0,Y,
3.2899030E-02,110,8,128 0 0 0 0 0 0 0,552E,Y,
3.3147190E-02,120,8,0 50 3 32 0 87 128 0,3EA0,N,
4.5391510E-02,110,8,128 0 0 0 0 0 0 0,552E,Y,
4.5639670E-02,120,8,0 50 3 32 0 87 128 0,3EA0,N,
4.6194070E-02,301,8,0 0 181 0 0 0 0 202,55C8,Y,
4.6500310E-02,410,8,0 0 0 0 0 0 0 0,2627,Y,
5.7894551E-02,110,8,128 0 0 0 0 0 0 0,552E,Y,
5.8142711E-02,120,8,0 50 3 32 0 87 128 0,3EA0,N,


Attached Files
.png   DS2_202533024442.png (Size: 38,05 KB / Downloads: 130)
.png   Screen Shot 2025-03-30 at 05.52.26.png (Size: 116,18 KB / Downloads: 128)
.png   Screen Shot 2025-03-30 at 16.46.58.png (Size: 52,5 KB / Downloads: 128)
Reply
#94
Proradio F407 sa USB i CAN!
Izolovani tranceiver NSi1050D sam nekako nabavio i to radi odlično na tom HW sloju.

[Image: attachment.php?aid=45290]

Treba da proverim da li je to dobro što je primio ...
UPDATE: Prima dobro, sledeće samo da proverim da li je primio sve ...

Code:
05:00:30.700 --> CAN-RX [070007] | ID: 0x110 Data: 00 00 00 00 00 00 00 00
05:00:30.700 --> CAN-RX [070008] | ID: 0x120 Data: 00 32 03 20 00 57 80 00
05:00:30.700 --> CAN-RX [070009] | ID: 0x110 Data: 00 00 00 00 00 00 00 00
05:00:30.700 --> CAN-RX [070010] | ID: 0x120 Data: 00 32 03 20 00 57 80 00
05:00:30.700 --> CAN-RX [070011] | ID: 0x110 Data: 00 00 00 00 00 00 00 00
05:00:30.700 --> CAN-RX [070012] | ID: 0x120 Data: 00 32 03 20 00 57 80 00
05:00:30.700 --> CAN-RX [070013] | ID: 0x110 Data: 00 00 00 00 00 00 00 00
05:00:30.700 --> CAN-RX [070014] | ID: 0x120 Data: 00 32 03 20 00 57 80 00
05:00:30.700 --> CAN-RX [070015] | ID: 0x110 Data: 00 00 00 00 00 00 00 00
05:00:30.700 --> CAN-RX [070016] | ID: 0x120 Data: 00 32 03 20 00 57 80 00
05:00:30.700 --> CAN-RX [070017] | ID: 0x110 Data: 00 00 00 00 00 00 00 00
05:00:30.700 --> CAN-RX [070018] | ID: 0x120 Data: 00 32 03 20 00 57 80 00
05:00:30.700 --> CAN-RX [070019] | ID: 0x110 Data: 00 00 00 00 00 00 00 00
05:00:30.700 --> CAN-RX [070020] | ID: 0x120 Data: 00 32 03 20 00 57 80 00
05:00:30.786 --> CAN-RX [070021] | ID: 0x110 Data: 00 00 00 00 00 00 00 00
05:00:30.786 --> CAN-RX [070022] | ID: 0x120 Data: 00 32 03 20 00 57 80 00
05:00:30.786 --> CAN-RX [070023] | ID: 0x300 Data: 1B C0 00 82 00 00 FE 00
05:00:30.786 --> CAN-RX [070024] | ID: 0x301 Data: 00 00 B5 00 00 00 00 CA
05:00:30.786 --> CAN-RX [070025] | ID: 0x410 Data: 00 00 00 00 00 00 00 00
05:00:30.786 --> CAN-RX [070026] | ID: 0x110 Data: 00 00 00 00 00 00 00 00
05:00:30.786 --> CAN-RX [070027] | ID: 0x120 Data: 00 32 03 20 00 57 80 00
05:00:30.786 --> CAN-RX [070028] | ID: 0x110 Data: 00 00 00 00 00 00 00 00
05:00:30.786 --> CAN-RX [070029] | ID: 0x120 Data: 00 32 03 20 00 57 80 00
05:00:30.786 --> CAN-RX [070030] | ID: 0x110 Data: 00 00 00 00 00 00 00 00
05:00:30.786 --> CAN-RX [070031] | ID: 0x120 Data: 00 32 03 20 00 57 80 00
05:00:30.786 --> CAN-RX [070032] | ID: 0x110 Data: 00 00 00 00 00 00 00 00

Evo ceo setup sa ECU i priključen ELM327 na istu CAN mrežu.

[Image: attachment.php?aid=45291]r


Attached Files
.jpg   IMG_20250401_050618360.jpg (Size: 258,49 KB / Downloads: 107)
.jpg   IMG_20250401_054638639.jpg (Size: 295,94 KB / Downloads: 114)
Reply
#95
Sledeće što mi treba u programo je još jedan Virtualn COM Port, malo mi jedan : )

Hoću da razdvojim kanal za podatke i kanal za komande jer ima dosta tu stvari koje mogu da se menjaju u Run-time a mešanje toga na istom kanalu zna da bude problematično, kada se to razdvoji to je onda prava stvar.

Ovde ima baš za ovu F4 Discovery pločicu primer za dva VCP, kažu da radi ...
https://stackoverflow.com/questions/3354...sb-cdc-vcp
Reply
#96
Koji ti je to realtime panel, jel to neki program gotov ili si ti nesto pravio?
Reply
#97
https://txsuite.org/download/t8-suite/

T8Suite
The T8Suite is an Open Source tool used to tune Trionic 8 based ECU’s.
With the T8Suite it is possible to tune how the software behaves to increase the performance of the car and adjust the software for hardware modifications, such a high performance injectors. The T8Suite also supports real-time view and can be used to predict the behavior of the tune through it’s Air-mass viewer.
System Requirements, the T8Suite currently supports the following interfaces:

Lawicel CANUSB
CombiAdapter
OBDLink SX
Just4Tronic
Kvaser HS
J2534 (Beta)
Reply
#98
[Image: attachment.php?aid=45296]

Ovo je bitna stvar za ovu priču, vreme procesiranja CAN frejmova/poruka.
Ovde se vide frejmovi, dva ili više vezanih koji se pojavljuju nekom brzinom vidi se u gornjem delu svakih 13ms, nije popunjen kompletan "bandwith" mreže vidite procentulano koliko je zauzeto može da bude potpuno zauzeto u nekim situacijama.

Drugi kanal je LED/GPIO koji samo služi za odmeravanje vremena i to upali izlaz kada udje u ISR rutinu i ugasi kada izadje.
Vidite u donjem delu da se interapt aktivira nakon završetka prijema poruke (za zakašnjenem oko 20us dok stigne u tu tačku) i u toj ISR rutini koja radi neko bazično formatiranje i slanje na USB VCP je proveo svega 17us!

To praiktično znači da može da hendluje full-speed ODB saobraćaj jer mu je procesiranje/slanje kraće od vremena trajanja jednog frejma, radi u real-time i još ima rezerve za razne dodatne stvari.

Ovi drugi adapteri/kontroleri "posustaju" pri tim brzinama jer su im trasportni kanali dosta sporiji i onda moraju da rade "filtriranje" frejmova. Tačno postoje kao što vidite ID sa 0x110 0x120 koji su bazične "broadcast" informacije poput brzine, rpm i ostalo koje "slušaju razni uredjaji" ali recimo smetaju kod prenosa jer ne može kontroler sve da pošalje a dodatno i ne trebaju svima te informacije pa se onda to filtriranje radi na samo kontroleru i tako on šalje samo recimo >= 0x501 gde su dodatne/extended servisne infomracije.

Sve u svemu ovaj kontroler to radi u real-time sa/bez filtera i HVATA SVE frejmove maksimalnom brzinom i prosleduje na USB VCP.

I tu sad ima dodatna caka, Baud-rate od tog VCP, hehe, praktično NEMA jer ne radim sa fizičkom seriskom vezom, koliko god da postavite u seriskom terminalu IMA DA RADI, i radi sa bilo kojom brzinom!
Praktično znači da možete da prosledite neke "dodatne instrukcije" preko podešavanja Baud-rate tog interfejsa, recimo 115200 je standardni neki DEBUG-MOD, 14400 je recimo prošireni Debug-mode, recimo 4800 je "filtrirani CAN mode"!!! i tako dalje, može u letu da se menja! ;-)

PHP Code:
void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) {
    if (HAL_CAN_GetRxMessage(hcanCAN_RX_FIFO0, &RxHeaderRxData) == HAL_OK) {
        msglen=0;
        if (vcp_baudrate == 9600) {
            msglen snprintf(msgbuffsizeof(msgbuff),
                              "DBG RX-%06d | 0x%03lX: %02X %02X %02X %02X %02X %02X %02X %02X \r\n"cnt++,
                              RxHeader.StdId,
                              RxData[0], RxData[1], RxData[2], RxData[3],
                              RxData[4], RxData[5], RxData[6], RxData[7]);
        }
        else if (vcp_baudrate == 115200) {
            msglen fast_format_rx_msg(msgbuffcnt++, RxHeader.StdIdRxData);
        }
        else if (vcp_baudrate == 14400) {
            msglen snprintf(msgbuffsizeof(msgbuff), "vcp_baudrate=%ld\r\n"vcp_baudrate);
        }
        else if (vcp_baudrate == 4800) {
            if (RxHeader.StdId 0x510) {
                msglen fast_format_rx_msg(msgbuffcnt++, RxHeader.StdIdRxData);
            }
        }
        CDC_Transmit_FS((uint8_t *) msgbuffmsglen);
    }



Attached Files
.png   DS2_20254223512.png (Size: 39,65 KB / Downloads: 26)
Reply
#99
Miki, da li kod tebe radi ovaj T8Suite sa ELM327 ili koristiš neki drugi alat?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)