User:JanosA: Difference between revisions

From ArmadeusWiki
(RS-485 moved to main Wiki Tree)
(OneWire moved to main Wiki Tree)
 
Line 4: Line 4:
My hobby is programming embedded systems and creating my own small electronic boards.
My hobby is programming embedded systems and creating my own small electronic boards.


=== Skills ===
== Skills ==
* Assembly programming: PIC 8bit family
* Assembly programming: PIC 8bit family
* C programming: PIC 8bit / PIC32MX family, Linux
* C programming: PIC 8bit / PIC32MX family, Linux
Line 12: Line 12:
* IP networking
* IP networking


=== My ArmadeuS plans (APF28 based) ===
== My ArmadeuS plans (APF28 based) ==
* Creating an universal home automation hardware for my friends, with easy programming in perl or PHP. :)
* Creating an universal home automation hardware for my friends, with easy programming in perl or PHP. :)
* Datacenter temperature monitoring, with RS-485 and OneWire communications.
* Datacenter temperature monitoring, with RS-485 and OneWire communications.
* Data logger for Saia Sbus based intelligent power meters.
* Data logger for Saia Sbus based intelligent power meters.


 
== My works comitted to ArmadeuS project ==
 
* [[RS-485]] for APF28/iMX28 mxs-auart and busybox stty patch
== RS-485 ==
* [[OneWire GPIO bus Master]] for APF28DEV
Informations and mini HOWTOs for my APF28/iMX28 mxs-auart and busybox stty patches moved to the main Wiki tree: [[RS-485]]
 
 
 
== OneWire ==
Informations and mini HOWTOs for my APF28DEV OneWire patch.
 
 
=== Software installation ===
* Recompile your Linux kernel with OneWire GPIO bus master (and some slave device) support.
<pre class="host">
$ make linux-menuconfig
</pre>
<pre class="config">
Device Drivers  --->
    <*> Dallas's 1-wire support  --->
        1-wire Bus Masters  --->
            <*> GPIO 1-wire busmaster
        1-wire Slaves  --->
            <*> Thermal family implementation
</pre>
<pre class="host">
$ make
</pre>
* Reflash your Linux kernel
 
 
=== Hardware Notes ===
* Connect the OneWire slave directly to the APF28_DEV board J9 connector:
  * Vcc 3.3V is pin 1 on J9 connector
  * DQ is pin 31 on J9 (LCD_D18 / GPIO 1_18)
  * GND is pin 39 on J9
* Add an 1.2k pullup resistor between Vcc and DQ
 
 
=== How it works ===
The OneWire bus master driver every 10 seconds scan the bus for new slave devices.
 
Each detected OneWire slave device have a sub-directory with it's unique ID in "/sys/devices/w1 bus master".
 
The sub-directory format is <2 digit family ID>-<12 digit unique ID>.
<pre class=apf>
# ls -la /sys/devices/w1\ bus\ master/
total 0
drwxr-xr-x    4 root    root            0 Jan  1 01:06 .
drwxr-xr-x    6 root    root            0 Jan  1 01:05 ..
drwxr-xr-x    3 root    root            0 Jan  1 01:06 28-000001e68904
lrwxrwxrwx    1 root    root            0 Jan  1 01:07 driver -> ../../bus/w1/drivers/w1_master_driver
drwxr-xr-x    2 root    root            0 Jan  1 01:07 power
lrwxrwxrwx    1 root    root            0 Jan  1 01:07 subsystem -> ../../bus/w1
-rw-r--r--    1 root    root          4096 Jan  1 01:07 uevent
-rw-rw-rw-    1 root    root          4096 Jan  1 01:07 w1_master_add
-r--r--r--    1 root    root          4096 Jan  1 01:07 w1_master_attempts
-r--r--r--    1 root    root          4096 Jan  1 01:07 w1_master_max_slave_count
-r--r--r--    1 root    root          4096 Jan  1 01:07 w1_master_name
-r--r--r--    1 root    root          4096 Jan  1 01:07 w1_master_pointer
-rw-rw-rw-    1 root    root          4096 Jan  1 01:07 w1_master_pullup
-rw-rw-rw-    1 root    root          4096 Jan  1 01:07 w1_master_remove
-rw-rw-rw-    1 root    root          4096 Jan  1 01:07 w1_master_search
-r--r--r--    1 root    root          4096 Jan  1 01:07 w1_master_slave_count
-r--r--r--    1 root    root          4096 Jan  1 01:07 w1_master_slaves
-r--r--r--    1 root    root          4096 Jan  1 01:07 w1_master_timeout
</pre>
You can list the detected slaves from this files:
<pre class=apf>
# cat /sys/devices/w1\ bus\ master/w1_master_slave_count
1
# cat /sys/devices/w1\ bus\ master/w1_master_slaves
28-000001e68904
</pre>
Let's read the temperature: (The 28-xxx family is a DS18B20 temperature sensor in this example.)
<pre class=apf>
# cat /sys/devices/w1\ bus\ master/28-000001e68904/w1_slave
dd 01 4b 46 7f ff 03 10 1e : crc=1e YES
dd 01 4b 46 7f ff 03 10 1e t=29812
</pre>
The t=29812 means, the temperature is: 29.812°C

Latest revision as of 15:39, 19 May 2013

About Me

I am IP Network and Datacenter engineer, currently I'm working for an Internet Service Provider in Hungary.

My hobby is programming embedded systems and creating my own small electronic boards.

Skills

  • Assembly programming: PIC 8bit family
  • C programming: PIC 8bit / PIC32MX family, Linux
  • Perl, PHP, Javascript, Html programming with MySQL
  • Linux system administration
  • RS-232/485 serial communications: Ascii, Modbus, Saia Sbus, etc.
  • IP networking

My ArmadeuS plans (APF28 based)

  • Creating an universal home automation hardware for my friends, with easy programming in perl or PHP. :)
  • Datacenter temperature monitoring, with RS-485 and OneWire communications.
  • Data logger for Saia Sbus based intelligent power meters.

My works comitted to ArmadeuS project