Picproje Elektronik Sitesi

DERLEYİCİLER => Proton+ => Konuyu başlatan: mustafa_cmbz - 29 Aralık 2018, 22:42:31

Başlık: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: mustafa_cmbz - 29 Aralık 2018, 22:42:31
Merhabalar..

MH-Z16 co2 sensörü geldi ufak bir kod yazıp denemeler yapmak istedim fakat sabahtan beri kafayı yedirtti bana.

En son çare pic'in çıkışına usb-serial çevirici takıp MH-Z16 ya gönderdiğim datayı teyit etmek oldu.

Çok garip bir sorunum var gibi.Yada ben yanlış yapıyorum bilemedim..

(https://i.hizliresim.com/k9nEGD.png) (https://hizliresim.com/k9nEGD)

data sheetin diyor ki : sensörden veri okumak için ilk olarak ona naber nasılsın iyimisin hoşmuşun demek gerekiyor..

HSerOut2 [$FF,$01,$086,$00,$00,$00,$00,$00,$79]  ' CO2 SENSORUNU OKUMAK İÇİN GONDER
aynen datasheetin de yazdığı gibi sensörün halini vaktini soruyorum daha doğrusu yukarıdaki kod'da ki gibi yazdığım dataları göndermeye çalışıyorum...

ama sensörden ses seda yok...Sonra dediğim gibi serial den dinlemek istedim acaba ne gidiyor sensör tarafına diye

(https://i.hizliresim.com/Ll1Qno.png) (https://hizliresim.com/Ll1Qno)

görünce acayip şaşırdım..Benim yukarıda yazdığım göndermeye çalıştığım ne çıkıştan aldığım ne..

Ne yapmam lasım ?

 
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: mustafa_cmbz - 29 Aralık 2018, 23:07:45
İşin ilginç tarafı simulasyonda gönderilen dataları doğru gösteriyor...

(https://i.hizliresim.com/ZX7YPA.png) (https://hizliresim.com/ZX7YPA)
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: z - 29 Aralık 2018, 23:34:34
Islemcinin Tx ve Rx hattina normalde kapali basinca acilan butonlar koy.

Programin dongu icinde surekli sensorden data isterken bu butonlara arada bir basarak iletisimi boz.

Eger adamakalilli bir yazilim yaptiysan sistemin kendini toparlamasi lazim. Yoksa cakilir kalir.

Boyle yaparsan simulasyonda da test edebilirsin.
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: mustafa_cmbz - 29 Aralık 2018, 23:38:21
Hocam o konuda haklısınız fakat şuan sıkıntı $86 değerini picin çıkışında $3f olarak okumam..

Sanırım sensöre bu şekilde yanlış bilgi gidiyor..
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: z - 29 Aralık 2018, 23:52:26
Rx Tx hattinda farkinda olmadigin bir invertor olmasin? TTL baglantida MCU dada USB donusturucude de inverter olmamasi lazim yada her ikisinde de olmasi lazim.
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: ferdem - 30 Aralık 2018, 00:04:25
Alıntı yapılan: mustafa_cmbz - 29 Aralık 2018, 22:42:31Ne yapmam lasım ?

 

Proton+ UART TX örneklerini incelemek lazım. UART ayarlarında bir hata olsa gerek.
Bazı byte lar doğru gidiyor olabilir ancak görünen o ki UART doğru ayarlanmamış.
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: tekosis - 30 Aralık 2018, 00:52:46
simülasyonda da ilk bayt sanki hatalı. ilk bayt 00 gitmiş.
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: JOKERAS - 30 Aralık 2018, 12:54:12
False İnterrupt hatasına benziyor.
Frame'in başı yanlışsa,yanlış iliklenen Gömlek düğmesi misali
hepsi yanlış gidiyordur herhalde.
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: hwdesigner - 30 Aralık 2018, 15:17:33
bazen osc hatası olabiliyor. yanlış çarpan ile set ettiyseniz osc bozuk ise v.s Yani zamansal kayma sebebiyle
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: OG - 30 Aralık 2018, 17:55:04
HSerOut2 [$FF,$01,$086,$00,$00,$00,$00,$00,$79]
Hatalı Byte
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: mustafa_cmbz - 30 Aralık 2018, 18:44:46
Alıntı yapılan: OG - 30 Aralık 2018, 17:55:04HSerOut2 [$FF,$01,$086,$00,$00,$00,$00,$00,$79]
Hatalı Byte

hocam o deneme yaparken kalmış muhtemel

HSerOut2 [$FF,$01,$86,$00,$00,$00,$00,$00,$79]

bu şekilde de göndersem sonuç aynı aşağıdaki gibi :

0x3f 0x1 0x3f 0x0 0x0 0x0 0x0 0x0 0x79

birşey dikkatimi çekti burada...

mesela sadece:

HSerOut2 [$86]

dediğimde de pc de serial portta gördüğüm :

0x3f

bu ne anlama geliyor ?

Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: mustafa_cmbz - 30 Aralık 2018, 18:48:16
son olarak serial port programından $86 gönderdim serial to usb çeviricinin rx tx ucunu kısa devre ettiğimde geriye aldığım yanıt bu şekilde

(https://i.hizliresim.com/268Pnj.png) (https://hizliresim.com/268Pnj)
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: OG - 30 Aralık 2018, 18:55:56
sen ascii olarak (string) gönderiyorsun, aldiğin sonuç onu gösteriyor
Yani
$86 göndermiyor
"$86" gönderiyorsun, 3 ayrı byte
ascii tablosuna bakarsan anlayacaksın
"$" 0x24 yani $24
"8" 0x38 yani $38
"6" 0x36 yani $36
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: OG - 30 Aralık 2018, 19:12:42
Datasheet'e yeni baktım dikkatimi çekti
IN/OUT data voltajları dikkate alınıyormu.

(https://i.postimg.cc/0NSqhtd9/Ekran-Al-nt-s.jpg) (https://postimages.org/)
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: mustafa_cmbz - 30 Aralık 2018, 19:18:04
serial port programında evet dediğin gibiymiş biz string gönderiyormuşuz ondan öyleymiş fakat

işlemciden hex olarak $86 gönderdiğim de neden 0x3f olarak alıyorum ? burasını hala anlamış değilim..

voltaj kısmıyla sorduğun şey sanırım

(https://i.hizliresim.com/Ll1GMb.png) (https://hizliresim.com/Ll1GMb)

arada çevirici var onu soruyorsan...




Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: OG - 30 Aralık 2018, 19:31:14
önce datayı loop yaparak, gönderdiğini pc de görüp koddaki hatayı bulmalısın derim
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: mustafa_cmbz - 30 Aralık 2018, 19:59:31
Device=18F24K22
  Xtal=20
  All_Digital=TRUE
 

  Declare Hserial2_Baud  = 9600
  Declare Hserial2_RCSTA = %10010000 ' Enable continuous receive
  Declare Hserial2_TXSTA = %00100000 ' Enable transmit and asynchronous mode      ' DIGER HABERLEŞME İÇİN KULLANILACAK
  Declare Hserial2_Clear = On ' Clear the buffer before receiving
 
  Symbol BUZZER                  = PORTA.3
 
'******************/ DEGISKEN TANIMLAMALARI /**********************

  Dim A           As Byte
  A=0
 

 
'*************************/ ANA PROGRAM /*****************************
 

  BASLA:

  For A=0 To 100
  DelayMS 800
  GoSub MELODI : GoSub CO2_SENSOR_OKU
  Next
 
  GoTo BASLA



 
 '**********************/ MELODI /******************************* 
 
  MELODI:
  High BUZZER
  DelayMS 38
  Low BUZZER
  DelayMS 80
  High BUZZER
  DelayMS 14
  Low BUZZER
  DelayMS 50
  Return   
 
 '*************
 
  CO2_SENSOR_OKU:
  DelayMS 10
  HSerOut2 [$86]
  DelayMS 10
  Return
 



döngü şeklinde pc ye şuan sadece $86 gönderiyorum gördüğüm $3F kodun tamamı burada.

nerede yanlış yapıyorum ?
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: mustafa_cmbz - 30 Aralık 2018, 21:06:38
@ete hocam senin bir yorumun varmı ?
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: yas - 30 Aralık 2018, 22:19:07
Burada yanlış yok belki donanımda bir sıkıntı olabilir. TX pini üzerinde pullup direnç var mı? Varsa direnç değeri kontrol edilmeli. Yada crystall in 20MHz olduğundan emin misiniz? Pic i devreden söküp uart2 nin RX ve Tx pinlerini birleştirin. PC terminal üzerinden gönderdikleriniz doğru şekilde geri geliyor mu? Geliyorsa donanımda sıkıntı yok demektir (mcu hatalı olabilir).
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: mustafa_cmbz - 30 Aralık 2018, 22:19:39
(https://i.hizliresim.com/4jbQYY.png) (https://hizliresim.com/4jbQYY)

PİC'ten $86 datası doğru çıkıyormuş aslında benim kullandığım forumdan bir arkadaşa ait olan serial dinleme programında sıkıntı varmış bu yüzden dolayı sabahtan bu yana boşuna uraşıyorum benim Rx kısmında sorunum varmış.Nihayetin de sensöre ilgili dataları gönderdiğimde geri dönüş yaptığını gözlemiş oldum..
Başlık: Ynt: 8byte lik gönderdiğim datanın bazı byte'ları farklı değerde çıkıyor..
Gönderen: OG - 31 Aralık 2018, 10:55:49
Hercules https://www.hw-group.com/software/hercules-setup-utility
PuTTY https://www.chiark.greenend.org.uk/~sgtatham/putty/
Terminal https://sites.google.com/site/terminalbpp/