Søgeresultater

Søgeord: "I2C '

CAT3626 RGB LED Driver + Qt Embedded 4,6 på Mini2440

Det CAT3626 er en lille hyggelig I2C enhed fra ON Semiconductor. Det leveres i en 14 pin DIP pakke, som er nok det sværeste, jeg nogensinde har loddet! Hver blok er adskilt fra sin nabo med ca 100 mikrometer! For at gøre tingene endnu vanskeligere at der er en grund pad lige i midten for at synke varmen væk. Virkelig bør du få nogle form for breakout bord eller reflow det, men det ville være kedeligt! Her er et billede af enheden, før lodning:

... Og her er det færdige produkt! LED er 10mm diffus med en fælles anode og en maksimal strømstyrke på 20 mA per kanal. Så snart jeg havde loddet ledningerne til CAT3626 jeg limet det til bestyrelsen med epoxy, gevind ledningerne gennem hullerne og derefter limet dem ned med mere epoxy. Efter at jeg indså, at jeg havde glemt, hvor ben 1 var gået, så jeg var nødt til at skrabe limen væk fra toppen af ​​chip!

Wiren, der kommer gennem hullet i midten af ​​billedet er loddet til CAT3626 og virker som en rå varmedræn. I praksis synes at fungere godt nok, selvom jeg nok burde have brugt kobber. Jeg trak keramik fra en gammel projektor jeg havde liggende. Ikke den fine job, men det virker fint!

Efter jeg havde bygget, at jeg har testet det hurtigt med I2C værktøjer og derefter skrev en kerne driver. Det CAT3626 tillader maksimalt 32 mA per kanal reguleres i trin på 0,5 mA. Desværre fordi min LED kan tage op til 20 mA per kanal jeg kan kun generere ~~~HEAD=NNS 64.000 farver. For at gøre ondt værre lysstyrken ikke er i almindelighed en lineær funktion af input nuværende, så de opnåelige fade sekvenser ikke er så rart som dem gjort med PWM, men de ser stadig ret godt. Her er en video!


YouTube DirektCAT3626 RGB LED Driver

Tags: , Kategorier: Uncategorized Tags: og

Qt Embedded 4.6.0 + Qwt + kxps5 accelerometer!

28 comments Februar 14, 2010 28 kommentarer

Efter at have testet driften af ​​kxps5 accelerometer med I2C-værktøjer, jeg skrev en test applikation vha. I2C-dev-interface. Hvis du ønsker at teste din kode, før du skriver en kerne driver det er helt sikkert et godt sted at starte. Når jeg havde den konfiguration registrerer indstillet korrekt, og jeg havde en rutine for at læse acceleration vektorerne jeg strippet ned en ds1621 kernedriver til et absolut minimum, og derefter byggede det op igen til at arbejde med kxps5. Jeg så bitbaked den kxps5 driveren som en kerne modul, sammen med hwmon og det virker perfekt! :) Næste Jeg krydser udarbejdet qwt 5.2.0 og plottet accelerationen som funktion af tiden. Videoen nedenfor er taget med antialias linier, som hæmmer det opdateringshastigheden, men gør dem ser godt ud. Hvis du plotte det uden dette aktiveret det kører meget glat. Her ser du kxps5 kører uden et eksternt lavpasfilter (det indbyggede filter er 1kHz), og på trods af dette output er temmelig stabil. Hvad der imponerer mig mest, er følsomheden. Når den placeres på et skrivebord det frie fald interrupt indikatoren lyser op, hvis du taber en af ​​de små nødder fra friendlyarm LCD cirka 10 cm væk fra enheden!


YouTube Direkthttp :/ / www.youtube.com/watch?v=j5FQmKPqhwg

Tags: , , , , Kategorier: Å , KXPS5 , mini2440 , Qt og QWT Tags: og og , ,

Bitbaking kernen, Ångstrøm og Qt4-indlejret på én gang

101 comments 18. november, 2009 101 kommentarer

Det er, hvad jeg skulle have gjort for at begynde med! Instruktionerne er meget lig tidligere, undtagen denne gang har vi klone den rigtige git repository!

På en frisk kopi af Fedora 11 jeg opdaterede systemet og installerede pakker Reccommended af OE:

yum install python m4 make wget curl ftp cvs subversion tar bzip2 gzip unzip su-c "yum install python m4 gøre wget curl ftp cvs undergravende tar bzip2 gzip unzip
python-psyco perl texinfo texi2html diffstat openjade docbook-style-DSSSL
docbook-style-xsl docbook-DTD'er docbook-utils sed bison bc glibc-devel glibc-statisk
quilt groff linuxdoc-tools patch linuxdoc-tools gcc binutils pcre pcre-devel git quilt Groff linuxdoc-værktøjer patch linuxdoc-værktøjer
gcc-c + + help2man perl-ExtUtils-MakeMaker "

Jeg lavede så en mappe der hedder OE i mit hjem mappe og git klonet mini2440 repo:

cd ~

mkdir OE

cd OE

repo.or.cz / openembedded / mini2440.git openembedded git klon git: / / repo.or.cz / openembedded / mini2440.git openembedded

Jeg så opsætte source-me.txt svarende til før:

gedit source-me.txt

Jeg sætter følgende i:

= "/home/doug/OE" eksport OETREE = "/ home / Doug / OE"

/ : ${OETREE} / openembedded / BBPATH = $ {OETREE} /: $ {OETREE} / openembedded /

for Ångström echo Opsætning dev env for Ångström

-z ${ORG_PATH} ] ; then hvis [-z $ {ORG_PATH}]; derefter
ORG_PATH = $ {PATH}
eksport ORG_PATH
fi

-z ${ORG_LD_LIBRARY_PATH} ] ; then hvis [-z $ {ORG_LD_LIBRARY_PATH}]; derefter
ORG_LD_LIBRARY_PATH = $ {LD_LIBRARY_PATH}
eksport ORG_LD_LIBRARY_PATH
fi

/ openembedded / bitbake / bin: ${ORG_PATH} PATH = $ {OETREE} / openembedded / bitbake / bin: $ {ORG_PATH}

LD_LIBRARY_PATH =
export PATH LD_LIBRARY_PATH BBPATH
=C export LANG = C
= "MACHINE DISTRO OETREE ANGSTROM_MODE ANGSTROMLIBC LIBC" eksport BB_ENV_EXTRAWHITE = "MACHINE distro OETREE ANGSTROM_MODE ANGSTROMLIBC libc"

'sysctl vm.mmap_min_addr=0' su-c 'sysctl vm.mmap_min_addr = 0'

echo "Altered miljø for OE udvikling"

Nu er alt hvad du behøver gøre er at opsætte local.conf. Du skal blot redigere eksempel og kopiere det til det rigtige sted:

cd openembedded
gedit mini2440_local_conf_example.conf

Læs denne fil og redigere efter behov. Jeg har vedlagt mine som et eksempel. Nu kopiere det til conf / local.conf

local.conf cp mini2440_local_conf_example.conf conf / local.conf

Hvis du ønsker Qt4-integreret eller enhver anden pakke indgår i opbygningen blot redigere opskriften på:

images / mini2440-image.bb openembedded / opskrifter / images / mini2440-image.bb

Jeg har tilføjet Qt4-indlejret:

# Ångstrøm bootstrap billede

IMAGE_PREPROCESS_COMMAND = "create_etc_timestamp"

ANGSTROM_EXTRA_INSTALL? = ""

AFHÆNGER = "opgave-base-udvidet
psplash-zap
esekeyd u-boot-utils tslib
I2C-værktøjer I2C skærmen rsync nfs-utils
directfb gdbserver directfb MTD-utils
"

IMAGE_INSTALL = "opgave-base-udvidet
$ {ANGSTROM_EXTRA_INSTALL}
psplash-zap Qt4-embedded
esekeyd u-boot-utils tslib-kalibrere tslib-test
I2C-værktøjer I2C screen rsync nfs-utils-klient
directfb gdbserver directfb MTD-utils
rsvg Pango
"

eksportere IMAGE_BASENAME = "mini2440-image"
IMAGE_LINGUAS = ""

arve billede

Så alt hvad du skal gøre, er kilde scriptet fra hvor du udtrykker det:

source source-me.txt

og kør bitbake:

bitbake mini2440-image

fra ~ / OE / openembedded / bibliotek ..

Hvis du får en fejl under forsøg på at opbygge en pakke prøve at rense det:

bitbake-c ren INSERTPACKAGENAME

Så prøv og opbygge billedet igen. Måske vil du ikke have dette problem. Jeg tror det er enten fordi checksum parser undladt at bygge eller min hdd er dodgy. Det kun sket én gang om binutils, men virkede fint efter rengøring.

Et par timer senere, hvis alt går vel, skal du have billeder i:

oetmp / deploy / glibc / images / mini2440 / ~ / OE / oetmp / deploy / glibc / images / mini2440 /

Naturligvis denne mappe afhænger af, hvad du indstille i local.conf.

Held og lykke!

Nyt hardware!

4 comments November 2, 2009 4 kommentarer

Efter at bryde z-aksen forbindelse på min første enhed, bestilte jeg en ny KXPS5 accelerometer fra crodnet på ebay. Jeg virkelig anbefale denne sælger, han er meget billigt og sender tingene hurtigt.

Jeg hurtigt slået sammen et kredsløb på veroboard og hægtes op i bunden af ​​en transistor til frit fald / bevægelse interrupt pin til at kontrollere det var i orden. Det er bemærkelsesværdigt følsom, LED svip på hvis jeg taber min pen i den ene ende af mit skrivebord, når enheden er i den anden! Jeg var meget tilfreds, at alt fungerer godt, så jeg hooked op til I2C bussen ved hjælp af kabel sæt venligst leveret af www.andahammer.com. Brug I2C værktøjer, jeg var i stand til at sætte registrene og læse acceleration vektorer uden problemer, så jeg er temmelig sikker på at alt fungerer godt. Jeg var en smule bekymret over bussen kapacitet i første omgang.

DSC_0069

DSC_0068

Det viser sig, at jeg stadig kan bruge den gamle enhed, hvis jeg stole på det indre lavpasfilter. Jeg tænkte på at gøre dette alligevel, og ved hjælp af et Kalman-filter til at behandle output. Først jeg nødt til at skrive en device driver, så jeg hurtigt har der forsøger at lære C. Indtil videre har jeg fået et meget grundlæggende kerne modul op og køre på mini2440 :)

Mini2440 kabelsæt og lodning LGA14!

Den meget venlige mennesker på www.andahammer.com var generøs nok til at sende mig en mini2440 kabel sæt! Dette vil være meget lettere end at hakke op 2,5 "IDE-stik! Sættet har alle de forbindelser, du nogensinde kunne brug for, og vil helt sikkert gøre tingene meget lettere!

DSCF1279-1-1

Efter få DS1621 termometeret arbejder på I2C bussen jeg nu på planen om tilslutning noget mere kompliceret og meget små! De vil sandsynligvis ikke anbefale det i databladet, men du kan lodde LGA14 med en almindelig jern og nogle emaljeret wire. Mit første forsøg, er nedenfor. Desværre Jeg startede med meget tykkere tråd, som efterfølgende trak en pude slukket, men tyndere 0,15 ting er forholdsvis let. Kontrol af forbindelser med et multimeter afslørede ingen kortslutninger.

DSCF1281-1-1

Planen er at prøve dette igen med den samme enhed (uden at bryde det!) Og derefter lod det til nogle veroboard som jeg vil tilslutte den ene af mine nye kabler :)

Tags: Kategorier: Uncategorized Tags:

Kompilering af kerne med DS1621 støtte

Efter at have bygget den temperaturfølende I2C kreds I indsendt om, før jeg kompileret en kerne til mini2440 som støttede DS1621 temperaturføler. Takket være den eksisterende Kerneunderstøttelse det var bemærkelsesværdigt nemt.

Alt hvad jeg skulle gøre, var at redigere / mini2440_defconfig i ... / kernel/mini2440/arch/arm/configs og ændring af linje 1039 til:

CONFIG_SENSORS_DS1621 = y

Jeg har kompileret kernen ved hjælp af script i indsendt her afbryde processen efter GIT kloner til at ændre den linje ovenfor, og derefter gør det muligt at fortsætte. Jeg så opstartet mini2440 og sensormodulet var umiddelbart tilgængelige under:

devices / platform / s3c2440-i2c / i2c-adapter / i2c- 0 / 0 -0048 / Sys / devices / platform / s3c2440-I2C / I2C-adapter / I2C-0/0 -0048

I denne mappe har du følgende:

sys / devices / platform / s3c2440-i2c / i2c-adapter / i2c- 0 / 0 -0048 # ls root @ mini2440: / sys / devices / platform / s3c2440-I2C / I2C-adapter / I2C-0/0 -0048 # ls
alarmer navn temp1_max uevent
driver el temp1_max_alarm
hwmon Delsystemet temp1_min
modalias temp1_input temp1_min_alarm

Den output på DS1621 styres af temp1_min og temp1_max tærskler. Som standard går højt, når temp1_input <temp1_min. Du kan se temperaturen ved at læse temp1_input og du kan justere temp1_min og temp1_max af ekko minimumsantallet til filen, for eksempel:

sys / devices / platform / s3c2440-i2c / i2c-adapter / i2c- 0 / 0 -0048 # cat temp1_input root @ mini2440: / sys / devices / platform / s3c2440-I2C / I2C-adapter / I2C-0/0 -0048 # cat temp1_input
26500
& gt; temp1_min echo 27000 & gt; temp1_min

I denne konfiguration det DS1621 output er høj og driver basen af ​​mit transistor som tænder på en LED. Så snart jeg opvarme sensoren temperaturen går over temp1_min LED slukker.

Selvom jeg har ingen formål, for dette kredsløb det tjener som et proof of concept til installation I2C enheder på mini2440.

Her er et andet billede med magt lys på, men output fra:

DSC_0052

SMD om veroboard var aldrig meningen, at se godt ud!

Tags: , Kategorier: Uncategorized Tags: og

Styring af mini2440 systemet lysdioder og EEPROM

Dette er temmelig trivielt, men jeg tænkte jeg ville poste det bare incase. Hjælp af mini2440 kernen ved BusError systemets lysdioderne er registreret under / sys/devices/platform/s3c24xxled.X, hvor X er det LED nummeret. LED 1-4 er placeret på systemkortet og LED 5 er baggrundsbelysningen. For at kontrollere de enheder, du kan gøre følgende:

cd / sys/devices/platform/s3c24xx_led.5/leds/backlight

echo 0> lysstyrke # slukkes lyset

echo 255> lysstyrke # tænder baggrundsbelysningen på

Du kan også vælge fra en af ​​de tilgængelige udløser, f.eks ..

root @ mini2440 :/ sys/devices/platform/s3c24xx_led.5/leds/backlight # cat trigger
Ingen NAND-disk mmc0 timer hjerteslag [baggrundslys] GPIO standard-on
root @ mini2440 :/ sys/devices/platform/s3c24xx_led.5/leds/backlight # echo hjerteslag> trigger

Vil gøre din baggrundsbelysning flash tænde og slukke som en sindssyg!

Desværre er der ingen PWM-kontrol til at styre lysstyrken. Dette ville have været rigtig rart.

Den EEPROM kan styres på en lignende måde. Du kan få adgang til det:

/ Sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0050

Data kan skrives ved hjælp af følgende kommando:

echo hvad du vil> EEPROM

Den blot gøre følgende for at læse hukommelsen:

kat EEPROM

Tags: Kategorier: Uncategorized Tags:

Probning af mini2440 I2C-bussen

6 comments 15 september 2009 6 kommentarer

Jeg er forholdsvis ny til elektronik, og jeg har helt sikkert aldrig brugt I2C før, så jeg byggede et simpelt kredsløb baseret på en DS1621 I2C termometer som en test. Jeg fik denne for et par pounds fra sælgerens crodnet 'på ebay.

Jeg fandt en gammel 2,5 "laptop drev stik, som ikke var stor nok til at passe på CON5 så jeg hakkede det op og læg det på kameraet interface. I kablet op SDA og SCL linier sammen med 3,3 og GND til veroboard. Jeg har også loddet et par lysdioder, én for beføjelsen lyset og den anden kablede op gennem en transistor med basen sluttet til termostaten udgang på DS1621. Denne stift kan programmeres til at gå høj ved en bestemt temperatur.

Jeg så tilsluttet det i og drevet op mini2440. Kørsel i2cdetect viste en ny enhed på 0 × 48. De øvrige enheder er den indbyggede EEPROM. Ser på dataarket for den DS1621 kan temperaturen læses fra placeringen 0xAA. Jeg var i stand til at observere temperaturen i hex gennem i2cget. Konvertering output 0 × 0016 til decimal giver 22,0 grader. Sensoren er temmelig pæn, det reagerer næsten øjeblikkeligt på tilstedeværelsen af ​​din finger.

Nedenfor er de I2C kommandoer jeg brugte. Jeg installerede I2C værktøj med opkg.

root @ mini2440: ~ # i2cdetect-l
I2C-0 I2C s3c2410-I2C I2C adapter

root @ mini2440: ~ # i2cdetect s3c2410-I2C
ADVARSEL! Dette program kan forvirre din I2C bus, medføre tab af data og værre!
dev / i2c- 0 . Jeg vil undersøge file / dev / I2C-0.
Jeg vil undersøge adressen række 0x03-0x77.
n ] Y Fortsæt? [Y / n] Y
0 1 2 3 4 5 6 7 8 9 A B C D E F
00: --------------------------
10: --------------------------------
20: --------------------------------
30: --------------------------------
48 -- -- -- -- -- -- -- 40: ---------------- 48 --------------
50: UU UU UU UU ------------------------
60: --------------------------------
70: ----------------

--interval = 1 i2cget -y s3c2410-i2c 0x48 0xAA w root @ mini2440: ~ # watch - interval = 1 i2cget-y s3c2410-I2C 0x48 0xAA w

Tue Sep 15 23 : 31 : 25 2009 Hver 1.0s: i2cget-y s3c2410-I2C 0x48 0xAA w Tue Sep 15 23: 31: 25 2009
0x0016

Nedenfor er et billede af enheden .. det ligner en ret rodet, men det virker fantastisk!

DSC_0032

Den næste fase er kompilere driveren fra lmsensors pakken ...

Tags: Kategorier: Uncategorized Tags: