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
Köszi az ötleteket mindenkinek, nekem ezzel tűnik menni, persze kellett fusebitdoctorozni néhányszor mert elcsesztem a próbálgatással low :0xff
high:0xde ext :0x05 A hozzászólás módosítva: Jún 23, 2020
Kedves Fórumtársak!
Van-e olyan AVR, amibe beépítettek (mondjuk) egy 8 bites R-2R DAC hálózatot, és így van 8 bites analóg kimenete? A hangsúly az ANALÓG KIMENET -en van... (nem PWM) Köszönöm szépen!
Igen, van.
Használd a parametrikus keresőt!
Köszönöm, kedves Vargham, sokkal több van, mint gondoltam.
Igen, és ezek mind új termékek, már a Microchip korszakban jelentek meg.
Azért gondold meg mielőtt belevágsz. Ezek nem hagyományos AVR-ek, Xmega féle architektúra. Periféria könyvtárakat alig fogsz találni, amit az Atmel Start összeüt, az hibakeresés gyakorlásra kiváló. Új programozó, például Mplab Snap. Nem részletezem, vicc kategória mire használni tudod Atmel Studio-ban. MC nevéhez méltó errata-k. Könnyebb és olcsóbb megtanulni egy Cortex M0+ MCU-t, mint lehetséges alternatíva.
Egyetértek. A munkahelyemen AVRről váltottunk STM32re. Nagyságrendekkel könnyebb a fejlesztés, hibakeresés. Azóta a hobbiprojektekhez is inkább azt használom.
Sziasztok!
Találtam egy kapcsolási rajzot, és szeretném megépíteni. Az egyetlen problémám, hogy sehol sem találom a rajzon "TD62034" nevű alkatrészt. Az alkatrészlistán azonban ugyanez az alkatrész "TD62304" néven szerepel. Kérdésem az lenne, hogy a két név közül melyik lesz az, ami a tényleges alkatrész jelöli, illetve mivel tudnám helyettesíteni, mert sehol nem találok ilyen néven alkatrészt. Ez egy darlington tranzisztor mező, hátha ez segít valahogyan. Előre is köszönöm a segítséget!
Az IC2 és IC3 jól láthatóan feliratozva lett TD62034 néven.
Igen, azt én is látom, és írtam is, hogy a rajzon az van, viszont az alkatrészlistában más alkatrész szerepel, és az interneten nem nagyon találok adatlapot TD62034-hez. Ugyanakkor TD62304-hez igen, és ezek szerint a rajzon téves a feliratozás. Ez lehetséges, mert bárki hibázhat. Van-e erre valami helyettesítő alkatrész, vagy a belső kapcsolási rajz alapján építsem meg az alkatrészt? Ebben az esetben a tranzisztorok milyenek legyenek, mert konkrét értékek nincsenek feltüntetve, csak az, hogy az egyik pnp, a másik kettő npn típusú.
A hozzászólás módosítva: Jún 29, 2020
A rajz alapján azt tippelném, hogy 7 db. npn tranzisztor van benne, nem pedig 1 pnp és 2 npn. Így esélyes, hogy te nem a megfelelő tok leírását találtad meg...
Idézet: „Az egyetlen problémám, hogy sehol sem találom a rajzon "TD62034" nevű alkatrészt.” Ami alapján jogosan feltételezhető, hogy nem találtad a rajzon... A hozzászólás módosítva: Jún 29, 2020
Igazatok van, de itt a gyatra fogalmazáson alapult a félreértés, úgy értettem, hogy a "rajzon szereplő alkatrészt a rajzon megtaláltam, de adatlapot nem találtam hozzá".
Ami adatlapot linkeltem, abból származik az alábbbi kép, ebből kiindulva gondoltam, hogy 1 pnp és 2 npn tranzisztor van benne. Ugyanakkor örömmel megfogadom a nálam tapasztaltabbak tanácsát, hiszen pont ezért is írtam a fórumba
Az általad mellékelt képen is "034" szerepel, valószínűleg jól elírták és lehet, hogy a kapcsolási rajzot készítő ember is ezt az adatlapot nézte. A jobb alsó sarokban szereplő dátum más mint azon az adatlapon, amit én vadásztam le az alldatasheet-ről, és azon pedig ugyan ennél az ábránál "304" szerepel.
Én azt gondolom továbbra is, hogy nem erre az alkatrészre van szükséged...
Az IC3-nál a nem használ egységek bemenetei földre vannak kötve, míg a kimenetei tápfeszültségre. A most belinkel rajz (neten keresve én is megtaláltam) szerint, ha a bemenet földön van, akkor minden tranzisztor kinyit, vagyis a kimenet földre van húzva - ami rá van kötve a tápfeszültségre -> mindössze az a kérdés, a tápegység az erősebb, vagy az IC? Ha feltételezzük, hogy a kapcsolási rajz készítője nem szándékosan tett bele egy durva hibát, kizárhatjuk a TD62304-est. Lehetséges, hogy a TD62304-nek van egy invertáló változata és az kellene neked. Vagy az is lehet, hogy mégis ez kell, de a készítő valóban elrontotta az IC3 nem használt egységeinek kezelését. A program ismeretében esetleg kideríthető lenne, de nem biztos... Esetleg be tudnád linkelni, hogy hol találtad a rajzot? Hátha ott lehet találni valami támpontot.
Persze!
Ezen az oldalon található leírás alapján szeretném utánépíteni. A rajzot eagle formátumban le is lehet tölteni
Miért nem raksz ULN-t. Az pontosan ezt teszi. Nem tudom mennyi LED-t hajtasz meg, de az ULN elég erös, (500mA) annak már elégnek kell lennie. ( ráadásul az szinte minden boltban kaphato).
A fényképeken TD62304-eseket látok, viszont az IC3-as használatlan egységeit szerintem nem kötötte földre/tápra (a kapcsolási rajzzal ellentétben).
De azt hiszem, Massawa megadta a legjobb megoldást.
Találtam itt a HESTORE-ban egy ULN2003A nevűt, erre gondoltál? ez is ugyanúgy 7 csatornás, mint ami a rajzon szerepel, ugyanannyi lába van, hasonló az egyes belső egységek rajza is. Az egyetlen rész, amit nem annyira értek, hogy ennél a nyolcas láb az "E", a kilences pedig a "COM". Azon, ami a rajzon szerepel (tekintsük el most az elnevezésbeli komplikációktól, nagy az esély, hogy csak elírás) a nyolcas láb a "GND" illetve a kilences a "Vcc. Ez esetben hogyan kéne bekötni? Az "E" és a "COM" az mit jelent? Feltételezem, hogy hasonló szerepeket tölthetnek be, mint a másik tranzisztormező hasonló számú lábai, de inkánn megkérdezem, szeretném megtudni, jól gondolom-e.
Valamint ide válaszolnék lazsinak is: Ezt hogy érted? Arra gondolsz, hogy az IC3-nak a 3-8 illetve 9-14 lábai egy kondenzátorral mondhatni össze vannak kötve? Vagy ezt az előbbit csak az én kevésbé szakértő szemem látja így?
Azért ha beütötted volna a gugliba egyböl minden világos lenne.
A 8. Láb a GND, a 9.és meg a közös kimeneti Vcc ( pozitiv feszültség, azaz a fogyaszto a Vcc meg az OUT között van.
Igazad van, bocsánat! Azért köszönöm, hogy válaszoltál, Így már minden sokkal egyértelműbb. A ledek, amiket kinéztem hozzá, darabonként 20 mA-esek, a tranzisztormező pedig 600 mA-t tud, és a legjobban leterheltre is csak 420 mA jut, szóval szerintem ezzel nem lesz gond. Azonban a ledeknek 2-2.5 V az üzemi feszültségük az adatlap szerint, ez mennyire probléma? Az ilyen AVR-es áramköröknél mekkora feszültségű tápot kell neki adni? 5V ?
Egy kicsit azért elmélyedhetnél az alapokban, ha még egy LED is problémát okoz akkor nem kellene mindjárt egy AVR-rel kisérletezned.
Az AVR kimenet és az ULN bemenete logikai szint azaz 0 és 5 V - ezzel nimcs semmi gond. A LED-knél meg az áram a mérvado nem a feszültség, számold ki mekkora áramot akarsz a LED- be vezetni (max 20 mA, de sok LED már 2 mA-nél is vakit). Minden LEDdel köss sorba egy megfelelö ellenállást a pozitiv táp meg a ULN kimenete között.
A kondenzátornak ilyen szempontból semmi jelentősége. (Egyébként a tápfeszültséget szűrné, már amennyire egy 10 pF-os kondenzátor szűrni tud... Vagyis annak a két kondenzátornak semmilyen szempontból nincs jelentősége...)
Mivel az IC nem invertáló (adatlapon le van írva, de a belső kapcsolása alapján is), így ha a bemenete földre van kötve (ahogyan a rajzon), akkor a kimenetét is földre húzza a tranzisztor (amit pirossal berajzoltam). Ekkor a tápfeszültséget az 5 db. használaton kívüli tranzisztor rövidre zárja (a pirossal berajzolt nyomvonalon).
Azért itt látni mekkora szemétdomb az internet, és mindig akadnak emberek akik a legrosszabb megoldásokat találják meg. Ez a kapcsolás is több sebböl vérzik. Nem tudom, hogy mi vezette a kapcsolás tervezöjét arra, hogy a bemenetet meg a kimenetet is összekösse a táp egyik polusával. Alapvéve ez egy komoly tervezési hiba, és akár a chip halálához is vezethet. Alapszabály, egy kimenetet soha nem szabad sem a táphoz sem a GND-hez kötni.
Az ULN-nél ezzel nem is lenne nagyon gond, mert ha annak a bemenete 0 V a kimeneten magas szint van ( open collector), de teljesen felesleges azon láboknak az összekötése. A hozzászólás módosítva: Júl 1, 2020
Sziasztok! Még decemberben elkezdtem egy robotot arduinoval amit végül feladtam mert a gépem nem tudja lefordítani a forráskódra a programot. Ezért most elkezdtem megcsinálni egy atmega8-al. Igazából majdnem minden működik rajta az sg90-es szervomotort nem sikerült vezérelni. Csak aprókat ugrik, néha nagyobbakat. Lehet hogy hibás a szervo? Több módon próbáltam. Most dolgozok de otthon teszek a tápra egy 100 nanos kondit, hátha a tápfesz nem tetszik neki. Járt már így valaki ezzel a motorral?
Belefutottam ma egy olyan kerdesbe, ami eddig valahogy mindig elkerult.
Ha kisebb project van, akkor altalaban az avra assembler-t hasznalom, ahol ugye a preprocessor az .eseg utan tudja, hogy az eprom-ba szeretnem tuszkolni az adatokat, szpen le is generalja az *.eep.hex-et. Ma viszont az avr-gcc builtin assembly-t hasznaltam (ez ugye a platformio default peldaul CLion alatt), ahol viszont egyszeruen nem jottem ra hogyan fernek hozza az eeprom-hoz. Probaltam a .section .eeprom formatumot, amikor ugyan leforditja, az avr-objdump szepen mutatja is a .elf file-ban (00810000-nel, ahol lennie is kell ) de nem tudok belole eep (hex) file-t varazsolni az avr-objcopy-val. Elcsesztem kb egy orat netes bongeszessel de nem talaltam ra megoldast, ami mar onmagaban is furcsa Hasznalja valaki ezt a kombinaciot? Vagy valamit nagyon sulyosan nem olvastam?
Kozben rajottem hogy mit felejtettem el
Igy probaltam (mert ugye): Csak elfeledkeztem egy 'aprosagrol' (pedig emlitettem is a kerdesemben):
Igy mar mukodott.
Szia! Én akkor jártam hasonlóan, amikor 9V elem + 7805-el próbáltam táplálni az avr-t és a szervót. Rendes tápról szépen működött, a 9V elem gyenge volt hozzá.
Én is pont azzal csináltam de végülis nem az volt a gond. Én értelmeztem félre a vezérlést és folyamatos pwm jelet küldtem neki. Most más gondom akadt. Van ez a HC SR04 ultrahangos távolságmérő. Azt használnám tájékozódásra de valamiért nem akar egymás után többet mérni csak egyet. Két mérés között kb fél másodperc lenne, de már a második alkalommal hiába kapja meg a trigger jelet, az echo láb nem vált magas szintre és ott ahol várja elakad a program emiatt. Erre nincs valami ötlet? Már vettem új szenzort is de ugyanaz a baj.
Üdv!
Egy MCP7940N-es RTC IC-t próbálok az AVR-emhez beilleszteni saját TWI könyvtárammal. A TWI könyvtáram nem tökéletes, de működik. EERAM, MCP23017 írás olvasás is megy. Probléma: Nem tudok byte-onként olvasni, de szekvenciálisan igen. Viszont a byte/szekvenciális írás megy. A legnagyobb gyengeségem a pointerek használata, ezért szerintem a hiba valahol az egyik foo(*return_data)-ban lesz. Még nem rögzült a szürkeállományomban, mikor is kell data-t, *data-t vagy &data-t használni (vagy akár &data[i])... Az MCP7940_Byte_RD(address, *data)-ban található 3 foo()-t "kibontva" is mellékeltem, mint jegyzet. Biztosan nem látom a fától az erdőt.
Bővebben: Link
A timing diagramnak megfelel a programod? |
Bejelentkezés
Hirdetés |