[elektro] CD4017-el ULN2003 meghajtása

Szilágyi Péter sysypet at hdsnet.hu
Wed Jul 20 01:52:40 CEST 2011


Van még neki egy x4 PLL is a 8MHz belső oszcillátor mellett.
Így lesz 8mips. (32MHz/4) Nem lehet kvarcot beletenni, mert nincs már szabad
lába. A nyákok le vannak gyártva.

sysypet

-----Original Message-----
From: elektro-bounces at tesla.hu [mailto:elektro-bounces at tesla.hu] On Behalf
Of Skandar Graun
Sent: Tuesday, July 19, 2011 10:10 PM
To: elektro at tesla.hu
Subject: Re: [elektro] CD4017-el ULN2003 meghajtása

2 mips
A belső oszci valóban 8 mega, szemben a 648 4 megájával, de 4 órajel/
művelet van...
De a 648 szerintem már tudja a 20 MHz-es kvarcot is.
A bitminta kivitele tud roppant érdekes lenni. Azt a legcélszerűbb
assemblerben írni.

potyo <potyo.ada at gmail.com> írta (2011. július 19. 21:40):
> 2011. július 19. 20:44 Szilágyi Péter írta, <sysypet at hdsnet.hu>:
>
>> Első olvasatra kb ugyanaz a terhelés az MCU-nak, mint az én
megoldásomban.
>> A kijelzőt kénytelen voltam megszakításosan szkennelni, mert különben 
>> sztohasztikusan villogott (GIE tiltása) és a megrendelő visszaküldte, 
>> hogy ez így szar. Most be van ágyazva a kijelző megszakításába a DS 
>> kommunikációja, így nem villog, csak már nem bírja a plusz
megszakításokat.
>> Kicsit bonyi lett a TMR0 megszakítása, mert a billentyűzetet is ez 
>> kezeli le. Most átgondolom a CCP module használatát. Nem tűnik
egyszerűbbnek.
>>
>
> Nemtudom, nekem akkoris furcsa, hogy ne tudná ezeket kielégítően kezelni.
> Esetleg valami olyan dolog van a kódban, ami valahol nagyon 
> megakasztja a kód futását, mint pl. osztás, printf, ilyesmi? Amit 
> leírtam, annak érzésem szerint simán mennie kellene még alacsonyabb
órajelen is.
>
>
>> Lehet, hogy mégiscsak HW csere lesz belőle. A 16F1827 állítólag 8mips vs.
>> 16F648 1mips.
>>
>
> Állítólag helyett van az adatlap, de valóban 8mips belső oszcillátorról.
>
>
>>
>> sysypet
>>
>> -----Original Message-----
>> From: elektro-bounces at tesla.hu [mailto:elektro-bounces at tesla.hu] On 
>> Behalf Of potyo
>> Sent: Tuesday, July 19, 2011 7:32 PM
>> To: elektro at tesla.hu
>> Subject: Re: [elektro] CD4017-el ULN2003 meghajtása
>>
>> Szerintem valami nincs ott teljesen átgondolva. Első körben pl. a 
>> kijelző multiplexelést felesleges megszakításból csinálni, ha 
>> jelenleg abból csinálod. A főprogram végtelen ciklusában elég 
>> figyelni a T0IF bitet, és amikor bebillen, akkor elvégezni, amit most 
>> ezzel kapcsolatban megszakítási rutinban csinálsz - ha ott csinálod. 
>> A kijelző biztosan nem marad le semmiről :-))
>>
>> Következő a DS18B20, aminek a kezelését szintén meg lehet csinálni a 
>> főprogramból, mivel az egyes bitek olvasásához vagy írásához elég 
>> rövid az időkeret, így azokat NOP utasításokkal kell mindenképpen 
>> megoldani, két bit olvasása/írása között viszont ha jól emlékszem, 
>> bármennyi idő eltelhet, így ez sem annyira időzítésérzékeny. Amire 
>> érzékeny, az az, ha egy bit írása/olvasása alatt jön megszakítás, de 
>> ezt meg lehet úgy oldani, hogy a bit művelet előtt tiltani, majd 
>> utána engedélyezni a GIE bitet, így a DS kezelése rendben lesz. 
>> Viszont ekkor ugye elcsúszhat a 100Hz időzítése. Ezt viszont úgy
küszöbölheted ki, ha használod a CCP modul capture módját.
>> Nevezetesen beállítod, hogy pl. feltutó élre reagáljon, és okozzon 
>> megszakítást is. Amikor a megszakításra ráfut, kiolvasod a Timer1 
>> tartalmát, kivonod belőle azt, amit a CCPR1H-CCPR1L regiszterekben 
>> találsz, és a különbség megadja, hogy mennyivel vagy a megszakítás 
>> tényleges bekövetkezése után, vagyis ezzel tudod kompenzálni a GIE 
>> bit kikapcsolása miatti ismeretlen mértékű plusz késleltetést. Itt 
>> ekkor felkonfigurálod mondjuk a Timer2-t, hogy x idő múlva okozzon 
>> megszakítást, amikor pedig az okoz megszakítást, akkor meg kiadod a
tirisztor számára a gyújtást.
>>
>> Nekem a fenti alapján bőven elégnek tűnik a 4MHz és ez a kontroller a 
>> feladatra, maximum kicsit át kell rendezni a hardvert, hogy a 100Hz 
>> az RB3 lábra menjen.
>>
>> 2011/7/19 Szilágyi Péter <sysypet at hdsnet.hu>
>>
>> > Zsolt!
>> >
>> > Meg tudja hajtani, tapasztalatból mondom.
>> > Egyébként ugye, nem akarsz mást is csináltatni ezzel az MCU-val?
>> > Nekem egy 16F648 hajt egy 3 digites kijelzőt DS18B20 hőmérővel. A
>> > TIMER0 adja a kijelző frissítéshez a 4ms megszaggatást.
>> > Már a DS18B20-at is szinkronizálnom kellett a TIMER0-val, mert elég 
>> > szigorúak az időzítések a kommunikációban.
>> > Most kitaláltam, hogy a mért hőmérséklettel arányosan egy soft PWM 
>> > jelet is generálok, ami egy tirisztoros fázishasításos szabályzót 
>> > fog
>> üzemeltetni.
>> > A 100Hz nullátmenet az INT lábon jön be és a TIMER2 fogja a 
>> > fázishasításhoz eltolni a tirisztor gyujtójelét.
>> > Ha finoman akarok fogalmazni akkor azt mondanám, hogy 4MHz órajel 
>> > mellett összetojta magát az MCU.
>> > Vagy én csinálok valamit rosszul? Van valami szofisztikáltabb 
>> > módszere ennek,hogy bírja a proci ezt a terhelést?
>> > Persze anélkül, hogy dsPIC33-ra kellene váltanom 16mips mellett. 
>> > Vagy túl nagyok az elvárásaim egy ekkora MCU-tól?
>> > Valaki mondta a nagyjaink közül, hogy merjünk nagyokat álmodni.
>> -----------------------------------------
>>          elektro[-flame|-etc]
>>
>> -----------------------------------------
>>          elektro[-flame|-etc]
>>
> -----------------------------------------
>          elektro[-flame|-etc]

-----------------------------------------
          elektro[-flame|-etc]

__________ ESET NOD32 Antivirus - Vírusdefiníciós adatbázis: 6308 (20110719)
__________

Az üzenetet az ESET NOD32 Antivirus ellenőrizte.

http://www.eset.hu





More information about the Elektro mailing list