AS5600 Manyetik İndiksiyon Açı Ölçüm Entegresi Kullanımı

Başlatan Elektronikprojem, 11 Aralık 2020, 19:57:45

Elektronikprojem

Merhaba,
https://www.direnc.net/as5600-manyetik-induksiyon-acisi-olcum-modulu
Bu üründen aldım. I2C ile haberleşmeye çalışıyorum ama daha önce I2C ile haberleşme yapmadığım için nasıl olacağını anlayamadım. Haberleşmeyi nasıl başlatacağım ve açı bilgisini nasıl okuyacağım konusunda bilgi verebilecek kişilere teşekkür ediyorum.
Ürünün Datasheeti:
https://ams.com/documents/20143/36005/AS5600_DS000365_5-00.pdf

ete

Basic başlığı altında sorduğuna göre belirtmediğin derleyici BASIC derleyicisi olmalı ve açıklamamızı bu derleyiciye göre vermeliyiz.
Öncelikle I2C komutlarına bir göz atmakta yarar var.
I2CREAD DataPin,ClockPin,Control,{Address,}[Var{,Var...}]{,Label}
Bu entegrenin İşlemciye bağlanması gereken uçlarından birisi SDA yani Data pini. Diğeri ise SCL yani CLK pini. Ayrıca DIR pinide önemli bu da işlemciye bağlanmalı.
I2C komut formatında yer alan CONTROL isimli değişken cihazın SLAVE ADRES'idir. Data sheet e bakılırsa bu adres değeri %01101100 değerini alıyor. Bu değer yazma komutunda (I2CWRITE) geçerli olup okumada kullanılacak adres %01101101 olacaktır. Okuman gereken RAW angle ile Angle registerleri.
Data sheet 18 ci sayfada register Map verilmiş. Buna göre $0C ve $0D adreslerinde RAW angle değerleri verilmiş. Buna modifiye edilmemiş Açı değeri demiş. Ne anlama geliyor bilmiyorum.
Ama gerçek açı değerlerini $0F ve $0E adreslerinde verimiş.
$0F adresinden açı değerinin 0-7 arası bitlerini alıyorsun.
$0E adresinden ise açı değerinin 8-11 arası bitlerini alıyorsun.
şimdi bu açı değerini okuyalım,
I2CREAD DataPin,CLKpin,%01101101,$0E,[ACI.Byte.1,ACI.byte0]
Data ve Clk hatlarında mutlaka 10K lık pullup dirençleri olmalı. Bu önemli.

DIR pini şayet GND ye bağlı olursa,saat yönünde bir artışa yada dönmeye işaret eder diyor. Tersi olursa saat yönünün tersi artışa işaret eder diyor. Açıkçası ne anlama geldiğini pek kavrayamadım.
Diğer bir konuda data sheet 30. sayfada ham Açı değeri 0 derecede (yata pozisyonda) 0 sıfır olduğunu, 90 derecelik açıda ham açı değeri 1024 olduğunu , 180 derecelik açıda ise raw yani ham açı değerimnin 2048 olduğunu belirtmiş. Bu durumda bu değerleri referans alarak açı değerlerini sende hesaplayabilirsin. Bu durumda ham açı değerini okuman gerekiyor.
Hepsi bu kadar gerisi kendin halletmen lazım sanırım.
Ete

ACI değişkenin Word tipinde olmalı ve okumanın ardından sana direk açı değerini vermeli.
Hepsi bu kadar.
ete
 

Elektronikprojem

Hocam teşekkür ederim yazdığınız gibi oldu.
Ama anlamadığım bir kısım var
I2CREAD DataPin,CLKpin,%01101101,$0E,[ACI.Byte.1,ACI.byte0]
bu komuttaki %01101101 değerini nereden aldınız. Hexe çecirince 6D değeri çıkıyor ortaya.

ete

Data sheet den Slave ADres diye aratırsan karşına şu çıkıyor, %0110110 yani 7 bitlik değeri vermiş sondaki bit (bit0) ise Okumada 1 yazmada sıfır yapılır bu I2C de genel kaidedir.

Ete

Elektronikprojem

Tamam hocam şimdi anladım. Sonraki "1" rakamı kafamı karıştırmıştı. Teşekkür ederim.

Powered by EzPortal