Fórum témák
» Több friss téma |
WinAVR / GCC alapszabályok: 1. Ha ISR-ben használsz globális változót, az legyen "volatile" 2. Soha ne érjen véget a main() függvény 3. UART/USART hibák 99,9% a rossz órajel miatt van 4. Kerüld el a -O0 optimalizációs beállítást minden áron 5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás 6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et Bővebben: AVR-libc FAQ
VCC, VL, OE helyükön, bekötve? Ha mindhátomra 5V-ot kötsz akkor se jó?
Én most maratnám a saját verziómat amit hetek óta tervezek, sajna az előhívás nem lett jó, majd legközelebb, azaz most. Remélem ez már jó lesz. TXB0108-al építem meg, elnézve az adatlapot teljesen kompítíbilis a MAX3002-vel.
Ott van a kapcsoláson az ISP reset lábán az AVRen a 470 ohmos felhúzó, a max kimenetén meg már GND van míg az AVR lábán +5V szóval még ez sem jön át.
Ha ezzel az MK2vel programozol akkor a cél AVR reset lábát mekkora ellenállással szoktad tápra húzni?
Én 1Kval szoktam. A max3002 nem tudta resetelni a cél AVRert emiatt. kivettem az ellenállást és láss csodát... működik
Szóval adatlapból megítélve a kimeneti logikai szint konverter kimenetén min 4.6kohm max 8.3kohm ellenállás van. Ha a cél AVR lábára teszek egy 1K felhúzó ellenállásat akkor a max3002 belsejébe és ez az ellenállás egy fesz osztót alkot mikor a max3002 GNDre akarja húzni a cél AVR reset lábát. Ez volt a baj. Remélem nem lesz több problémám vele.
A MAX3002-ben a logikai konverter kimenetén az az ellenállás szerintem eléggé lerontja a használhatóságot. Tudom azért van ott az ellenállás mert 2 irányú jel átvitelére képes az ic. Ha ezt hamarabb tudom akkor tettem volna legalább a reset kimenetére egy komplementer tranzisztoros áramerősítő fokozatot.
VGA téma: Szerintem nem annyira rossz a helyzet. Amin agyaltam szerintem megvalósítható. -Kell egy órajel, pl kvvarc generátor. -Egymás után kell kötni egy pár bináris számláló ic-t a memória címzéséhez. -Kell 3db SRAM eltárolni a pixelek értékeit, külön színek szerint az egyszerre léptetés miatt. Memória méret felbontás szerint. -Kell 3db 8bites DAC ic ami képes ekkora sebességre, vagy használni a memória kimenetét R/2R létrával Így az AVRnek csak a változó pixeleket kellene módosítani a memóriába, viszont addig míg írja a memóriát nem lenne kép. Nem tudom ez mennyire lenne gyors? Mármint FPS szempontjából? Eszerint az FPS és a módosítani kívánt pixelek fordítottan arányosak egymással. - A monitor honnan tudja hogy milyen felbontásba és frissítési frekivel kell mennie? A H/V szinkron jel idejéből?
Az ADMUX regiszterei: REFS0 REFS1 0 bitbe vannak? Csak kérdezem hátha ez a gond, mivel élég ritka hogy az AREF láb is +5Von van. Egyébként 3 eset van referencia használatra ebből kettőhöz 100nF kondenzátor kell az AREF-re.
Az 1K ertelmetlen es brutalisan kis ertek.
Akciós az AVR ONE! debugger.
600USD helyett 200USD. Ki tudja meddig lesz kapható a jtagice3 árán. Atmel Store
REFS0 1-re van állítva, REFS1 pedig 0-ra. Avcc és Agnd között van kondenzátor.
Amugy hany csatornat hasznalsz ki a MAX3002-nel? 4et?
Igen, 4-et használok, de lesz egy 5. is ami az 1MHz-es "visszaállító" órajel kimenete lesz.
A 4 kimenet közvetlenül kapcsolódik az egyetlen, 6-pólusú kimenetre. Az XCK átkapcsolását egyelőre jumperrel oldom meg a "nagyfesz" oldalon(TPI és PDI közötti váltás). Eredetileg úgy terveztem hogy azt is az AVR kapcsolja egy 74HC126-al, de az IC túl nagy, nem fért el...
74LVC1G125-bol ket darab is tul sok helyet vinne?
AVR-ben még nagyon kezdő vagyok, ezért építettem meg ezt. Hátha szükségem lesz rá.
Ha valóban 4-8kOhm körüli értékek vannak a MAX kimenetén akkor megfontolandó, hogy mennyire
lesz hasznos, én hüle meg azt képzeltem hogy a programozólábra kapcsolt LED-eket is elviszi. De most nézem az adatlapot, és ez teljesen mást ír! A 20Mbps IC-khez(a MAX3002 is ilyen) maximum 50Ohm kimenő impedanciát és minimum 20mA áramot ír. Ez távol áll a tiédtől, ettől függetlenül az 1kOhm RESET tényleg kevés. Ha a VL-en nem kap referenciát akkor a VL oldalon 4-8kOhm lehúzó ellenállás lesz. TXB0108: folyamatosan 50mA-t tud kimenetenként, táplábanként 100mA-t.
Csak a kapcsolásod szerint nem volt. Arra gondoltam azért resetelt valamiért a proci
Lehet hogy szükséged lesz rá, de szerintem nem lesz nagyon sokszor használva. Aztán ki tudja...
Szerintem nem csak akkor van ott az a lehúzó ellenállás mikor Vl nem kap refet. De tegyük fel hogy igen, akkor hogy oldja meg az ic a 2 irányú kommunikációt? Sehogy. Ha Vl kimeneten nem lenne ellenállás hanem simán az 1 csatorna bufferének a kimenete lenne rákötve akkor tegyük fel hogy logikai H szint jön rajta, és te logikai L-t adsz neki a Vl > Vcc szint konvertáláshoz. Zárlat, füst -> hajtépés
Javaslom inkabb a 16. oldal 5-os abrat. De valoban, nekem is ugy tunik, hogy 6kOhm a statikus kimeneti impedancia.
Az ellenállás ott van, sz IC-n belül. Csatornánként kettő is! Tegyük fel hogy nincs lehúzó, a végek szabadon lógnak és teszem azt, HI állapotban. Ha az egyik(bármelyik) oldalon jön egy AVR ami lehúzza egy nagyobb(~10k) ellenálláson keresztül akkor feszültségesés lesz az ő oldalán. Ez a feszültségesés átjut a másik oldalra, ami a levegőben lóg, emiatt kisebb feszt fog adni, ez az erősítőn visszajut az AVR oldalára, de az AVR továbbra is húzza le... és így tovább míg teljesen nullára nem húzza, a folyamat pár tíz nanosec alatt lejátszódik. Most tegyük fel hogy van egy kisebb(~100Ohm) ellenállás ami fölhúzza a másik oldalon. Az AVR most is feszültségesést generál az ő oldalán, ez megjelenik a másikon is, de az ellenállás nem hagyja magát, és áram folyik rajta addig amíg az AVR el nem engedi.
Úgy lesz kétirányú a kommunikáció hogy a kettő közül az erősebb kutya b***ik, azaz amelyik nagyobb áramot képes tolni a másik ellenáben, ő lesz a nyertes, a másik oldal pedig részben vagy teljesen követni fogja az erősebb oldal akaratát. Ha zárlat van a kimeneten akkor üldözöttből üldöző válik, mert az AVR nem képes 50mA-t leadni a kimenetein ezért ő lesz a gyengébb. Az AVRISP-mkII esetében ha zárlat adódna akkor a programozó logika azonnal leállítja a programozást és letiltja a kimeneteket.
Hat a MAX3002 nem igazan igy mukodik a leirasa szerint.
Túl szép lenne az én megközelítésem szerint? Homályosíts fel, még mielőtt valami hülyeséget csinálnék...
Szoval. Az adatlap 16. oldalat nezd meg. Ott van az 5. abra. A haromszogek komparatorok, amelyeknek a kimeno fokozatai szintet is illesztenek. A kimenetukon 6kOhm van. Majd ott van a 6. abra, ami segit ertelmezni a mukodest. TFH alacsony szinten van minden kimenet es a tuloldal szabadon log(vagy nagy impedancia van rajta) es elkezded a meghajtott oldalon novelni a feszultseget szep lassan(vizszintes tengely). Ekkor a labat szembehajtod a 6kOhm-on kereszul bekotott komparatorral es igy elkezd noni a bemeno aram, ami konkretan Vbe/6kOhm lesz. Majd ha elerte a bemeneten a billenesi hatarerteket, akkor hirtelen atbillen a meghajtott labon levo komparator, amitol atbillen a tuloldal feszultsege a tapra es igy a vissza iranyba is atbillen a komparator. Ekkor mar a 6kOhmon, amit szembe hajtottal, egyik oldalan a tap lesz, masik oldalan pedig a te meghajtasod, igy az aram iranya megfordul es a -(Vcc-Vbe)/6k aram folyik, amig el nem eri a tapot a meghajtas.
Ez az alap mukodes. A gyorsabb mukodes erdekeben mindket oldalon van 1-1 felso es also oldali eldetektor, amelyek az adott billenesi iranynak megfelelo FET-et mukodesbe hozzak egy rovid ideig, hogy gyorsitsak az atbillenest (mivel kapacitiv terheles is van a kimeneten). Igy az atbillenes idejere a dinamikus impedancia 70 Ohm korul van. De statikus allapotban 6Kohm.
Én meg már kezdtem azt hinni hogy a FET-ek hajtják a kimeneteket.
Most nézem a TXB0108-at, pont ugyanaz a kapcsolás, csak 4kOhm-al. Akkor LED-ekkel terhelt programozólábak esetén meg vagyok lőve?
Meg. Szerintem inkabb valami egyiranyu kene neked. Mondjuk minden iranyba 4 csatornaval.
Hello!
Itt a kép, remélem kiderül hogy jó, mert akkor legalább nehéz lesz megfejteni a baj forrását Köszi a segítséget!
Minden irányba 4 csatornás cucc, mit értesz ez alatt?
Korábban 74HC245-el terveztem, legutóbb a MAX3002/TXB0108 miatt egy 74HCT126-os tervét tettem félre. Ez utóbbi úgy működött(volna) hogy a kimenetet egy ilyen IC buffereli 4 csatornán(MOSI, TPI-PDI-DATA/Tx, SCK+TPI-CLK, RESET+PDI-CLK), a bemenet(MISO+TPI-PDI-DATA/Rx) pedig klasszikus egytranzisztoros illesztő konvertálná, pont olyat amit a gyári STK500-ban használnak. A buffer IC kimeneteit is a programozó kapcsolgatja 4 szálon, így automatán vált a módok között(ISP,TPI,PDI). Sajnos a LUFA kódját ezzel nagyon át kellett volna írni, míg a MAX3002/TXB0108 IC-kel szerelt esetében érintetlenül hagyhatom. Most arra gondolok első körben hogy a 8 csatornát párosával használnám, így az ellenállás felére csökken. Egy másik kísérletem a 74HCT126-al lesz csak egy kicsit más felállásban, mivel az IC 2V-os tápról is megy.
Nos nem látni tökéletesen a képen, de gyanúsak azok a bumszlik itt-ott. Tehát szerintem tényleg valami érintkezési gond lehet.
A feladatod a következő: Minden érintkezést néz át, de ne a NYÁK alján, hanem a tetején, tehát ott ahol az alkatrész lábak vannak. Így biztos lehetsz abban, hogy van érintkezés köztük. Ha az alján csipogsz az ón darabokon, akkor még lehet, hogy az alkatrész lábakkal gond van. Vedd magad elé a kapcs rajz felülnézetét EAGLE-ben és akkor ki lehet csipogni max 10 perc alatt (tudom, mert pár embernek segítettem megtalálni ilyen hibát). Sok sikert!
Most nem vagyok ugy, hogy utana jarjak, de hetvegen mindenkeppen vegigjarom neked a temat. Ha az i/o portonkent ketranyu kommunikacio mindenkeppen szukseges, akkor kezdetnek szerintem nezd meg, hogy a (ket ellenalas+fet)/csatorna megoldashoz talalni-e megfelelo fet-et, mert szerintem az a legoptimalisabb megoldas szamodra igy elso korben. (Gondolom ismered a kapcsolastechnikat). Ha nem, akkor 1 nap turelmedet kerem.
Délelőtt meg is építettem a programozómat(lásd: képek), de kipróbálni és fényképezni csak most sikerült.
Házi készítésű panel, saját tervezés! Pár hete még én sem hittem hogy TSSOP maratás is menni fog... A kéznél lévő TXB0108-at ültettem bele, a MAX3002-vel lábkompatíbilis. Sajna ahogy várható volt, első próbálkozásra programozni nem lehetett vele. Mérni elég nehéz az ISP jeleket, ezért kicsit trükköztem, és írtam saját programot az AT90USB162-re. A program villogtatja a LED-et és ezzel párhuzamosan valamelyik kimenőportot is birizgálja. 3 másodperc fent és ugyanennyi lent hogy lehessen mérni. Sajnos elég hektikus a dolog, mert hiába van 5V-os referencia az IC-n és hiába kapja meg az AVR-től az 5V-os jelet, néha csak 2.4-3.0V körüli értéket ad ki a kimeneten. De inkább az bosszant hogy csak néha! Van hogy egyik ütemben 5V, a másikban 3V úgy hogy nincs terhelés. A maradék 3 csatornát az AVR oldalán 5V-ra kötöttem, azok másik oldalára rámérve szintén 5V van. Áramot is mértem, ami 200mA-os méréshatárnál 1.1mA ami 4.5kOhm ellenállásnak felel(ne) meg. DE: 20mA-os méréshatárnál a multiméter kiakad, és ezt talán megmagyarázza egy LED-el végzett kísérlet. Szintén közvetlenül, áramkorlátozó ellenállás nélkül rákötöttem a kimenetre egy piros LED-et. A felvillanáskor az első kb. 100ms idő alatt a LED fényesen világított, majd a maradék 2.9 másodpercre halványabb lett. Azaz kb. 100ms időtartamig a FET-ek dolgoznak, a többit már az ellenállás végzi. Ez megmagyarázza hogy az 1kOhm-os felhúzó ellenállás miért kevés a RESET lábra, ugyanakkor jelzi hogy a programozólábakra(MOSI,MISO,SCK) kötött LED-ek vagy más terhelés talán mégsem jelenthet akkora problémát, persze ha működne a programozó...
Milyen technikával csináltad a nyákot? Én a TSSOP20 footprintet vasalással gond nélkül meg tudom csinálni. Előtte fotóztam sokáig. Ez a maratóval is így van, sokáig gyors maratót használtam TN-150. Mostanában átálltam a sósav+hidrogén-peroxid kombóra.
|
Bejelentkezés
Hirdetés |