picaxe 28x1, glcd K107,RTC,eeprom 24LC16B

Odpovědět
johan
Příspěvky: 31
Registrován: 20 bře 2013, 00:19
Bydliště: Ostrava

picaxe 28x1, glcd K107,RTC,eeprom 24LC16B

Příspěvek od johan »

Zdravím všechny na novém fóru

Dělam hodiny na glcd displeji 128x64.
Prvni řadek- uprostřed - hod.min.sek.oddělené dvojtečkami
druhý řadek volny
třetí řadek- uprostřed - dny měs.roky (roky se znaky 20) oddělené pomlčkami
čtvrty rádek volný
pátý rádek- uprostřed - dny v týdnu v písmeném formátu (Pondeli.Utery,Streda..etc)
Používám znakovou sadu 8x8 pixelů
Znaky jsem zapsal do int.eeprom (256 bajtů) v mcu a zužitkoval jsem ji kromě 8.bajtů,úplně celou.(znaky 0-9, děleno, pomlčka, písmena pro dny v týdnu.)
Interní rezonátor v mcu 4Mhz nebo 8Mhz je vzhledem k délce programu a načítání proměnných nedostačující,proto jsem zvolol ext.krystal 16Mhz a vše pracuje OK.

Vzhledem k tomu, že int eeprom je malá zkusil jsem na sběrnici ICC připojit i ext.eeprom a do ní dát celou základní ASCII tabulku.
Ve 24LC16B mi zabrala 3.z 8.bloků (stránek)
Všechno funguje při taktovacích freqencích 4Mhz a 8Mhz OK, ale při 16Mhz s ext.kystalem, mi to všechny znaky které se mají zobrazit "vykostičkuje"...?!

Nevíte čím to může být?

Díky za radu
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: picaxe 28x1, glcd K107,RTC,eeprom 24LC16B

Příspěvek od jrt »

Vítejte!
hi2csetup
Mode is the keyword i2cfast (400kHz) or i2cslow (100kHz). Note: that these keywords must change to i2cfast_8, i2cslow_8 at 8MHz, etc.
Jestli tomu dobře rozumím, musíte příkazem hi2csetup nastavit nejen režim slow nebo fast, ale i použitou taktovací frekvenci - tedy v tomto případě nejspíš i2cfast_16.
A kolega mi napověděl, že pro vyšší komunikační rychlosti I2C je dobré zmenšit hodnotu pull-up rezistorů ze 4k7 na 2k2.
jrt
johan
Příspěvky: 31
Registrován: 20 bře 2013, 00:19
Bydliště: Ostrava

Re: picaxe 28x1, glcd K107,RTC,eeprom 24LC16B

Příspěvek od johan »

Moc díky, už to jdu vyzkoušet :)
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: picaxe 28x1, glcd K107,RTC,eeprom 24LC16B

Příspěvek od jrt »

Tak dejte vědět, kde byl problém, ať nemusíme prošlapávat slepé uličky každý sám.
jrt
johan
Příspěvky: 31
Registrován: 20 bře 2013, 00:19
Bydliště: Ostrava

Re: picaxe 28x1, glcd K107,RTC,eeprom 24LC16B

Příspěvek od johan »

Ahoj
Zjistil že ten problém dělá jen ČTENÍ z (jednotlivých bloků) ext.eeprom.

Takže jsem to zapsal tak jak jste mi poradili:

Kód: Vybrat vše

PutMap:
   i2cslave %10100000, i2cfast_16, i2cbyte  'bude číst jen z nulté stránky (bloku) ext.eeprom
kod.....


PutMap1:
   i2cslave %10100010, i2cfast_16, i2cbyte   'bude číst jen z první stránky (bloku) ext.eeprom
kod.....


PutMap2:
   i2cslave %10100100, i2cfast_16, i2cbyte 'bude číst jen z druhé stránky (bloku) ext.eeprom
kod......
Pro ZÁPIS jsem to nechal tak jak to bylo,čili:

Kód: Vybrat vše

WriteToI2C:
 i2cslave %10100000, i2cfast, i2cbyte  'Zápis do EEPROM  0.stránky (bloku)

 writei2c $00,(0,0,0,0,0,0,0,0)       'mezera
 writei2c $08,(0,0,6,95,6,0,0,0)      '!
 ............atd................
Ted to frčí.....no radost pohledět... :D ...samozřejmě bez chybičky.
Ty pull up odpory jsem nechal beze změny....

Ještě jednou moc díky za pomoc
Odpovědět