Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 8 lut 2025, o 17:13


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
Autor Wiadomość
PostNapisane: 2 maja 2017, o 10:30 
Offline
Użytkownik

Dołączył(a): 28 mar 2014
Posty: 79
Zbananowany użytkownik

Pomógł: 1

Witam,

Moje pytanie może wydać się głupie, ale wynika ono z tego, że nigdy nie korzystałem z magistrali CAN (nie było potrzeby), natomiast teraz chciałbym się nią pobawić. Moduł DISCO-F429ZI posiada na swoim pokładzie kilka wyjść CAN (wyjścia to np. CAN1_TD oraz CAN1_RD). Szczerze mówiąc byłem pewien, że kontroler magistrali jest wbudowany w mikrokontroler albo znajduje się na płytce. Okazuje się, że nie i należy wykorzystać dodatkowo na przykład PCA82C251, który "wyprodukuje" dopiero sygnał różnicowy.

I tutaj przechodzę do właściwego pytania. Chcąc połączyć ze sobą powiedzmy dwie płytki discovery, czy powinienem zrobić to w ten sposób?

uC1 (CAN) <-> PCA82C251 <-> PCA82C251<-> uC2 (CAN)

I jeszcze jestem ciekaw co by się stało gdyby połączyć mikrokontrolery bez układu PCA82C251, czyli bezpośrednio złączyć ze sobą wyjścia CAN?

Wszystkie moje wątpliwości wynikają z tego, że byłem pewien, iż już na wyjściach CAN pojawia się sygnał różnicowy.

Z góry dziękuję za odpowiedzi i przepraszam jeżeli moje pytanie jest banalne.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 maja 2017, o 10:56 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8605
Pomógł: 337

w tym sęk cały że właśnie kontroler CAN jest wbudowany w mikrokontroler , ale
ze względu na universane wykorzystanie GPIO na których ów CAN się też znajduje
należy do tych wyjść podłączyć transceiver, który wygeneruje właśnie odpowiednie
sygnały dostosowane do właczenia w magistralę can

dlatego musisz obu płytkom zapewnić transceivery .

Układ PCA82C251 nie będzie tu odpowiedni gdyż napiecie pracy to VCC = 4.5 V to 5.5 V
a twój mikrokontroler pracuje z napięciem 3,3V

i tu lepszym rozwiązaniem jest zastosowanie transceiverów SN65HVD230


Autor postu otrzymał pochwałę

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 maja 2017, o 15:05 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2592
Pomógł: 128

Moim zdaniem jeśli byś połączył tylko dwa urządzenia ze sobą to teoretycznie przy testach na b. małych odległościach powinno to chodzić (tx połączony z rx). Tylko po co, skoro drivery nie są drogie? Gwoli ścisłości - driver zamienia sygnal ttl na parę rożnicową.
Uczmy się w takiej konfiguracji w jakiej system ma działać docelowo. Bo za chwilę się okaże ze skoro działało na biurku bez driverow to ktoś dojdzie do wniosku, że w rzeczywistości też będzie działać bez i zacznie tworzyć układy bez driverów i kłopoty gotowe.

Sent from my Mi-4c using Tapatalk



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 maja 2017, o 18:48 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8605
Pomógł: 337

micky napisał(a):
Moim zdaniem jeśli byś połączył tylko dwa urządzenia ze sobą to teoretycznie przy testach na b. małych odległościach powinno to chodzić (tx połączony z rx). Tylko po co, skoro drivery nie są drogie? Gwoli ścisłości - driver zamienia sygnal ttl na parę rożnicową.


Nawet nie wnikam skąd koledze takie coś do głowy przyszło ....
Transceiver ma być i koniec ... nie jest to drogi układ nawet w postaci płytki modułowej to tylko parę złotych
jak ma być CAN to ma być CAN a nie jakieś tam pseudokomunikacje ...

albo się trzymamy specyfikacji i założeń i standardu modelu medium transmisyjnego dla danej magistrali , albo
na co to komu ??

W czym kłopot dla kolegi autora zakupić 2 moduły np :
Obrazek

i pracować jak człowiek z CAN , czy 2 układy i sobie samemu zlutować płytki ??
nikt nie mówił że elektronika jest prosta i tania , czasem trzeba dokupić to i owo , choć tu i tak jest przecież ułatwienie
bo nie trzeba dokładac kontrolera CAN komunikować się z nim po SPI i bawić w oprogramowanie i komunikację ...

micky napisał(a):
Bo za chwilę się okaże ze skoro działało na biurku bez driverow to ktoś dojdzie do wniosku, że w rzeczywistości też będzie działać bez i zacznie tworzyć układy bez driverów i kłopoty gotowe.


w tym problem że kłopoty tylko będa a nie działanie ... niech sobie TTL kolega wepnie w CAN to się kolega zdziwi
to że nie zadziała to nic w porównaniu z uszkodzeniami nie tylko płytki z F4 -- ale i innych dołączonych do magistrali

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 maja 2017, o 19:49 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2592
Pomógł: 128

Gwoli wyjaśnienia, bo chyba zostałem opatrznie zrozumiany.

Z postu kolegi r03c10 zrozumiałem, że chciałby połączyć swoje dwa uC po CANbusie nie używając po obu stronach driverów.
I to jest możliwe (teoretycznie) - tak samo jak podłączanie dwóch uC po tx/rx bez używania np. MAX232 po obu stronach.
W żaden sposób nie sugerowałem aby sygnał TTL/cyfrowy (z jednej strony) podłączać do istniejącej magistrali róznicowej CAN (czyli tej z driverami).

Ale to tak na marginesie, bo to takie akademickie dyskusje :)

Czasami możliwość wpinania się w sygnał cyfrowy (pomiedzy uC a driverem) bardzo się przydaje - możemy w ten sposób podsłuchiwać
transmisję i inne rzeczy. Ale to już zupełnie inny temat rzeka :)

ps. Pisząc o TTL - użyłem skrótu myślowego - chodziło mi sygnał cyfrowy wychodzący bezpośrednio z uC.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 10:27 
Offline
Użytkownik

Dołączył(a): 28 mar 2014
Posty: 79
Zbananowany użytkownik

Pomógł: 1

Dziękuję za bardzo wyczerpujące odpowiedzi. Moje pytanie o łączenie płytek bez układu pośredniczącego było czysto teoretyczne i wynikało z ciekawości :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 10:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lis 2012
Posty: 283
Lokalizacja: Warszawa
Pomógł: 17

r03c10 napisał(a):
Dziękuję za bardzo wyczerpujące odpowiedzi. Moje pytanie o łączenie płytek bez układu pośredniczącego było czysto teoretyczne i wynikało z ciekawości :D


W/g dokumentacji np. Keila, da się testować CAN bez transiverów, trzeba tylko odpowiednio "zasymulować" obwód:

Obrazek

źródło: http://www.keil.com/appnotes/files/apnt_236.pdf

_________________
Pozdrawiam
Grzegorz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 11:09 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8605
Pomógł: 337

oczywiście jest to wykonalne tylko po co ??

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 11:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lis 2012
Posty: 283
Lokalizacja: Warszawa
Pomógł: 17

SunRiver napisał(a):
oczywiście jest to wykonalne tylko po co ??


Oj Sun - chociażby dla samej idei - czy się da :)

_________________
Pozdrawiam
Grzegorz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 12:03 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8605
Pomógł: 337

buz11 napisał(a):
Oj Sun - chociażby dla samej idei - czy się da


zabrzmiało jak slogan z PRL

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 18:59 
Offline
Użytkownik

Dołączył(a): 28 mar 2014
Posty: 79
Zbananowany użytkownik

Pomógł: 1

No dobrze, uzbrojony w te cenne informacje w najbliższym czasie będę testował magistralę CAN tylko muszę się zaopatrzyć w układy pośredniczące.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 19:02 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8605
Pomógł: 337

r03c10 napisał(a):
No dobrze, uzbrojony w te cenne informacje w najbliższym czasie będę testował magistralę CAN tylko muszę się zaopatrzyć w układy pośredniczące.


i to jest dobra koncepcja :) jak cos robic to dobrze od poczatku :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2017, o 19:11 
Offline
Użytkownik

Dołączył(a): 28 mar 2014
Posty: 79
Zbananowany użytkownik

Pomógł: 1

I dlatego rozpocząłem tą dyskusję żeby nie zrobić falstartu :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2017, o 17:24 
Offline
Użytkownik

Dołączył(a): 28 mar 2014
Posty: 79
Zbananowany użytkownik

Pomógł: 1

Po dłuższej przerwie kontynuuję temat. Czy ma ktoś może jakiś prosty przykład nadawania i odbierania przez CAN w sTM32? I czy dobrze myślę, że przez CAN możemy jednorazowo wysłać tylko osiem znaków? Pytam ponieważ bufor (hcan.pTxMsg->Data) jest tablicą ośmioelementową.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2017, o 21:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lis 2012
Posty: 283
Lokalizacja: Warszawa
Pomógł: 17

r03c10 napisał(a):
Po dłuższej przerwie kontynuuję temat. Czy ma ktoś może jakiś prosty przykład nadawania i odbierania przez CAN w sTM32?



Ja posiłkowałem się tym przykładem:
http://www.keil.com/download/docs/351.asp
i wszystko działa jak powinno.

r03c10 napisał(a):
I czy dobrze myślę, że przez CAN możemy jednorazowo wysłać tylko osiem znaków? Pytam ponieważ bufor (hcan.pTxMsg->Data) jest tablicą ośmioelementową.


W CAN 2.0 A i B masz pole danych 8-bajtowe. Ale jest CAN-FD i tam możesz mieć już do 64 bajtów.

_________________
Pozdrawiam
Grzegorz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2017, o 09:35 
Offline
Użytkownik

Dołączył(a): 28 mar 2014
Posty: 79
Zbananowany użytkownik

Pomógł: 1

Dzięki za link. Co do CAN-FD to chyba STM32F4 nie obsługuje tego standardu.

Wygenerowałem sobie przykład w CubeMX i chcę przesłać dane z CAN1 do CAN2 na płytce DISCO-F429ZI. Korzystam z takich przejściówek jakie był polecane wcześniej w temacie. Niestety jedyne co widzę kiedy podłączyłem analizator logiczny to error frame:

Obrazek

Czy ktoś może potwierdzić, że takie przesłanie z CAN do CAN w obrębie jednego procesora jest w ogóle możliwe?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2017, o 11:50 
Offline
Użytkownik

Dołączył(a): 28 mar 2014
Posty: 79
Zbananowany użytkownik

Pomógł: 1

Kurczę, no i jeszcze podejrzałem sobie co zwraca funkcja HAL_CAN_Transmit i otrzymuję 0, czyli wszystko powinno być ok. Jeżeli rozłączę któryś z przewodów różnicowych to funkcja zwraca 1 bądź 3. Co tutaj może być nie tak? Może trzeba zasilać SN65HV230 z 3.3 V, a nie z 3 V bo to za mało?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2017, o 19:25 
Offline
Użytkownik

Dołączył(a): 28 mar 2014
Posty: 79
Zbananowany użytkownik

Pomógł: 1

I jeszcze jedno pytanie mi się nasunęło. Czy jeżeli mam dwa małe STMy, które dysponują tylko jednym wyjściem CAN i mogę je ustawić tylko w trybie master mode w CubeMX to czy mogę ze sobą skomunikować dwa takie małe mikrokontrolery czy koniecznie muszę mieć na magistrali jakiś slave?

Ogólnie to nie spodziewałem się, że CAN okaże się tak nieprzystępnym interfejsem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO