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
Ja igen, bocs azt valahogy nem illesztette be.
Az a lényeg most hogy akármit sírok az avrbe próbáltam M8-at és M168 is használni hozzá, de bármi próbálok vele feltámasztani azt írja hogy nem találja az adatbázisban ezt a típusú chipet. Se attiny2313 se M8 se M168. Mindre azt írja hogy nem ismeri.
Szia, köszönöm neked is
Annyi kérdésem még lenne, hogy mennyire normális az hogy a pwm jelet maximumra állítva fele fényerővel világít a kijelző, mintha közvetlen az 5V-ra kötném?
Azt elfelejtettem írni hogy 4MHz-es belső oszcillátorral, 8 biten megy a pwm, ha ez számít valamit. Az órajelet próbáltam emelni, de nem láttam érdemi változást 8MHz-en sem.
Közvetlenül AVR-ről hajtod? Szerintem már említettem meg más is hogy nem kéne...
Biztos hogy maximum az a maximum? Próbáld ki pwm nélkül, simán úgy hogy a portot beállítod!
Nem közvetlen hajtom, egy BC817-es tranyón keresztül megy a földre, amit a pwm hajt. Próbáltam pwm nélkül csak simán a portot nyitni, úgy rendesen világít.
Biztos hogy maximumon megy, már ha 8 biten 255 a maximum.
A bascom kódrész így néz ki:
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 1
Amit használsz Timer-t az alapvetően 16 bites. A Waveform Generation Mode Bit Description táblázatban tudod beállítani, hogy a 16-ból mennyit akarsz használni, ha figyelmetlenül állítottad be akkor a TOP értéke nem 255 hanem több is lehet. Ha több akkor pedig nem éri el a maxot.
Átnéztem minden úgy van ahogy kellene neki de a 12V ot csak egy pillanatra adja az icre kb majdnem mielőtt kiírja hogy nem ismeri, az 5V helyett folyton ott van 2,5V majd amikor próbálkozik lesz belőle 0V utána 2,5V majd 5V és ismét 2,5V. Ez normális? 1 - 1 K lehúzót tettem.
Amikor az élesztendő ic nincs benne akkor 0V de ha benne van akkor feszültség van az 5Vos körön is programozás nélkül.
De az M8/M88/M168 as foglalatban a 4,5,11,es lábon van 5V tehát arról juthat rá vissza a felélesztendő ic-ken keresztül. OE, WR, XA0.
Bascomban programoznék egy IDE->MP3 lejátszót. A fájlkezelés hibátlanul megy már AVR-DOSt használva (a célic egy ATMEGA128, az MP3 dekóder pedig egy VS1011-es lenne). A problémám az, hogy nem sikerül sehogy sem elindítani az MP3 dekódert. Hogyan kell elkezdeni? Hogyan kell az IC-t New mode-ba állítani? Hogyan kell elkezdeni az SDI adatstreamet? Egyáltalán hogyan kell az SCI-n keresztül a dekóder regisztereit módosítani?
Némi debuggolás után rájöttem, hogy az SPIOUT parancsnál megakad a program (van config spi és spiinit is). A hardveres spi-t használnám!
Segítségeteket előre is köszönöm: Hurka
Na hát ez érdekes sajna nem tudok erre mit mondani. Én nem is használom a sorosport kimenetet,
csak a LED-eket figyelem de már volt olyan meglepetés hogy elvileg megjavította(zöld) de mégse lett jó.
Továbbra is a csatlakozásokat nézném át, azért a 17 adatvezeték nem kevés! A RESET-nél is van egy kis hibalehetőség, főleg a tranzisztoroknák ahol mindegyiknél fel/lehúzó ellenállás is kell mert a szivárgó áram a második tranzisztort kelletlenül is aktiválhatja, 1-1 darab 100nF kondenzátor sem árt a (javítandó IC) táplábaira.
Csatolom a saját tervezésemet. igaz, pár dolog lehet hogy pont nincs benne, de ez működött.
A tápellátással lesz gondod.
A hibajelenség arra utal, hogy az AVR chiped nem kapja meg a tápfeszt és/vagy az órajelet.
Az FF azt takarja, hogy a felhúzók+belső védódiódák élnek, mivel ezen keresztül táplálja meg az IC a tápvonalát...
És néha feléled, és ezért látsz nem FF jelet...
Ha 01/02/03 jönne ki a chip ID-ként, akkor az az amikor a programozórésze halt le a chipnek
Nálam a 12V és az 5 V is stabic(7812/7805) ről jön le, utána van 10-10uf elko és 100-100nf kerámia. Ezután mind két körön a BC557, 12v nál 1k lehúzó és soros 100R.
Az 5V nál a javítandó ic lábán is van 100nF. Az sch-t sajna nem tudom most megnézni, de e szerint a rajz szerint van kivitelezve. Gondolom hogy 10 helyett 100nf van az nem baj. De a két led-nél nekem úgy van hogy mind kettőn külön 330R van úgy megy gnd-re, nem egy ellenálláson.