PİC16F688 configuration

Başlatan efsanepoldem, 26 Mayıs 2022, 19:45:25

efsanepoldem

   Arkadaşlar merhaba. Pic16f688 internal osilator kalibrasyonu hakkında yardıma ihtiyacım var. Şöyleki; yaptığım ayarlar şu şekilde;

@ __config __INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_ON & _CP_ON & _BOD_OFF & _IESO_OFF & _FCMEN_OFF
DEFINE OSC 4
OSCCON=%01100110
   GSM modülü ile seri iletişimde kullanıyorum. Fakat seri port ile tx hattını okuyorum. 9600 baud da anlamsız karakterler geliyor. Tahminen osc kalibrasyonu yapamıyorum. Heralde 4MHz ayarladığım osc frekansını tutturamıyorum.  Yardımlarınızı bekliyorum.

alisumer

osccon default zaten 4 mhz ayarlı geliyor osccon kısmını silin 1. bit 0 olmalı birde
Hep meraktan

efsanepoldem

   Sonuç aynı değişen birşey olmadı.

mehmet

#3
Alttaki şekilde deneyin, ayrıca
ana döngüye girmeden bir kaç saniye
bekletin.
OSCCON=%01100000
WHILE OSCCON.2 = 0 ;dahili RC osilator sabitlenene kadar bekle
WEND
DELAYMS 1000
BASLA:
.....

EK:
Simülasyonda dahili RC osilatör sabitlenmesini
beklemesinde sorun oluşuyor.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

efsanepoldem

    Mehmet hocam ne yaptımsa olmadı. Dediğiniz ayarları yaptım sonuç yine aynı.
SEROUT2 MODUL_TX,84,["AT",13]
  Datasını yolladığımda;


böyle datalar okuyorum. Anlamadım

mehmet

4MHz de 9615 baud hesaplanır, eğer
bunu algılamıyorsa bir şey diyemem.
Uygun kristalili bir çalışma daha
verimli olabilir.

Lojik analizör ile bakmakta yarar var.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

efsanepoldem

    Mehmet hocam kristalli bir çalışma yapmam için osccon ve config ayarlarım nasıl olmalı?

alisumer

#7
veriler anlamsız da olsa geliyorsa bu uygun boud değeri olmayabilir veya invert olduğu anlamına da gelebilir simulasyonda denedinizmi başka değerleri . ayrıca çok stabil bir veri geliyor belli ki çalışıyor okumayı asci formatında yapıyorsunuz kullandığınız modulün veri formatı nedir baktınızmı bilgi kağıdına
Hep meraktan

efsanepoldem

similasyonda gayet güzel çalışıyor. Problem aslında 4mhz için gerekli ayarları yapamadığımdan kaynaklanıyor. pic16f877 ile bağlantı yaptım sıkıntısız çalışıyor. Bu işlemciyi pcb ye montajlamam mümkün değil. Onun için pic16f688 de inat ettim. Config ve osccon ayarlarından olduğunu düşünüyorum. XT kristalli bir çalışma yapmam için fuse ve osccon ayarlarım nasıl olmalı belki bu işimi çözer.

alisumer

#9
xt için osccon =01101000
config = @__CONFIG 0x30E4
Hep meraktan

efsanepoldem

#10
internal osc kullanırken saçma sapan da olsa veriler geliyordu. Fakat xt osc ayarları ile sistem hiç çalışmadı. PİC hiç bir işlem yapmıyor. Bu işlembu kadar zor olmamalı. Kafayı sıyıracam....

mehmet

Baud değerinin tam çıkması için
küsüratlı değeri olan kristal
kullanmanız lazım.
11.0592HMz, 3.6864MHz gibi.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

efsanepoldem

#12
'****************************************************************
'*  Name    :                                                   *
'*  Author  :                                                   *
'*  Notice  : Copyright (c) 2022                                *
'*          : All Rights Reserved                               *
'*  Date    : 22.04.2022                                        *
'*  Version : 1.0                                               *
'*  Notes   :                             
'*                   
'*

'****************************************************************
include "modedefs.bas"
@ __config _XT_OSC & _WDT_OFF & _MCLRE_ON & _CP_ON & _BOD_OFF & _IESO_OFF & _FCMEN_OFF

DEFINE  OSC 4
OSCCON=%01101000           'internal OSC 4 mhz       
PORTA=0:TRISA=%00000000
PORTC=0:TRISC=%00000010
ANSEL = 0
CMCON0 = 7       
' ------------------------------------------------------------------------------
OUT1       VAR  PORTA.2    'relay output_1
MODUL_TX   VAR  PORTC.2
CLEAR
pause 300
     
   HIGH OUT1
   pause 1000

   LOW OUT1
   pause 1000
   
   
 
'*******************************************************************************

BEGIN:
   
   SEROUT2 MODUL_TX,84,["AT",13]
   HIGH OUT1
   pause 500
   LOW OUT1
   pause 1000   
   
   GOTO BEGIN
END



      Burada yanlış olan nedir hocam?

mehmet

OSCCON dan sonra biraz bekletin, ~2sn kadar...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

ete

OSCCON registeri daha ziyade dahili OSC kullanımına yöneliktir.
Bana kalırsa XT yani harici kristal kullanılması durumunda OSCCON registerine herhangi bir değer vermemeniz daha doğru olur düşüncesindeyim.

Ete

Powered by EzPortal