VB6.0 a 24C16

Ing. Roman Kolbábek rkolbabek
Středa Březen 17 14:55:14 CET 2004


Pekny den

> Nesmite zapisovat vsechno najednou. U tech EEPROMek je povolen blokovy zapis
> a zrovna ta 24C16 muze mit blok o velikosti 16 byte (Atmel). To znamena,
> zapsat 16 byte, 10ms pockat a az potom zapsat dalsich 16 byte. Pocatecni
> adresa kazdeho bloku musi zacinat vzdy modulo 16 (posledni byte nesmi
> prelezt do dalsiho bloku).

Ja sice zapisuji vse zaraz, ale po jednom byte. Metodou BYTE WRITE. Je ale
pravda, ze teprve ted jsem zjistil, ze mezi jednotlivymi zapisy je
nutne udelat cekaci stav a kamarad mi poradil tento cekaci stav jeste
o kousek prodlouzit. Metodou PAGE WRITE BYTE to zapisovat nechci. Sice
by to asi slo mnohem rychleji (cekaci doba by byla jen 1x za 16
bytes), ale kazda ta pamet muze mit pin MODE zapojen jinak a pak by s
tim mohl byl problem. Navic ta aplikace neni nijak kriticka na cas. Je
skoro jedno, jestli se to bude zapisovat 2 sekundy nebo 20 sekund.

Dik za radu, i tohle mi rozsirilo obzor.

Roman Kolbabek


> Jirka

> ----- Original Message -----
> From: "Ing. Roman Kolbábek" <rkolbabek@volny.cz>
> To: <hw-news@list.gin.cz>
> Sent: Friday, January 10, 2003 7:02 AM
> Subject: VB6.0 a 24C16


>>
>> Preji pekny den. Jsem tady uplne novy, tak mne prosim hned nehonte
>> prohledavat archiv. Koukal jsem do nej, ale nenasel jsem tam zadnou
>> moznost neco vyhledat.
>>
>> Pomoci rutin (prepsanych do Visual Basicu 6.0) z knihy pana Burkharda
>> Kainka z kapitoly 12 a pomoci interface popsaneho ve stejne knize
>> pripojeneho do COM portu bych potreboval nacist obsah cele pameti typu
>> 24C16 (24LC16,...) do jednorozmerneho pole a nasledne zase celou pamet
>> zapsat.
>>
>> Pro cteni pouzivam SEQUENTIAL RANDOM READ. Poslu start, pak cislo 160,
>> pak 0, pak restart, pak cislo 161 a potom 2048x nacitam a nahazuju
>> ACK. Naposledy misto ACK dam NOACK a STOP. Pote co jsem objevil v
>> knize chybu a opravil rutinu start (ktera pred opravou
>> "nerestartovala") se mi zda, ze cteni probiha v pohode.
>>
>> Ale se zapisem mam problemy. Pro zapis chci pouzivat BYTE WRITE. Tedy
>> 2048x opakovat start, cislo 160+horni cast adresy*2, pak spodni cast
>> adresy, pak vlastni cislo ktere chci zapsat a stop.
>>
>> Pokud zapisu jen jeden byte, tak je to v pohode. Pokud ale zapisuju
>> vsech 2048 zaraz, tak se zapise jen kazdy treti. Jako by nez se ta
>> pamet vzpamatuje, tak se dva zapisy promeskaly (priznam se, ze
>> nekontroluji pri kazdem predani dat jestli pamet hlasi ACK).
>> Proto jsem mezi zapisy dal DELAY 10 a uz uz se mi zdalo,
>> ze je vse v pohode, ale programovou verifikaci
>> a nasledne i kontrolou vypisu obsahu jsem zjistil, ze proste sem tam
>> to zapise blbost.
>>
>> Napadly mne dve moznosti:
>> 1. Kontrolovat jestli predana data pamet potvrdi ACKEM a pokud
>> ne, tak to opakovat. To bych asi musel nastavit stop a zacit znovu
>> nebo se pletu? A toto zkusit rekneme maximalne 3x a pak nahlasit chybu.
>> 2. Hned po zapisu byte precist a kontrolovat shodu. (Bude stacit hned
>> po zapisu udelat CURRENT ADDRESS READ nebo uz budu cist nasledujici
>> byte a musel bych tedy delam RANDOM ADRESS READ?) A pokud shoda
>> nebude, zkusit zapsat znovu a to cele opakovat rekneme maximalne 3x a
>> pak nahlasit chybu.
>>
>> Ma to logiku a je to, ze to obcas zapise blbost normalni nebo mam
>> spise zkouset si pohrat se "synchronizaci" signalu, tedy s rutinami z
>> te knihy? Nikdy jsem nic takoveho nedelal a dost se v tom topim.
>>
>> Zkuste mi poradit. Treba uz to mate nekdo dokonce vyresene.
>>
>> Je to pro specialni program. Cte a zapisuje vymenne pameti modelarskych
>> vysilacu Futaba, ve kterych je prave obvod typu 24C16 + nekdy zadny,
>> nekdy jeden a nekdy oba zdvihaci odpory na plosnacku. V programu se i
>> s daty delaji ruzne upravy a proto mi moc nepomuze rada, abych pouzil
>> nejaky odladeny programator. Navic druhy typ pameti (o velikosti 64kb)
>> obsahuje specialni zakazkovy mikroprocesor a komunikuje velmi podobne jako
>> 24C16, ale urcite by to zadny programator neumel. (DEVICE SELECT CODE
>> obsahuje 0 0 A12 A11 A10 A9 A8 R/W)
>>
>> Mimochodem kdyz uz jsem to nakousl. S tou vetsi pameti mam taky
>> problem, ale ten jsem zatim odlozil, dokud to nebude spolehlive
>> pracovat alespon s 24C16. Konkretne to, ze se mi povede zcela
>> pravidelne jen kazde druhe cteni metodou SEQUENTIAL RANDOM READ.
>> Proste jednou celou pamet prectu, pak zas celou neprectu, pak zas
>> celou prectu,.... Zapis jsem radej ani nezkousel.
>>
>> Roman Kolbabek
>>
>> nepomuze rada typu
>>





-- 
Měj se,
 Kolbiš
 rkolbabek@volny.cz




Další informace o konferenci Hw-list