login::
pass::
name::
id::
node:
MCU
template:
3
parent:
ele - elektrotechnika
owner:
NiO
viewed by:
created:
15.02.2012 - 12:11:03
cwbe coordinatez
:
101
63533
766908
2016246
6501894
ABSOLUT
K
YBERIA
permissions
you:
r,
system:
public
net:
yes
⠪
neurons
stats
|
by_visit
|
by_K
source
tiamat
K
|
my_K
|
given_K
last
commanders
polls
total descendants::3
total children::3
1
❤️
show[
2
|
3
]
flat
robo
0
scarce
0
Forum o mikrokontroleroch
title/content
title
content
user
000001010006353300766908020162460650189407045828
NiO
08.02.2013 - 02:58:04
(modif: 08.02.2013 - 17:21:13) [
6K
] , level: 1,
UP
NEW
!!CONTENT CHANGED!!
ibutton 1 - precitanie kodu z ibuttonu
ibutton - bezne rozsirene elektronicke ID pouzivane na odomykanie vchodovych dveri na barakoch a ktovie na co vsetko
Mam jeden ibutton na klucoch a denno-denne ho pouzivam tak ma celkom zaujimalo ako sa ta technologia pouziva.
Vyraba ho firma Maxim, existuje viac variant ibuttonov, niektore obsahuju iba 64 bitove ID, a tiez su take co obsahuju nejakych par kilobitov pamate, niektore sa daju prepisovat a na niektore sa iba zapisuje.
Zoznam sa da najst napr. tu aj s popisom komunikacie:
app74.pdf
Obal ibuttonu je plochy okruhly a ocelovy a pripomina male ploche baterky. Ma na sebe iba 2 kontaktne plochy:
- ta co zabera chrbat a bok je GND
- ta mensia spredu sluzi zaroven na napajanie a data
Takto vyzera moj provizorne vyrobeny konektor, boli pouzite 2 kusy M3 skrutiek a maly kus preskrabanej DPS:
'Paraziticke' napajanie je zaujimave, funguje to vdaka tomu, ze datova zbernica na ktoru sa ibutton pripoji ma 4.7kOhm pullup rezisor, takze je na zbernici pritomne stabilne napajacie napatie, ak sa prave nekomunikuje.
Komunikacia: je pouzity "1 wire bus",
principalne ked je zbernica idle, je na nej pritomne napajacie napatie ... HIGH
komunikaciu zahaji master stahovanim zbernice na 0V... LOW
Elektricke rozhranie s MCU:
DATA pin ibuttonu je zapojeny na 5V cez 4k7 pullup rezistor. (Mozno pojde aj 3.3V)
Na tahanie DAT dolu sa da pouzit NPN tranzistor s bazou pripojenou k vystupnemu digit. pinu na arduine cez rezistor 1k. Potom, vysielanie 1 a 0 je invertovane.
Tu je ina podobna schema s FET tranzistorom z [2]:
Cely podstatny postup pouzivania zbernice je zhrnuty v tejto tabulke:
Tabulka je z pohladu mastera, v casovani vysielania nul alebo jednotiek je uz zahrnuta pauza medzi vysielanymi bitmi.
Datasheet od konkretneho ibuttonu je
tu
So samotnym ibuttonom sa pracuje takto:
1. resetuje sa zbernica
2. v istom okamihu po resete sa da zachytit presence impulz od ibuttonu
3. master odvysiela 8 bitov znaciacich prikaz read ROM (33h alebo 0Fh) v LSB poradi napr 33 hexa bude 1, 1, 0, 0, 1, 1, 0, 0
4. potom master 64 krat precita bit z ibuttonu
5. skontroluje sa ci sedi CRC a ak nie moze sa citanie opakovat
v 64 bitoch sa nachadza (v poradi od prveho po posledny prijaty byte):
8 bitov pre family code (pride v bitovom poradi LSB)
48 bitov (iba) je ID kluca (pride v bitovom poradi LSB a navyse prvy byte je LSB byte, takze na puzdre su napisane bytey v opacnom poradi)
8 bitov je CRC (pride v bitovom poradi LSB)
Cely kod je laserom vypaleny na obale kluca ale ten sa nosenim doskriabe tak ze to chvilu trva z neho precitat. Vlavo hore na obrazku 89 hexa znaci checksum, vpravo hore 01 hexa je family code a 00 00 00 FB C5 2B je samotne ID kluca.
Postup vypoctu CRC je popisany v datasheete.
Pointa: Precitanie dat z ibuttonu je praca na jeden az 2 nudne vecery, ak sa k tomu prida ten treti az stvrty moze vzniknut projekt elektronickeho dveroveho zamku alebo niecoho trochu ineho... klonovaheho kluca. Tiez sa da dat dokopy siet digitalnych teplomerov (tie este nemam) ktora si vystaci s dvojlinkou.
Bezpecnost ibuttonov: ibutton sa nelisi od obycajneho kluca tym, ze sa da ukradnut, stratit alebo kopirovat Len netreba zabudat ze jeho skopirovanie/emulacia je po technickej stranke trivialne jednoducha, aj ked sa to neda zariadit na kazdom rohu alebo v Tescu ako s klasickym mechanickym klucom... hotove riesenia sa daju kupit, napr. z ciny.
Tu je nejake info o utoku na platobny system Bostonskeho metra
Co treba na (aspon) precitanie ibuttonu:
arduino, seriovu komunikaciu s PC,
ibutton konektor, 4k7 rezistor, 1k rezistor a tranzistor.
rozne odkazy:
[1] datasheet k ibuttonu DS1990R
[2] ako komunikovat
[3] komunikacia s pouzitim PIC uc
[4] ake existuju 1 wire zariadenia
000001010006353300766908020162460650189406742161
NiO
14.07.2012 - 13:00:22
(modif: 08.02.2013 - 02:01:17) [
1K
] , level: 1,
UP
NEW
!!CONTENT CHANGED!!
AVR a cinsky programator
--work in progress--
*=*=*=video=*=*=*
Nejaky nemec navrhol programator
USB ASP
, je kompatibilny s programom avrdude, bezi na linuxe aj windowse. Nedavno som si ho objednal z ebayu potom co som zbadal ze stoji iba 3.8$ aj s postovnym. Tu su moje skusenosti:
Programator som objednaval od obchodnika
yourlab
a prislo to za 10 dni (slusny vykon na Cinu).
Je na nom napisane USB ASP V2.0 Lcsoft Studio.
Ma na sebe 2x5 pinovy konektor ktory pasuje do samoreznych konektorov na ploche datove kable (ako stary IDE/floppy kabel).
Doma som si urobil breadboard s paticou pre atmega8, takym 2x5 pinovym konektorom aby som mal kde zapojit USB ASP a este som pridal kopu 2.54 kolikov aby som sa dostal ku kazdemu pinu procesora.
Mam Windows 7 64 bit a software pre programator som zlozil z tychto 2 archivov:
USBasp-win-driver-x86-x64-ia64-v1.2.4.zip
avrdude-5.11-Patch7610-win32.zip
Pri pouzivani s avrdude vyhadzuje warning ze sa neda zmenit rychlost SCK hodin.
Podarilo sa mi nahrat blikaci test do 5 roznych AVR-iek a to 3x atmega8, atmega168 a atmega32 a to niektore boli prepoistkovane :)
S tymi co nereagovali som si poradil tak ze som im pustil do vstupu XTAL1 16MHz obdlznik, potom sa zase dali prepoistkovat. Ten obdlznik som ziskal z monolitickeho oscilatora z GME.
UPDATE: na mojom kuse su naletovane 3 piny vdaka ktorym sa da vybrat medzi 3.3V a 5V ako napajacim napatim ktore doda programator mikroprocesoru.
000001010006353300766908020162460650189406497579
NiO
13.02.2012 - 01:27:26
(modif: 15.02.2012 - 19:28:16) [
2K
] , level: 1,
UP
NEW
HARDLINK
!!CONTENT CHANGED!!
TI launchpad
TI Launchpad
Vyvojova doska za 4.3$
,
doprava z USA zdarma, clo zdarma, no nekupte to.
doska
Pripaja sa k PC pomocou USB, ma to obvody umoznujuce nahravat novy kod, ladenie - krokovat kod v mikrokontroleri, pozerat do registrov a pod.
Na doske su 2 LED a jedno user a reset tlacitko. Okrem toho tu je patica na uc, volne miesto na krystal 'napajkuj si sam prilozeny mikrokrystal'. Vsetky piny su vyvedene na 2x jednoradove 2.54 koliky (prilozene su dutinky kto si chce vymenit...)
Prilozene su: MSP430G2553 a MSP430G2452, oba su 16 bitove.
software
Na linuxe je mspdebug, ktorym sa da do uc nahrat novy kod a ladit ho. Kod v linuxe skompiluje msp430-gcc. Vo windows staci mat Code Composer Studio za registraciu na TI stranke, dokaze sa spojit priamo s doskou a ukazovat ktory riadok sa prave spustil a pod., obsahuje demo kody.
napaleny demo kod
blika striedavo s LED, po stlaceni user buttonu zacne vysielat ASCII znak so zmeranou teplotou vo fahrenheitoch cez sw seriovy port -> obvody na doske -> USB -> na virtualny COM port na PC
zadrhely
CCS web instalator vo windows zlyhal s chybou cannot create socket... stahoval som ten kompletny
Skusal som kompilovat msp430-gcc pomocou navodu v odkazoch, no zastavilo sa to, neviem preco... pouzil som verziu z Fedora repozitaru. Hlavickove subory pre jednotlive modely uc su nedokoncene... chybaju napr. tie pre model MSP430G2553 a treba dohladavat premenne v hlavickach pre ine modely.
User tlacitko na pine P1.3 nema v hw pullup rezistor takze sa stale javi v log. 0 az kym sa nezapne interny pullup rezistor v uc...
pre moj MSP430G2553:
P1DIR&=~0x08; // P1.3 bude vstup
P1OUT|=0x08; // bude to pull-up
P1REN|=0x08; // povoli pullup rezistor
V linuxe na 2 strojoch sposobuje prilozene demo nepredvidatelne chovanie seriovej komunikacie, na jednom stroji treba:
1. odpojit kit z USB
2. zapojit kit
3. resetovat kit
4. az potom sa pokusat nastavit a otvorit COM port /dev/ttyACM0
odkazy
hackaday, ako na launchpad v linuxe
nejaky tutorial
datasheet od MSP430G2553, nieje tam vsetko
datasheet od rodiny MSP430x2xx, popisane periferie
o pull-up rezistore pre push button
000001010006353300766908020162460650189406497579
NiO
13.02.2012 - 01:27:26
(modif: 15.02.2012 - 19:28:16) [
2K
] , level: 1,
UP
NEW
!!CONTENT CHANGED!!
TI launchpad
TI Launchpad
Vyvojova doska za 4.3$
,
doprava z USA zdarma, clo zdarma, no nekupte to.
doska
Pripaja sa k PC pomocou USB, ma to obvody umoznujuce nahravat novy kod, ladenie - krokovat kod v mikrokontroleri, pozerat do registrov a pod.
Na doske su 2 LED a jedno user a reset tlacitko. Okrem toho tu je patica na uc, volne miesto na krystal 'napajkuj si sam prilozeny mikrokrystal'. Vsetky piny su vyvedene na 2x jednoradove 2.54 koliky (prilozene su dutinky kto si chce vymenit...)
Prilozene su: MSP430G2553 a MSP430G2452, oba su 16 bitove.
software
Na linuxe je mspdebug, ktorym sa da do uc nahrat novy kod a ladit ho. Kod v linuxe skompiluje msp430-gcc. Vo windows staci mat Code Composer Studio za registraciu na TI stranke, dokaze sa spojit priamo s doskou a ukazovat ktory riadok sa prave spustil a pod., obsahuje demo kody.
napaleny demo kod
blika striedavo s LED, po stlaceni user buttonu zacne vysielat ASCII znak so zmeranou teplotou vo fahrenheitoch cez sw seriovy port -> obvody na doske -> USB -> na virtualny COM port na PC
zadrhely
CCS web instalator vo windows zlyhal s chybou cannot create socket... stahoval som ten kompletny
Skusal som kompilovat msp430-gcc pomocou navodu v odkazoch, no zastavilo sa to, neviem preco... pouzil som verziu z Fedora repozitaru. Hlavickove subory pre jednotlive modely uc su nedokoncene... chybaju napr. tie pre model MSP430G2553 a treba dohladavat premenne v hlavickach pre ine modely.
User tlacitko na pine P1.3 nema v hw pullup rezistor takze sa stale javi v log. 0 az kym sa nezapne interny pullup rezistor v uc...
pre moj MSP430G2553:
P1DIR&=~0x08; // P1.3 bude vstup
P1OUT|=0x08; // bude to pull-up
P1REN|=0x08; // povoli pullup rezistor
V linuxe na 2 strojoch sposobuje prilozene demo nepredvidatelne chovanie seriovej komunikacie, na jednom stroji treba:
1. odpojit kit z USB
2. zapojit kit
3. resetovat kit
4. az potom sa pokusat nastavit a otvorit COM port /dev/ttyACM0
odkazy
hackaday, ako na launchpad v linuxe
nejaky tutorial
datasheet od MSP430G2553, nieje tam vsetko
datasheet od rodiny MSP430x2xx, popisane periferie
o pull-up rezistore pre push button
00000101000635330076690802016246065018940649757906515619
NiO
22.02.2012 - 21:45:05
(modif: 22.02.2012 - 22:22:27) [
1K
] , level: 2,
UP
NEW
!!CONTENT CHANGED!!
watchdog
ako som tak skusal spravit
multiplexer
tak to blblo a nechcelo to rozsvietit viac ako prve 2 cislice na displeji, ako som neskor zistil bol aktivovany watchdog a ja som ho nenuloval... tak sa to cele resetovalo skor nez sa stihli ostatne cislice rozsvietit.
vypnutie watchdogu na MSP430 G2 553 a dalsich MSP430G MCU:
WDTCTL = WDTPW +WDTHOLD; // Stop Watchdog Timer
alebo miesto vypnutia jeho pravidelne nulovanie:
WDTCTL = WDTPW + WDTCNTCL;
00000101000635330076690802016246065018940649757906503102
NiO
15.02.2012 - 19:39:14
(modif: 23.02.2012 - 00:21:56) [
1K
] , level: 2,
UP
NEW
!!CONTENT CHANGED!!
Re: TI launchpad
ziskanie presneho zdroja hodin
DCOCLK
- interny oscilator, da sa externe nastavit rezistorom, jeho frekvencia sa da menit za behu, no moc presny nieje a pri seriovej komunikacii sa obavam ze rychlost bude nespravna
LFXT1
- jeho XIN, XOUT piny pre krystal su vyvedene na dosku na miesto kde moze byt napajkovany krystal, pozor pri procesore G2xx[1,2,3] napr MSP430G2554 nieje podporovany high frequency mode, ale mal by zarucene fungovat s prilozenym 32768Hz krystalom, alebo sa don moze priviest externy zdroj hodin (400kHz-16MHz). Kondenzatory na DPS nenapajkovali ale uC ma v sebe zabudovane 4 konfigurovatelne druhy od 1pF do 12.5pF
XT2CLK
- mal by fungovat s krystalmi, rezonatormi a ext. hodinami od 400kHz do 16MHz zda sa ze G2553 XT2CLK nema
krystal 32768Hz
napajkoval som do predpripravenych dierok nejaky 32.768Hz krystal co som mal (na pajkovanie toho mikro som si netrufal) a s implicitnymi nastaveniami sa oscilator rozbehol
// nastavenie LFXT1 pre 32768Hz xtal:
BCSCTL3 &= ~(64|32); // (implicitne po spusteni)
// nastavenie kondenzatorov LFXT1 na 12.5pF:
BCSCTL3 |= 4|8; // implicitne su 1pF
// pre otestovanie sa vysledny signal vyvedie na pin P1.0
// po jeho skonfigurovani ako vystup hodin ACLK:
P1SEL |= 1; P2SEL &= ~(1);
// po jeho nastaveni ako vystup
P1DIR |= 1;
// signal na pine P1.0 sa teraz da zmerat frekvencnym citacom
video
00000101000635330076690802016246065018940649757906502815
Joy
15.02.2012 - 16:57:56
[
1K
] , level: 2,
UP
NEW
Re: TI launchpad
Aká náhoda... včera som to držal v ruke. Priniesol si to kamarát na prednášku a hral sa s tým. On to chce použiť ako súčasť nejakého GPS lokátoru na model lietadla.