U potrazi za tartufima AVR-a

Rasprava o AVR mikrokontrolerima, AVR projekti i drugo vezano za AVR...

Moderators: pedja089, stojke369, trax, InTheStillOfTheNight

User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

Danas kad pročitam tekstove koje sam napisao vidim brdo propusta koju su morali biti objašnjeni, a nisu, pogotovo oko hardware-a koji je potrebno osigurati da bi se uopće moglo početi programirati. Dosta toga nije dobro objašnjeno, prvenstveno iz razloga jer sam tekstove pisao iz čiste zezancije i nisam previše pazio na detalje. Gotovo sve tekstove sam pisao iz glave, i nisam previše obraćao pozornost na bitne sitnice datasheet-a. Nisam crtao nikakve sheme, koje bi početnicima svakako trebale. Vjerojatno sam morao napisati brdo teksta da vidim probleme vlastitog pisanja. Kada bih danas pisao o programiranju imao bih sličan pristup, ali bi se kvaliteta tekstova puno više razlikovala od onoga što sam napisao.

No kako sam član ovog foruma već skoro desetak godina pomalo me čudi, čitajući današnje upite i odgovore, kako se zapravo ništa nije izmjenilo. Ljudi i dalje postavljaju početnička pitanja oko "prvog" mikrokontrolera, prve platforme ili prvog programskog jezika. I opet smo na blinkanju ledicama i programima koji se ne mogu rastegnuti više od recimo 200 linija koda zbog delaya koji mi se gadio pisajući tartufe.

Čak nakon i mojih tekstova o programiranju, koji su bili totalna zezancija, @bucinih tekstova stručno pisanih o mikrokontrolerima i @pedjinih tekstova o PIC mikrokontrolerima, otvara se novi tipic u AVR-u o BASCOM-u i 8051 mikrokontrolerima koji bi trebao početnike uvoditi u programiranje, naravno ponovno ciljajući na DELAY i blinkanje LED-om i opet se vraćamo na ono što smo čitali i pisali prije 10 godina.

Nemam ja ništa protiv autora bilo kakvih tekstova o programiranju, dapače treba ih biti što više, ali nekako imam osjećaj da se nismo pomakli od BASIC programiranja i da se stalno vrtimo u istom krugu ograničenosti.

Ljudi koji stvarno znaju programirati rijetko pišu o pravom načinu programiranja, što se može vidjeti i iz teme o PIC mikrokontrolerima u raspravi oko 12FXXX PIC-a između mene @traxa i @hex-a. Većina čitatelja uopće neće shvatiti o čemu mi razgovaramo.

Iz takvih razloga želio bih krenuti ponovno pisati tekst za početnike, ali bih ovaj puta pazio na propuste koje sam napravio u tartufima, no činjenica je da to sigurno više ne želim raditi besplatno. Jedan od razloga je taj što sam član Hrvatskog društva za robotiku i mogu održavati škole robotike koje Hrvatsko društvo za robotiku relativno dobro plaća. Drugi razlog je taj jer mogu pisati za abc tehniku, a oni to isto plaćaju, i treći razlog je taj jer sam već počeo pisati sve iznova na eng. jeziku kao blog i nakon objavljenih 20 ili 30 postova uključiti ću AD-SENSE.

U području mikrokontrolera nismo se pomaknuli s nule već 10 godina, a i oni koji odu u profesionalne vode prestaju pisati o programiranju jer im to oduzima slobodno vrijeme koje bi mogli uložiti u razvoj vlastitih proizvoda. Takvo nešto slično se i meni događa, iako nisam previše niti uložio u pisanje teksta, pošto se radilo o čistoj zezanciji od koje nisam ni gledao nikakvu profit.

Ono što je do sada napisano, vlasništvo je ovog foruma i što se mene tiče bilo tko može uzeti tekst, prevoditi ga, mijenjati i raditi s njime što želi. Ovo pišem jer određeni forumaši žele prevoditi tekst na Slovenski jezik, a za to eventualno treba pitati @trax-a.

Uglavnom kako sam sve počeo pisati iznova, čitamo se ili u abc tehnici ili na eng verziji bloga.
InTheStillOfTheNight
Maki
Odlično uznapredovao
Odlično uznapredovao
Posts: 766
Joined: 02-07-2012, 12:54

Re: U potrazi za tartufima AVR-a

Post by Maki »

Bok !
Vidim da razmisljas pisat za ABC tehniku . Razmisljas li pisati u djelovima koje bi ABC izdavao u svom casopisu ili vec napisati kompletnu knjigu pa ju promovirat preko ABC-a ? U prethodnih 10 brojeva ako se ne varama taj casopis je dosta obradio 8051 seriju i izbacio zgodne projekte i mogucnosti koje su izvedive pomocu attiny-a .
I u kojem vremenskom razdoblju bi mogli ocekivati tvoju knjigu ili rubriku u casopisu ?
Pretpostavljam da ces radit sa AVR-om, za koji mikrokontroler si se odlucio ? Ako nije problem ti obratiti paznju pri biranju mcu , da je dostupan vecini .
Jedva cekam prvo izdanje.
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

Napisao sam samo nekoliko postova na eng jeziku kao uvod u programiranje na blogu koji još nije vidljiv na google, i naravno odabrao sam ATMEGA8-16PU DIP kućište jer je sigurno najdostupniji AVR na svijetu. Razlog tome je potraba da se opišu osnovne potrebe hardware-a koje sam u tartufima preskočio. Uglavnom kontaktirao sam abc tehniku, i ništa još nije dogovoreno, ali nadam se da će biti. Nemam napisan tekst, ali to je manje bitno, u glavi i tako imam dovoljan cirkus da bih mogao pisati danima o programiranju. Pisao bih rubrike koje bi se objavljivale u časopisima, a samim time kvalitetu teksta bih morao daleko povećati i detaljizirati. Ne znam, možda bude zanimljivih tekstova za čitanje, pogotovo ako si odvojim čitav dan za jedan tekst, a ne kao u tartufima samo pola sata. Bilo kako bilo, ako ne budem pisao za abc tehniku, pisati ću blog na eng. jeziku, ali neće postati javan dok se ne skupi 30 ili 40 kvalitetnih tekstova.
InTheStillOfTheNight
sonata
Napredujem
Napredujem
Posts: 121
Joined: 08-01-2013, 18:01

Re: U potrazi za tartufima AVR-a

Post by sonata »

Pročitah 75% postova, a onih 25% sam preletio "pogledom". Jako lijep topic, svaka čast sudionicima na trudu.

Kao povratnik u svijet programiranja (općenito) nakon 25+ godina, volio bih postaviti neka pitanja stručnijima od sebe. Naime, programiranjem sam se počeo baviti na pola osnovne škole, Basic i 6502/6510 Assembler (Orao, C64), kasnije sam radio neke projekte u Visual basic-u da bi moj zadnji susret s programiranjem bio prije oko 12-13 godina na PDS-u i to u VB5.

Nedavno sam ušao u sasvim novi svijet za mene, svijet mikrokontrolera, prešaltao sam se iz Basica i Assemblera na C, jednostavno, jer važan je samo način razmišljanja, a ne programski jezik.

No, kod teme načina razmišljanja sam malo i zapeo, a tiče se upravo AVR kontrolera. Čitao sam na puno sajtova o potrebi korištenja Watchdog-a pri korištenju kontrolera u "osjetljivim primjenama", ali mene zanimaju konkretna iskustva oko potrebe korištenja watchdog-ova. Naišao sam na forumu na par tema gdje se spominje watchog, ali to nije ono što mene zanima.

Jasan mi je koncept watchdoga, ali jednako tako mi je jasno da arduino pati od nekih bug-ova watchodoga unutar bootloadera (bilo mega 2560 kojeg koristim, bilo mega 328 kojeg kanimkoristiti). Može se pronaći na netu svjedočanstva o tome kako su ljudi pretvorili svoje kontrolere u cigle programiranjem korištenja internog watchdoga na način da se watchdog aktivirao prije nego što je kontroler bio u mogućnosti downloadati novi program pa se ponavljao beskonačni reset.

Razmišljeo sam o eksternom "flip-flop" watchdogu koji bi pratio "budnost" kontrolera i po potrebi ga resetirao, ali majka svih pitanja glasi "KOLIKO JE TO POTREBNO?"

Naime, kolike su mogućnosti da se mikrokontroler "zalbesira" i da otkaže poslušnost bez razumnog objašnjenja? Ne mislim sad da ode u softversku beskonačnu petlju ili u stanje čekanja stanja koje nije programirano da se ikad dogodi, nego u stanje u kojem je sve programirano po "pravilima struke", gdje nema uvjetnih petlji, gdje nema nikakve mogućnosti da se uđe u "endless loop"... Dakle, sve je savršeno programirano. Kakve su mogućnosti da kontroler ipak "prestane s radom" i da ipak postoji potreba za resetom kojeg bi odradio watchdog - recimo da zbog neke inducirane smetnje program counter skoči na neku nedefiniranu adresu na kojoj nije upisano ništa i "smrzne se". OK, ima pravila koja govore da se u svu nekorištenu memoriju upiše "NOP" i da se svaki error handler vraća na početak LOOP-a, ali to već spada u trikove. Pa jamo čak reći da je sve tako programirano i kompajlirano... Svaka greška je hendlana, nema memorijske lokacije bez korisnih instrukcija, sve je po PS-u...

Probao sam koristiti 2560 u okolini perverzno velikih elektromagnetskih smetnji korištenjem PWM-a nad niskoohmskim plinskim injektorom (5mH, 1.2R) bez kondenzatora na napajanju, bez snoober-a ringing-a mosfeta, dakle, zdravoseljački nastrano - i kontroler je uredno radio. Prolazio sam injektorom i njegoim kabelima iznad pločice, prislanjao sam injektor (elektromagnet) na sam čip, izvodio cirkuse, ali kontroler je radio bez greške. Pitam se, dakle, ima li stvarne potrebe upotrebe watchdog-a osim iz straha od vlastite greške u programiranju.

Ako program izvedem "linearno" bez mogućnosti ulaska u bilo kakvu petlju (posebno ne u beskonačnu) i ako napajanje izvedem filtrirano do besvjesti (Kondoš, otpornik, kondoš, DC-DC buck, kondoš, LDO regulator, kondoš sa induktivitetom pa tek onda pločica sa vlastitim regulatorom), postoji li stvarna potreba za watchdog-om?

Gledajući cijene komponenata, ispada da je skoro pa najjeftinija opcija korištenje drugog kontrolera kao watchdog-a (pa da se nadgledaju međusobno), ali zanima me kolika je stvarna potreba za korištenjem watchdog-a?

Kontroler planiram koristiti u automobilu za relativno vitalnu funkciju, ali svejedno - ne vjerujem da se glavno računalo automobila resetira na "ugriz" watchdog-a jer se kod injektiranja goriva i paljenja svjećica radi o milisekundama, dakle, kontroler auta (Bosch, Siemens, Sagem...) radi savršeno i bez greške (očito)... Da ne spominjem nadzor nad ESP-om, ABS-om, AirBagovima itd... Nekako ne vjerujem da tu ima "vremena za reset u vožnji", a stvar ipak radi i na -25 i na +80...
Nullius addictus iurare in verba magistri
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

Imaš totalno krivi pogled na WDT... Niti jedan software ili hardware nikada ne smije pasti, bez obzira na sve moguće i nemoguće smetnje... WDT je samo zaštita zaštite zaštićenog sustava. Dakle, zadnja crta obrane!

Iako, njegov način rada i sama zaštita uređaja WDT-om nije tako bajna, jer u praksi čitav SW i HW može poluditi, ali i dalje šalje WDT-u heartbeat signal prisutnosti i WDT neće korigirati problem. Dakle, to je samo jedna zaštita više na koju se nikada ne treba osloniti, ali na kraju, ipak jedna zaštita više! Od viška glava ne boli!
InTheStillOfTheNight
sonata
Napredujem
Napredujem
Posts: 121
Joined: 08-01-2013, 18:01

Re: U potrazi za tartufima AVR-a

Post by sonata »

Drugim riječima, WDT je samo preventiva kolapsa nespretno napisanog kôda? U smislu da se hardveski korigira softverska pogreška tipa "sad čekam stanje koje je neostvarivo i u međuvremenu ne radim ništa"...

Pročitao sam izvrstan tekst koji se bavi mikrokontrolerima u "neprijatnoj okolini" i tamo se wdt navodi samo usput... http://www.atmel.com/images/doc9108.pdf

Puno više pažnje se posvećuje programiranju, a dijelom se obrađuje i napajanje.

Dakle, što sve treba činiti kao bi se "blesiranje" mikrokontrolera svelo na minimum.

Ništa, za sad ne planiram koristiti "vanjski" WDT, a praksa će pokazati da li je to mudra odluka. Ipak, volio bih da sam dobio neka saznanja iz prakse - koliko je realno očekivati da će kontroler "samo tako pasti" bez vidljivog razloga. Ono, koristi tri linije kôda za blinkanje diode, radi tjedan dana i onda se smrzne bez objašnjenja... Takva iskustva me zanimaju.
Nullius addictus iurare in verba magistri
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

http://www.elektronika.ba/forum/viewtop ... 13&t=10480

Tu je bilo rasprave oko stvari koje te zanimaju pa možeš pročitati topic, iako WDT koliko se sjećam nije spominjan.

Nije wdt tu da štiti software od software bugova, njih i tako ne smije biti. WDT se često koristi kada želiš u SW-u resetirati MCU. samo zavrtiš SW u bilo kojoj petlji i čekaš da ga WDT resetira. U pravilu najbolje što možeš iskoristiti wdt je na način da provjeriš sve što je uopće moguće u software-u i tek tada resetiraš WDT. Dakle ako nešto u SW-u poludi na taj način bi mogao ponovno pokrenuti MCU. Tebi nitko ne može zabraniti da recimo u main funkciji pozoveš funkciju TestMySoftware() koja može provjeriti sve registre, range varijabla... i tek tada resetirati WDT.

Meni se davno u praksi događalo da mi SW poludi jer nisam dobro dizajnirao hardware, npr dogodi mi da recimo interrupti ostanu isključeni, a ja u glavnom main-u i interrupti moraju biti uključeni. Ne postoji tu software greška, nego jednostavno smetnje u naponu napajanja mogu dovesti do toga da MCU izvrši krivo instrukciju, a ako samo jedna instukcija bude krivo izvršena velika je mogućnost da ti se sruši software.
Zato u takvom okruženju u kojemu su velike smetnje napona prvenstveno treba znati dizajnirati hardware, koristiti BOD FUSE, CKOPT fuse, a ne osloniti se da software sam spašava sebe resetom. To je najgora moguća opcija, po meni neispravan uređaj.
InTheStillOfTheNight
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

Baš tražim nešto po projektima i naletim na ovo... Jbt koliko sam volje imao davno... Kada bi me netko danas pitao da ovo srutam na jednoslojnom pcb-u sterao bih ga u kurac i rekao nemoguce... 0603, ali sve na milimetar u kutiju... RFID reader 125khz RS485
Attachments
rfid reader.rar
(198.23 KiB) Downloaded 548 times
InTheStillOfTheNight
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

To je zapravo ovo... RFID reader u VIMAR podžbuknoj kutiji... Tu je još i zavojnica, a buzzer, relay i elko su na mm da uopće stane u takvu kutiju.
Attachments
125.rar
(326.63 KiB) Downloaded 527 times
InTheStillOfTheNight
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: U potrazi za tartufima AVR-a

Post by pedja089 »

A da je drugacije bilo onda ne bi bilo zanimljivo :)
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

Jedina je šteta što je firma odustala od projekta jer nikada nije završen kontroler i nije napisan SW za PC... Al baš sam se potrudio napraviti RFID čitač i to jebeno dobro radi... Dio sam napisao na ARM-u, baza podataka, serivis za čitač... zapravo pun k sam toga napisao, ostao je jedino TCP i aplikacija za PC...
InTheStillOfTheNight
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: U potrazi za tartufima AVR-a

Post by pedja089 »

Steta...
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

Bilo je dosta price oko zavrsetka tog projekta privatno... Ja bih ga svakako zavrsio, ali jebat ga, ako sam dobar u programiranju MCU-a ne mogu biti dobar u pisanju windows aplikacija... Ili jedno ili drugo! Može se to završiti ako se može složiti tim ljudi koji bi radio na projektu. Tu se opet povlaci tema ima li to smisla i koliko je isplativo? To je jednostavno prevelik projekt da bi se radio iz zajebancije... Ako nema zarade, nema posla.

Eventualno, ako tko ima volje, da odaberem, buco, trax, pedja, abc, kukinjos, mogli bi dogovoriti da radimo na tome, ali naravno ako to možemo prodati i zaraditi na tome. Projekt je jednostavno velik da bi se to radilo iz gušta.
InTheStillOfTheNight
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: U potrazi za tartufima AVR-a

Post by pedja089 »

Mislim da tu sad tesko moze sta da se zaradi... Previse je kineza tu upetljalo prste, za sitne pare kojekakvi RFID po ebay...
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

Znam pedja... u to sam jebeno upucen... prodaju kontrolu pristupa za par dolara. Zato je i firma odustala od tog projekta... No isto znam da je nemoguce pronaci citac koji sam razvio, nikako u tome dizajnu. Imas citaca za 10 ili 20 USD ali to je bas kina skart. Ipak, imas brdo firma koje to naplacuju jebeno i opet opstaju... Nije bas sve u kini!
InTheStillOfTheNight
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

Podžbukni čitač gotovo i ne postoji jer ga je jako teško strpati u kutiju normalnih dimenzija... Možeš potražiti gdje god hoćeš i teško ćeš ga naći. Ja nisam pronašao ništa slično, možda sam tražio na krivim mjestima, ne znam... Može se razviti i samo čitač po standarnom wiegand protokolu, biti će jebeno jefrin. Nema relay-a, nema DS485. mogu izbaciti i ekterni WDT... sve bi se svelo na jedan MCU i nekoliko okolnih komponenti...
InTheStillOfTheNight
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: U potrazi za tartufima AVR-a

Post by pedja089 »

Nisam ni ja video.
Ali gurati se sa kinezima sa cenom, ne ide...
Gurati se sa par firmi koji su stekle ime u prethodnih par godina, opet tesko...
Mozda sa nekom od njih uci u taj posao.
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: U potrazi za tartufima AVR-a

Post by InTheStillOfTheNight »

A ne znam, meni je samo steta znanja... Bas sam ulozio oko 3 godine ucenja u RFID... Poznajem ga u totalne detanje, od generiranja nosilca do dekodiranja manchester koda, znam napamet kako je sve složeno u prijemu, kako izračunati sve checksume... Toliko sam išao u detalje da sam sve isprogramirao u jednom MCU-u. Štedio sam na najmanjem otporu da bi dio što je moguće jeftiniji HW, čak sam i HW crtao na jednom sloju jer je najjeftinije... Mislim, projekt je stao prije nekoliko godina, ali po meni šteta je da se ne razvije nešto za tržište kad se može. Sumljam da netko na forumu poznaje toliko detaljno RFID tehnologiju kao ja. Postao sam i slike samog čitača, iskreno sumljam da postoji takav HW za rfid... Ja sam svakako za bilo koji daljni razov privatno, naravno ako se uopce isplati...
InTheStillOfTheNight
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: U potrazi za tartufima AVR-a

Post by pedja089 »

InTheStillOfTheNight wrote:...naravno ako se uopce isplati...
Samo to :)
User avatar
Kizo
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 387
Joined: 01-11-2009, 22:40
Location: Hrvatska

Re: U potrazi za tartufima AVR-a

Post by Kizo »

Da se nadovežem na raspravu o WDT. Slažem se sa Noćnim i nadopunio bi temu sa još nekim primjenama, osim kao zaštita zaštite zaštićenog sustava. :D Npr. može se koristiti kao timer (ako nije potreban precizan tajming jer radi na 128kHz zasebnom internom oscilatoru).

Može se koristiti kao mehanizam koji će buditi MCU iz sleepa, tipično ako uređaj radi na baterije i bitna je što manja potrošnja.
Primjerice, program skenira stanje senzora svake sekunde, provrti to kroz logiku i ode u power-down mode sa uključenim WDT-om koji ga opet budi sljedeće sekunde. MCU je uključen 0.0001s, a isključen 0.9999s = iznimno mala potrošnja, reda uA.
Naravno, uz sve to, WDT služi standardno kao zaštita jer se može konfigurirati da prvo daje interapt, a zatim ode u system reset mod.

Imao sam situaciju da pri uključenju uređaja, 1 od možda desetak puta 16x2 LCD se pravilno ne inicijalizira i dobe se samo crni kvadratići u gornjem redu.
Najjednostavnije rješenje je bilo prepustiti sve WDT-u koji resetira MCU jer se namjerno dopustilo da LCD zamrzne daljnje izvršavanje programa ako prilikom incijalizacije ne spušta busy flag određeno vrijeme.
Sve u konačnici daje to da se u najgorem slučaju nezamjetno produži boot vrijeme, što korisnik ne primijeti. :wink:
Post Reply