Display a RTC obvod

Petr087

Display a RTC obvod

Příspěvek od Petr087 »

Dobrý den,
Mám prosbu ohledně obvodu které jsou na obrazku.Sháním někoho kdo mě poradí jak na to? Jak to zapojit, a trochu pomohl to rozchodit. Komunikovat klidně přes e-mail.

Mockrát Děkuji
Přílohy
IMAG0084.jpg
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Display a RTC obvod

Příspěvek od AlesH »

Ahoj. Tyto dva konkrétní typy modulů jsem sice nikdy neměl v ruce, ale pár I2C zařízení jsem už k PICAXE připojil a rozchodil, takže to spolu můžeme prodiskutovat (raději tady na fóru, ať z toho něco mají i další případní čtenáři).

Základní princip připojení PICAXE k I2C zařízením (konkrétně k RTC DS1307) je dobře popsán např. na http://www.bristolwatch.com/picaxe/serial_i2c_demo.htm . Tvůj RTC modul sice obsahuje obvod DS3231, ale i k němu se určitě podaří dohledat potřebné informace (hlavně I2C adresu a kódy ovládacích příkazů). I2C adresu a ovládací kódy bude třeba najít i ke Tvému LCD modulu (mělo by to být na příslušné stránce u prodejce toho modulu). Pro zprovoznění v zásadě stačí propojit napájení (pozor na dovolené hodnoty) a signály SDA a SCL mezi PICAXE a moduly. Pak už je možno začít programovat (nebo převzít dostupné programy z netu), ladit a testovat. V I2C PICAXE programech jsou zásadní příkazy "i2cslave" (nastavení komunikace), "writei2c" (řídicí příkazy) a "readi2c" (čtení hodnot).

Jdeš do toho?

Odkazy na další informace:
http://elecurls.tripod.com/i2c-codes-for-picaxe.htm
https://solarbotics.com/download.php?file=1841
http://www.picaxe.com/Circuit-Creator/I ... ck-DS1307/
http://www.picaxeforum.co.uk/archive/in ... 21872.html
viewtopic.php?f=14&t=327 (česky, zde na fóru)
viewtopic.php?f=14&t=282 (česky, zde na fóru)
Petr087

Re: Display a RTC obvod

Příspěvek od Petr087 »

Moc Děkuju,doufám že vás nebudu otravovat

Snažím se zatím sparovat PICAXE a RTC.Prohledal jsem tvoje odkazy a našel jsem tam nějakou tu adresu. Už se mi to nějak povedlo aby RTC posílal něco zpět, když nahraju program do Chipu tak debug mi posíla bity zpět ale (b1) co má počítat vteřiny tak počíta do 90 a občas poskočí třeba o pět. Jestli nemám špatně nastavenou frekvenci.mám tam tento program:

hi2csetup i2cmaster, %11010000 , i2cslow, i2cbyte

start:
hi2cin 0,(b1,b2,b3,b4,b5,b6,b7)
debug
pause 900
toggle c.4
goto start
jova
Příspěvky: 362
Registrován: 16 pro 2013, 11:40

Re: Display a RTC obvod

Příspěvek od jova »

Mě to běhá s tímto programem.
Mám tam, ale jiné LCD tak si to budeš muset upravit pro sebe.
Já ten tvůj sériový řadič LCD nerozchodil tak jsem šel do jiného.
Možná tam budou ještě nějaké příkazy navíc.

Kód: Vybrat vše

	
start0:
symbol baud=N4800

symbol seconds = b0
symbol mins = b1
symbol hour = b2
symbol day = b3
symbol date = b4
symbol month = b5
symbol year = b6
symbol control = b7

	; naprogramování času, datumu
	
	i2cslave %11010000, i2cslow, i2cbyte
	let day     = $14	; 03 Note all BCD format
	let year    = $15	; 03 Note all BCD format
	let month   = $02	; 12 Note all BCD format
	let date    = $14	; 25 Note all BCD format
	let hour    = $19	; 11 Note all BCD format
	let mins    = $50	; 59 Note all BCD format
	let seconds = $10	; 00 Note all BCD format
 	
	; writei2c 14, ($0) ' DS3231 turn on $0 1hz pin3, turn off $4
	; writei2c 0,(seconds,mins,hour,day,date,month,year,control)

	; načtení času 

    	readi2c 0,(seconds,mins,hour)

	if b0>10 then gosub s10
	if b0>19 then gosub s20
	if b0>29 then gosub s30
	if b0>39 then gosub s40
	if b0>49 then gosub s50
	
	if b1>10 then gosub m10
	if b1>19 then gosub m20
	if b1>29 then gosub m30
	if b1>39 then gosub m40
	if b1>49 then gosub m50
	
	if b2>10 then gosub h10
	if b2>19 then gosub h20
	

serout c.4, baud, (254,128) 
serout c.4, baud, ("CAS")
serout c.4, baud, (254,134) 
serout c.4, baud, (":")
serout c.4, baud, (254,137) 
serout c.4, baud, (":")
if b2<10 then serout c.4, baud, (254,132) serout c.4, baud, ("0",#b2)endif
if b2>9 then serout c.4, baud, (254,132) serout c.4, baud, (#b2)endif
if b1<10 then serout c.4, baud, (254,135) serout c.4, baud, ("0",#b1)endif
if b1>9 then serout c.4, baud, (254,135) serout c.4, baud, (#b1)endif
if b0<10 then serout c.4, baud, (254,138) serout c.4, baud, ("0",#b0)endif
if b0>9 then serout c.4, baud, (254,138) serout c.4, baud, (#b0)endif

   serout c.4, baud, (254,192)
if b9<10 then serout c.4, baud, ("0")endif 
if b9<100 then serout c.4, baud,("0")endif 
serout c.4, baud, (#b9)
serout c.4, baud, (254,212)
if b8<10 then serout c.4, baud, ("0")endif 
if b8<100 then serout c.4, baud,("0")endif 
serout c.4, baud, (#b8)

goto start0
	
s10: b0=b0-6
	return
s20: b0=b0-6
	return
s30: b0=b0-6
	return
s40: b0=b0-6
	return
s50: b0=b0-6
	return
m10: b1=b1-6
	return
m20: b1=b1-6
	return
m30: b1=b1-6
	return
m40: b1=b1-6
	return
m50: b1=b1-6
	return
h10: b2=b2-6
	return
h20: b2=b2-6
	return
	
	
start1:

	readadc c.0,b8
   	readadc b.5,b9 
   	
goto start1
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Display a RTC obvod

Příspěvek od AlesH »

Pro Petra: Řekl bych, že Ti program funguje dobře a také zapojení bude OK. Je skoro jisté, že RTC obvod vrací hodnoty v BCD kódu, kdy každé 4 bity reprezentují jedno (dekadické) číslo. Proto to počítá do 9, pak to skočí na 16 (což je hexa 0x10) atd. Pro další zpracování budeš muset ten načtený BCD kód převést na dekadický standard pomocí PICAXE příkazu BCDTOBIN. Příklad použití je v ukázkovém programu na https://solarbotics.com/download.php?file=1841 .

Stačí tedy převést ty hodnoty pomocí BCDTOBIN a máš hotové (a funkční) čtení dat z RTC.

P.S.: Teď koukám, že BCDTOBIN zřejmě umí jen PICAXE řady X1 a X2. Pokud máš jiný typ PICAXE, tak to budeš muset převést jinak. Například jako na http://www.picaxeforum.co.uk/showthread ... to-decimal
jova
Příspěvky: 362
Registrován: 16 pro 2013, 11:40

Re: Display a RTC obvod

Příspěvek od jova »

AlesH píše:...Je skoro jisté, že RTC obvod vrací hodnoty v BCD kódu, kdy každé 4 bity reprezentují jedno (dekadické) číslo. Proto to počítá do 9, pak to skočí na 16 (což je hexa 0x10) atd. ...
Proto je ten můj program tak "složitý" ;)
jova
Příspěvky: 362
Registrován: 16 pro 2013, 11:40

Re: Display a RTC obvod

Příspěvek od jova »

TO: Petr087 Už jsi rozchodil ten převodník LCD?
Petr087

Re: Display a RTC obvod

Příspěvek od Petr087 »

Cau, dneska si už stím hraju asi 4 hodiny a nic se mi nepovedlo. Dispaly by měl mít adresu 0x27
Když ho dám pod napětí a nahraju program tak tam furt svití viz obrázek. Mohl by jste mě někdo na vést jak dál.
Přílohy
IMAG0090.jpg
AlesH
Příspěvky: 323
Registrován: 25 úno 2013, 09:18

Re: Display a RTC obvod

Příspěvek od AlesH »

Ahoj. Ten obrázek toho moc neřekne. Popiš sem svoje zapojení a dej sem i ten program se kterým to zkoušíš (i pro jaké je to PICAXE). Jinak Ti nedokážu poradit (snad jen že jako test můžeš zkusit I2C adresu 0x4E, protože PICAXE někdy používá adresu "shifnutou" o jeden bit vlevo oproti adrese uváděné pro Arduino).

P.S.: informace (anglicky) o spolupráci PICAXE s Tvým I2C LCD modulem jsem našel např. na
http://letsmakerobots.com/content/drive ... 74-and-i2c
http://www.picaxeforum.co.uk/showthread ... play/page2
(nebo http://www.picaxeforum.co.uk/archive/in ... 23471.html )
Petr087

Re: Display a RTC obvod

Příspěvek od Petr087 »

Schéma zapojení je v příloze. A program který používam není ani program. Já to asi totiž nechápu.

;Display
hi2csetup i2cmaster,0x4E,i2cslow,i2cbyte
start:
pause 2000
hi2cout 3,(19,3)
goto start
Přílohy
e-plan LCD RTC.png
Odpovědět