RS-485 parazit problemi

Başlatan görkem, 17 Ocak 2018, 18:03:44

ahmet_zxc

Alıntı yapılan: görkem - 20 Ocak 2018, 20:38:17
@OG Anladım.
Yeni bir ürün aldım aşağıdaki ürün, üründe 4.7k pull-up pull-down dirençleri ve 120 ohm sonlandırma direnci var devredeki kısımdaki pull-up ve pull-down dirençlerini sökmüştük şuanda tx hattında 1 kaç byte veriden sonra veriler bozulmaya başlıyor boş olan pull-up ve pull-down dirençlerini 4.7k bağlasam sorun çözülürmü ? Tam oldu derken yeni sorunlar çıkıyor.



680 ohm tak

foseydon

Bence sorun direnç değerlerinde değil.

görkem

gnd ler birleşmeden çalışmıyordu zaten bu modüle geçincede tx hattıda gitti birtürlü ne olduğunu anlayamadım günlerdir kafa patlatıyorum gözden kaçırdığım birşey var mı diye.
Kablo blendajlı 30m  3x0.22mm daha ne olabilirki yazılımda problem olabileceğini düşünmüyorum kısa kablo ile hiç sorunsuz çalışıyordu çünkü tabi gnd ler birleşik olmak kaydı ile.

ahmet_zxc

bu modülün şeması varmı bence bu modülde problem var. bizim kendi üretimimiz olan modüller var 2x075 kablo çekiyoruz 100 metre endüstriyel ortam tık demiyor.

OG

Ben sorununu anlam veremedim, fazla yorum da yapamıyorum, ahmet_zxc 'in dediği gibi modülün problemli olabilir.

Bir iki basit hususa dikkat edince (ki bunlar önceki mesajlarda geçen şeyler) şıkır şıkır çalışabileceğiniz şeydir RS485.  Hep donanıma yoğunlaştınız sanıyorum, yazılımda birşeyleri atlamış olmayasınız.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

görkem

@ahmet_zxc @OG  yazılımda bir problem olsa yarım metrelik kabloda da düzgün veri alışverişi olmaması lazım.
aşağıda kullandığım modüller var birinin devre şemasını bulabildim

bu şema devremde kullandığım modüle ait 20k pull-up ve pull-down olan dirençler şuanda boş


bu modül pc tarafında kullanılan modül,pull-up ve pull-down dirençleri 4.7k, sonlandırma 120 ohm.


ahmet_zxc

ben yazılımla ilgili bişey demedim.
pull up - down dirençler sadece master da olmalı, iki taraftada varsa slave dekini çıkar.


4,7 k çok yüksek, daha önceki mesajlarımda 680 ohm tak demiştim, duyan olmadı herhalde.


nerde yaşıyorsun? pendik e gelebilirmisin.

OG

Alıntı yapılan: görkem - 21 Ocak 2018, 14:12:15
@OG  yazılımda bir problem olsa yarım metrelik kabloda da düzgün veri alışverişi olmaması lazım.
GND'siz çalışmama konusu açıklanamadığı müddetçe donanımla beraber yazılımdan da şüphe ederim.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

görkem

#38
@ahmet_zxc yazılım olayını OG hocama söylemiştim.
bendeki mevcut durumda master da sonlandırma direnci haricinde pull-down dirençleri yok onları yarın 680 ohm olarak  takıp  slave deki dirençleri çıkartıcam. Slave deki pull-down dirençleri sökmemizin sebebi nedir ? İzmirde yaşıyorum pendik e gelme şansım yok.680 ohm yazdığınızı gördüm hocam.

@OG hocam yazılımda kullandığım kısmı sizinle paylaşıyorum
yazılım stm32f103 de çalışıyor
veri göndericeğim zaman de-re pinini high a çekiyorum ardından low a çekip veri gelmesini bekliyorum kesme ile veriyi alıyorum. 
HAL_GPIO_WritePin(GPIOA,DE_RE_Pin,GPIO_PIN_SET);
	HAL_Delay(5);
  HAL_UART_Transmit(&huart1,buffer,5,50);
	HAL_Delay(5);
  HAL_GPIO_WritePin(GPIOA,DE_RE_Pin,GPIO_PIN_RESET);

kesme ile verileri aldığım kısım
void USART1_IRQHandler(void)
{



  HAL_UART_IRQHandler(&huart1);

	
	
HAL_UART_Receive_IT(&huart1,rx_buffer,8);	

	

}

usart parametrelerim
static void MX_USART1_UART_Init(void)
{

  huart1.Instance = USART1;
  huart1.Init.BaudRate = 9600;
  huart1.Init.WordLength = UART_WORDLENGTH_8B;
  huart1.Init.StopBits = UART_STOPBITS_1;
  huart1.Init.Parity = UART_PARITY_NONE;
  huart1.Init.Mode = UART_MODE_TX_RX;
  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
  if (HAL_UART_Init(&huart1) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

}


donanım kısmında stm32f103 3.3v ile çalıştığı için arada level shifter var .Level shifter dan rs485 modülüne veriler gidiyor.

görkem

@ahmet_zxc  @OG  master tarafa 680 ohm direnç taktım diğer taraftaki dirençleri söktüm gnd ler de birleşik değil şuanda haberleşebiliyor fakat şöyle bir durum oluşuyor ara ara bütün veriler 0 a dönüyor bunun sebebi ne olabilir ?

foseydon

modül iletimdeyken beslemesini kontrol et.

Erol YILMAZ

Konuyu komple okuyamadım ama RS485 çipinin hemen dibinde olması gereken 100nF var mı?
Yoksa kesinlikle koyun.

makdeniz

@görkem sistemde kullandığın bilgisayar ve laptop herneyse parazit yayabilir mümkünse sarj'da olmamasına dikkat  edermisin ? Mutlaka sistemini etkileyen başka bir şey var. Mesela Stm32'nin beslemesi nereden geliyor ?
Karanlık olmadan aydınlık, Ölüm olmadan yaşam mantıksız.

görkem

@foseydon  voltaj stabil 5v da verileri gönderip alırken.

@Allegro  modül üzerinde max485 ve modülde 100nf var,bende modülün besleme uçlarına ekstra 100nf takmıştım.

@makdeniz test ederken hep şarj da tutuyordum çıkartıpda deniyim pc ninde yanında kontrol ediyordum . stm32 nin beslemesi şu şekilde 220- 12v smps den öncelikle lm7805 e daha sonra ld33 regületöre girip stm32 e giriyor .

foseydon

Alıntı yapılan: görkem - 22 Ocak 2018, 18:19:55
@foseydon  voltaj stabil 5v da verileri gönderip alırken.

@Allegro  modül üzerinde max485 ve modülde 100nf var,bende modülün besleme uçlarına ekstra 100nf takmıştım.

@makdeniz test ederken hep şarj da tutuyordum çıkartıpda deniyim pc ninde yanında kontrol ediyordum . stm32 nin beslemesi şu şekilde 220- 12v smps den öncelikle lm7805 e daha sonra ld33 regületöre girip stm32 e giriyor .

Scope Ile mi bakıyorsun yoksa voltmetre ile mi?