Výpočet konstant pro určitou přenosovou rychlost.
pondělí 12. září 2011
čtvrtek 1. září 2011
Programování FLASH ADuC702x
Pro programování FLASH paměti stačí připojit ADuC702x sériovou linkou. Pozor některé MCU mají I2C bootloadres, viz následující tabulka. I2C bootloader je označen I na konci zančení. Například ADuC7021BCPZ62 je s UARTEM a ADuC7021BCPZ62I je s I2C.
Logický analyzátor a osciloskop s rozhraním USB
Stavba se nejprve ubírala směrem ke klonu podle Pandatronu [1]. Bohužel výrobce takové klony nerad podporuje, proto se bránil formou nového FW, viz diskuze na MCU[2]. Nakonec používám zařízení založené na zapojení [3].
Přidávám několik naměřených průběhů:
Přidávám několik naměřených průběhů:
![]() |
| Průběh napětí MC34063 |
Popis ADuC7021
MCU s jádrem ARM7TDMI RISC 32bit
Periferie - AD převodník 12bit 1 MSPS
- DA převodník 12bit
- PWM
- Komparátor
- UART
- I2C®
- SPI
- Programovatelná logika IO pinů (PLA)
- PLL pro získání hodinového kmitočtu z vnitřního nebo externího 32,768 kHz oscilátoru
Periferie - AD převodník 12bit 1 MSPS
- DA převodník 12bit
- PWM
- Komparátor
- UART
- I2C®
- SPI
- Programovatelná logika IO pinů (PLA)
- PLL pro získání hodinového kmitočtu z vnitřního nebo externího 32,768 kHz oscilátoru
GPIO u ADuC702x
IO porty jsou 5V kompatibilní, mají vnitřní pull-up (100 kΩ). Pull-up je možné vypnout u P0.0, P0.4, P0.5, P0.6, P0.7 a GPIO pinů portu P1. Při uspání MCU se porty přepnou do stavu vysoké impedance.
Nastavení funkce pinů GPxCON.
Nastavení funkce pinů GPxCON.
středa 27. července 2011
USB Serial + Storage
OpenWRT 10.03.1-rc5
nainstalovat balíčky
opkg install kmod-usb2 kmod-usb-storage kmod-usb-uhci kmod-usb-ohci kmod-nls-iso8859-1 kmod-nls-cp437 kmod-fs-vfat kmod-fs-ext2 kmod-fs-ext3 kmod-fs-ext4 nano kmod-usb-serial-ftdi luci-app-hd-idle luci-app-wol bash
Pro čtení i zápis na NTFS je nutný balíček ntfs-3g
Pomocí luci-app-hd-idle je možné nastavit čas po jehož uplynutí se HDD uspí.
Díky luci-app-wol můžeme rozesílat magic pakety k zapínání počítačů.
nainstalovat balíčky
opkg install kmod-usb2 kmod-usb-storage kmod-usb-uhci kmod-usb-ohci kmod-nls-iso8859-1 kmod-nls-cp437 kmod-fs-vfat kmod-fs-ext2 kmod-fs-ext3 kmod-fs-ext4 nano kmod-usb-serial-ftdi luci-app-hd-idle luci-app-wol bash
Pro čtení i zápis na NTFS je nutný balíček ntfs-3g
Pomocí luci-app-hd-idle je možné nastavit čas po jehož uplynutí se HDD uspí.
Díky luci-app-wol můžeme rozesílat magic pakety k zapínání počítačů.
středa 8. června 2011
Další z možností vložení asembleru do C
Další z možností vložení asembleru do C v KEILu. Dokonce funguje krokování v C i v Asembleru.
soubor DA.asm
NAME DA_FUNC
?PR?da_func?DA_FUNC SEGMENT CODE
PUBLIC da_func
RSEG
?PR?da_func?DA_FUNC
da_func:
USING
0
;DEC A
;INC A
DA
A
RET
END
extern void da_func(void);
void main()
{
da_func();
}
Pokus o kompilaci WRTáku a balíčků
stáhnout
http://downloads.openwrt.org/backfire/10.03/brcm47xx/OpenWrt-ImageBuilder-brcm47xx-for-Linux-i686.tar.bz2
a http://downloads.openwrt.org/backfire/10.03/brcm47xx/OpenWrt.config
make menuconfig
načteme konfiguraci, přidáme volby SDK, Toolchair a ukončíme
make -j 3
spustíme a počkáme
stoličku si také přeložíme
Postup instalace do Ubuntu i jiné distribuce je na:
http://wiki.openwrt.org/doc/howto/buildroot.exigence
Balíčky pro Ubuntu x64
sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core quilt
Vlastní Build je popsán na:
http://wiki.openwrt.org/doc/howto/build
http://downloads.openwrt.org/backfire/10.03/brcm47xx/OpenWrt-ImageBuilder-brcm47xx-for-Linux-i686.tar.bz2
a http://downloads.openwrt.org/backfire/10.03/brcm47xx/OpenWrt.config
make menuconfig
načteme konfiguraci, přidáme volby SDK, Toolchair a ukončíme
make -j 3
spustíme a počkáme
stoličku si také přeložíme
Postup instalace do Ubuntu i jiné distribuce je na:
http://wiki.openwrt.org/doc/howto/buildroot.exigence
Balíčky pro Ubuntu x64
sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core quilt
Vlastní Build je popsán na:
http://wiki.openwrt.org/doc/howto/build
pátek 20. května 2011
Linux praktické příkazy
Zobrazení všech rozhraní
iwconfig
zobrazení nastavení všech rozhraní (obdoba ipconfigu)
ifconfig
detekce WiFi karty
wifi detect > /etc/config/wireless
jak zapnout WiFi ve firmware 500gP OpenWRT
v souboru /etc/config/wireless
option 'disabled' '0'
změnit na option 'disabled' '1'
může se také hodit seznam WiFi kanálů
http://wiki.airdump.cz/Seznam_WiFi_kan%C3%A1l%C5%AF_pro_WLAN
Karta z notebooku MSI RT-2560 funguje s ovladačem kmod-rt2500-pci.
Přesměrování výstupu do souboru (i chybové hlášky)
/usr/local/bin/oscam > /tmp/log.txt 2>&1
iwconfig
zobrazení nastavení všech rozhraní (obdoba ipconfigu)
ifconfig
detekce WiFi karty
wifi detect > /etc/config/wireless
jak zapnout WiFi ve firmware 500gP OpenWRT
v souboru /etc/config/wireless
option 'disabled' '0'
změnit na option 'disabled' '1'
může se také hodit seznam WiFi kanálů
http://wiki.airdump.cz/Seznam_WiFi_kan%C3%A1l%C5%AF_pro_WLAN
Karta z notebooku MSI RT-2560 funguje s ovladačem kmod-rt2500-pci.
Přesměrování výstupu do souboru (i chybové hlášky)
/usr/local/bin/oscam > /tmp/log.txt 2>&1
čtvrtek 5. května 2011
Zamezení zobrazování přihlašovací obrazovky
Více na http://www.tipypropc.cz/jak-zakazat-uvodni-obrazovku/
a takto přihlašovací dialog zrušíme po hibernaci, či režimu spánku
http://www.sevenforums.com/tutorials/10024-password-require-wakeup.html
a takto přihlašovací dialog zrušíme po hibernaci, či režimu spánku
http://www.sevenforums.com/tutorials/10024-password-require-wakeup.html
úterý 5. dubna 2011
Sériová linka + přerušení
org 0000H ; začátek programu po resetu
jmp init
org 000BH ; přerušení od čítače/časovače0
jmp T0int
org 0023H ; přerušení od sériové linky
jmp Sint
org 30H
C0L EQU 30h
C0H EQU 31h
REZIM EQU 32h
CAS EQU 33h
roste BIT 0
úterý 15. března 2011
MAM Generátor průběhů
#include <reg51.h>
#define PortDA P1
// 0 obdélník, 1 trojúhelník, 2 pila, 3 sinus
unsigned char sinus_pole[] = {127, 152, 176, 198, 217, 233, 244, 252, 254, 252, 244
,233, 217, 198, 176, 152, 127, 102, 79, 57, 37, 22, 10, 2, 0, 2, 10, 21, 37, 56, 78, 102} ;
úterý 8. března 2011
Ukazatel nebo pole?
// | ~ & µ $ ##include <reg552.h>
code unsigned char funkce_F[16] = {0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01, 0x00,0x01,0x00,0x01,0x01,0x01,0x00,0x01};
int main()
{
unsigned char vstup;
while(1)
{
vstup = P1;
//if (funkce_F[vstup]==1) P1|=0x04; else P1 &= ~0x04;
if (*(funkce_F+vstup)==1) P1|=0x04; else P1 &= ~0x04;
}
}
code unsigned char funkce_F[16] = {0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01, 0x00,0x01,0x00,0x01,0x01,0x01,0x00,0x01};
int main()
{
unsigned char vstup;
while(1)
{
vstup = P1;
//if (funkce_F[vstup]==1) P1|=0x04; else P1 &= ~0x04;
if (*(funkce_F+vstup)==1) P1|=0x04; else P1 &= ~0x04;
}
}
Přihlásit se k odběru:
Příspěvky (Atom)






