Fórum témák
» Több friss téma |
Elég nehéz ezt így olvasni. A két makró közötti várakozás elméletileg egy másodperc. Azt mennyinek méri az analizátor?
Ha jót nézek akkor 32ms.
Szerintem feladom és guberálok egy 16F690-et, az idáig nem hagyott cserben.
Bocsánat, rosszat néztem, az adat küldés és az olvasás között 1,3s van
Leltem egy 16F690-et, módosítom arra a programot és ezzel még küzdök egy pár napot.
Ez igen érdekes. Kezdődjön így a program (legyen ott az osctune beállítása is), hátha el van hangolva a belső órajel:
Nincs feladás, a műsornak mennie kell!
Megy, csak én holnap 7re már komáromban kell hogy legyek, ez a homeoffice nagyon fárasztó, inkább dolgozok.
Majd jelezd hogy mire jutottál, kíváncsi vagyok, hol siklik el a dolog.
Mindenképp jelentkezem.
Köszönöm a kitartó segítségedet. Jó pihit.
Közben eszembe jutott egy másik hibalehetőség is. Megeshet, hogy a túl sűrű (15.6 kHz) Timer0 megszakítás rontja el az időzítéseket. Mellékletben egy olyan változat, ahol a megszakítások tiltva vannak a 1-Wire kommunikáció idejére.
Sajnos ez sem nyert. Csak reset condition üzenetek vannak.
Az analizátor szerinti Reset az, ami minimum 480 µs ideig tart, ez a protokoll leírásában is benne van. A program szerint van egy Reset (kb. 600 ms), majd két bájt parancs, 0xCC és 0x44. Ez nálad mennyi ideig tart (lásd melléklet)?
Ha két adatcsomagot is találsz, akkor a rövidebb érdekel. Ez veszi rá a szenzort arra, hogy mérjen egyet.
Bocsi itt vagyok csak épp az angol tudást szeretnék a fejembe verni.
Szóval most már nem látok mást csak a resetet. Megpróbálom a régebben küldött file-t fordítani és megnézem úgy.
Egy fényképet küldj az analizátoros mérésről, olyat, mint az előző hozzászólásomban. Az RC5-ös lábat fel tudod szabadítani? Azzal (PWM) pontosan lehetne ellenőrizni, milyen órajellel pörög a kontroller.
A C5 még szabad.
Mellékelve egy kép A hozzászólás módosítva: Szept 29, 2020
A mintavételezési frekvenciát állítsd 16 MHz-re az analizátorban, úgy jóval pontosabb. Mellékletben egy olyan porgramváltozat, ahol az RC5-ös láb PWM kimenetként van használva. Elvileg 4 kHz-es frekvenciája van. Mérve is annyi?
A timer oda pittyeg, a flow szerint 156xxHz-en kell lenni. Most megnéztem és 10-es osztóval pontosan kijön.
Nagyítva.
A hozzászólás módosítva: Szept 29, 2020
Most tettem egy próbát, ha lekötöm a felhúzás, megfelelő parancsok közlekednek.
A 100nF kondit kivettem és megjavúlt. Elnézést a kellemetlenségért, éreztem hogy én vagyok a ludas.
Hol volt a kondenzátor? Csak nem az adatvonal és a GND között?
Így már érthető a hiba. Elnézést, nem voltam egyértelmű. Vcc és GND közé a kondenzátort. Már kezdtem én is tépkedni a hajam.
Lehet hogy a tépkedéssel jobban jártam volna én is, most ősz lettem 40éves koromra a tegnap este alatt.
Mégegyszer köszönöm és bocsánat hogy raboltam az idődet.
Azért megjegyzem, hogy az int végű programmal fut le illetve a PWM-el, a többinél csak hibát hoz.
Mindkettőben tiltva vannak a megszakítások, amíg megy a beszélgetés a hőmérő IC-vel. A protokoll szigorúan időalapú, a sok megszakítást hibát (késleltetést) visz a rendszerbe. Két-három lehetőséged van. Vagy sokkal ritkábbra veszed a megszakítást és abba csak az abszolút minimum programkódot írod vagy nem használsz megszakítást, esetleg a fenti eset, miszerint addig tiltod a megszakításokat, amíg megy a kommunikáció.
Ez az alapvető baj a 1-Wre protokollal, figyelni kell nagyon a programra. Mi van az RC5-ös lábon és mit kellene csinálni a lábbal? A program szerint eddig csak villogtatás van ott.
Hát bajos lesz, a C5 lábbal nincs baj, az csak egy alapvető támpont hogy megy e a program.
Viszont a HMI-vel való kommunikáció már lényeges. Viszont ha a 1-wire használatot korlátozom pl 30s-re és a hibás olvasást kidobom és újjat kérek, akkor már jó is lehet.
Amúgy ha ennyire bajos, áttérek az lm9700-ra, ahhoz csak ADC vonal kell és nincs vele fele ennyi bajság. A DS-t hagyom az ESP-nek, az boldogul vele, amennyit kell neki tudni.
|
Bejelentkezés
Hirdetés |