Stm32F0 ve RS485 çıkış

Başlatan mistek, 29 Nisan 2018, 12:33:15

mistek

Arkadaşlar merhaba,

Bir cihazım var. STM32F0'dan dışarıya doğrudan RS232 üzerinden data gönderiyorum ve alıyorum. Bunu RS485'e çevirmek istiyorum.

MAX485 gibi bir entegreyi RS232 çıkışana bağlayıp RS485'e çevirmiş olur muyum?

RS232 - RS485 çevirici ürünler var ancak ben entegre devreler kullanıp PCB üzerine yerleştireceğim. Bu konuda ne önerirsiniz?
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

Tagli

Zaten PCB tasarımını modifiye edeceksen, bence RS232 ile ilgili kısmı devreden çıkar, işlemci doğrudan MAX485'i (veya muadili bir başka entegreyi) sürsün. Burada tek fark DE pininin sürülmesi. Dönüştürücüler bunu nasıl yapıyor bilmiyorum, galiba seri porttaki yardımcı pinlerden (DTR, CTS, RTS falan gibi) faydalanıyorlar. Ama STM32F0'larda bu pini sürecek hazır donanım var. TX yapılacağı zaman otomatik olarak DE pinini açıyor. En kötü ihtimalle herhangi bir dijital pini kendin de aç kapa yapabilirsin. dsPIC30F kullandığım bir projede öyle yapmıştım.
Gökçe Tağlıoğlu

DaRt

Olursun. Ben pic serisi mcu ve max485 kullanarak yaptığım devreye, delta marka plc ile rs485 üzerinden modbus rtu haberleşmesi yaptırdım, aynı hat üzerinde rs485 modbus analog input modülü de vardı. İletişimde tek bir sorun yaşamadım.

mistek

PCB modifiye yapacağım evet.

Mevcut durumda RS232 doğrudan STM32F0 RX-TX pinlerinden alıyorum.

Düşüncem şu: Bu rx-tx pinlerini Max485 RO-DI pinlerine bağlayıp. DE-RE pinlerinide dijital olarak sürmekti.

Bu şekilde sorun yaşanmıyorsa tasarımı buna göre yapacağım. Teşekkür ederim.

@Tagli hocam, F0'da DE sürme ile ilgili biraz bilgi verebilir misiniz? STM32F030K6 kullanıyorum.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R



mistek

boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

Tagli

@mistek hocam, kullandığın işlemcinin PA1 veya PA12 bacağı (istediğini seçebiliyorsun) donanımsal DE olarak ayarlanabiliyor. Bunu henüz ben de denemedim (muhtemelen 1 ay içinde deneyeceğim, çizdiğim kartın elime ulaşmasını bekliyorum) ancak reference manualden anladığım kadarıyla anlatıyorum.

Yazdığına göre, DE'nin start bitinden önce ve stop bitinden sonra ne kadar süre aktif kalacağını USART_CR1 içindeki DEAT ve DEDT bit alanları ile ayarlıyoruz. Buradaki birim örnekleme zamanı cinsinden. Bunu neye göre ayarlamak gerekir ben de bilmiyorum, ama deneme yanılma ile bulunabilir sanırım. DE'yi aktive etmek içinse USART_CR3'ün DEM bitini 1 yapmak gerekiyor. Bundan sonra bu bacak donanım tarafından sürülecek. Ek olarak, ilgili bacak için alternate function ayarı da yapmak gerekiyor. İlginç bir şekilde datasheette USART1_DE gibi bir ifade geçmiyor, ancak tahminimce USART1_RTS gibi ayarlansa çalışacaktır. O da AF1 olarak gözüküyor.
Gökçe Tağlıoğlu

mistek

@Tagli hocam açıklama için teşekkür ederim. Bende verdiğiniz bilgiler üzerine araştırma yapayım.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

Ax2_Bx_C

SN75176. Senelerdir kullanırım sorunsuzca çalışır. Yalnız RS485'ten randımanlı sonuç almak isterseniz common mode filtreyi mutlaka ekleyin.
Ben Yalnızca Bir Matematik Fonksiyonuyum