https://elinux.org/api.php?action=feedcontributions&user=Davydotcom&feedformat=atomeLinux.org - User contributions [en]2024-03-28T19:38:28ZUser contributionsMediaWiki 1.31.0https://elinux.org/index.php?title=Drink_Mixer&diff=16066Drink Mixer2010-01-08T17:01:58Z<p>Davydotcom: /* Drink Mixer (Audio Mixer) */</p>
<hr />
<div>==Drink Mixer (Audio Mixer) ==<br />
<br />
The Drink Mixer is a 6-8 Channel Audio Mixer with a peripheral interface operated by the Tin Can Tools Hammer. This was a Senior Design Project presented for Purdue University's Senior Design Class ECE 477. In order to pass this class at least 3 of 5 project success criteria must be completed. <br />
<br />
'''Project Success Criteria:<br/>'''<br />
*1. An ability to mix and adjust levels of 6-8 Channels of Audio<br />
*2. An ability to change individual equalizer settings for each channel.<br />
*3. An ability to display settings/ channel information on an LCD Display.<br />
*4. An ability to save and load scene settings (moving faders)<br />
*5. An ability to display the amplitude of an audio output signal.<br />
<br />
Of the above project success criteria, currently 2,3, and 4 are completed with the help of the Hammer ARM920T Chip.<br />
<br />
More information and pictures will be added to this later but for now a link to the Purdue University Senior Design Project Page for this project can be found below.<br />
<br />
[https://engineering.purdue.edu/ece477/Webs/F09-Grp02 Purdue ECE477 Team 2 Project Page]<br />
<br />
==Hardware==<br />
<br />
The Hammer is not capable of processing audio at rates necessary for this project with all of the floating point calculations involved. As a result several processors were used<br />
<br />
1 - ADSP-21262 SHARC DSP<br />
10 - AVR ATMEGA32A<br />
<br />
<br />
The ATMEGA32A were used as peripheral processors that kept track of motorized faders as well as Rotary Pulse Generators (RPGS) and LED Bar graphs. These processors were all placed on an i2c bus and monitored and updated several times / second by the Hammer S3C2410A ARM920T Processor.<br />
<br />
The information acquired by the Hammer from the various peripherals as well as the user interface are then sent to a SHARC ADSP-21262 over an SPI bus. This information is processed and audio levels are adjusted accordingly. (Currently the audio portion of the project is incomplete as too much crosstalk is occurring on the A/D Data line).<br />
==Power Requirements==<br />
'''Power Rails'''<br />
+-15V @ 320 mA each direction <br><br />
+9 V @ 8.8 A <br><br />
+5 V @ 1224 mA <br><br />
+3.3 V @ 2.5 A <br><br />
(NOT a power rail, but must be considered...)<br><br />
+1.3V @ 160 mA for DSP<br />
<br />
'''Total Power Consumption'''<br />
3.84 Watts + 20% = 4.6 Watts Needed in positive 12VDC <br><br />
3.84 Watts + 20% = 4.6 Watts Needed in negative 12VDC <br><br />
This is 383 mA @ 12 Vdc <br><br />
<br><br />
88 Watts + 20% = 105.6 Watts Needed in positive 10VDC (using switching power supply)<br><br />
This is 10.56 A @ 9 Vdc <br><br />
<br><br />
6.12 + 8.25 + 0.352 + extra = 14.722 Watts + 20% = 17.66 Watts Needed in positive 5VDC (linear, then step-down converted to lower voltages)<br><br />
This is 3.53 A @ 5 Vdc<br />
<br />
<br />
'''LCD Display (Panasonic EDMGRB8KJF)'''<br />
1.5 AMP 3.3V Max<br />
<br />
'''JFET Preamplifier'''<br />
40mA x 8 = 320 mA @ +-15V (in each direction)<br />
<br />
'''Motorized K-Faders'''<br />
800 mA x 11 = 8.8 A @ 9V<br />
<br />
'''Hammer Arm9'''<br />
5VDC @ 120 mA (typical), 300 mA (max)<br />
<br />
Atmel (ATMEGA32A)<br />
Vcc = 5Vdc, Active @ 8MHz: Max = 15 mA <br><br />
Vcc = 5Vdc, Active @ 16MHz: Max(estimated)< 40 mA each<br><br />
<br><br />
<br />
Therefore, total = 9 x 40mA = 360 mA @ 5Vdc<br />
<br />
'''SHARC (Analog Devices ADSP-21262)'''<br />
External (I/O) Supply Voltage (VDDEXT) 3.13 to 3.47 V (optimally 3.3 VDC) @ 1A<br><br />
Requires low voltage (approx. 1.3V for something else)<br />
<br />
'''LED Bar Graph'''<br />
2 mA per LED x 10 = 20 mA per graph x 8 = 160 mA @ 2.2 V (just for current draw, voltage rail will be done on channel PCB)<br />
<br />
'''LED Level Display'''<br />
5 mA per LED x 40 = 200 mA @ 5V<br />
<br />
'''Audio ADC (AD1871 x4)'''<br />
5Vdc @ 45mA each = 180mA @ 5Vdc<br />
<br />
'''Audio DAC (AD1833A)'''<br />
5Vdc @ 46mA each = 184mA @ 5Vdc<br />
==Pictures==<br />
[[File:DrinkMixer-Hammer.jpg]]<br/><br />
This is a picture of the hammer running on the main board.<br/><br />
[[File:DrinkMixer-inside.jpg]]<br/><br />
This is an inside view of the DrinkMixer (Audio Mixer Board). It's getting to be quite a lot of wires. This is mainly due to our PCB restriction of a maximum of 60 square inches per PCB.<br/><br />
<br />
==Useful Resources==<br />
Throughout the development cycle of this project many resources were utilized from this site as well as improved upon and/or updated.<br />
<br />
*[[Hammer LCD 8bit Color STN| 8-Bit Color STN HowTo Page]]<br />
*[[Hammer_How_to_JFFS2_Root|How to use JFFS2 Flash]] for the root partition on [[Hammer_Board]]<br />
* [[Hammer_Board_Software_System|Bootloader, Kernel, Patches, Buildroot..]]</div>Davydotcomhttps://elinux.org/index.php?title=Drink_Mixer&diff=15728Drink Mixer2009-12-15T03:36:37Z<p>Davydotcom: </p>
<hr />
<div>==Drink Mixer (Audio Mixer) ==<br />
<br />
The Drink Mixer is a 6-8 Channel Audio Mixer with a peripheral interface operated by the Tin Can Tools Hammer. This was a Senior Design Project presented for Purdue University's Senior Design Class ECE 477. In order to pass this class at least 3 of 5 project success criteria must be completed. <br />
<br />
'''Project Success Criteria:<br/>'''<br />
*1. An ability to mix and adjust levels of 6-8 Channels of Audio<br />
*2. An ability to change individual equalizer settings for each channel.<br />
*3. An ability to display settings/ channel information on an LCD Display.<br />
*4. An ability to save and load scene settings (moving faders)<br />
*5. An ability to display the amplitude of an audio output signal.<br />
<br />
Of the above project success criteria, currently 2,3, and 4 are completed with the help of the Hammer ARM920T Chip.<br />
<br />
More information and pictures will be added to this later but for now a link to the Purdue University Senior Design Project Page for this project can be found below.<br />
<br />
[https://engineering.purdue.edu/477grp2/ Purdue ECE477 Team 2 Project Page]<br />
<br />
==Hardware==<br />
<br />
The Hammer is not capable of processing audio at rates necessary for this project with all of the floating point calculations involved. As a result several processors were used<br />
<br />
1 - ADSP-21262 SHARC DSP<br />
10 - AVR ATMEGA32A<br />
<br />
<br />
The ATMEGA32A were used as peripheral processors that kept track of motorized faders as well as Rotary Pulse Generators (RPGS) and LED Bar graphs. These processors were all placed on an i2c bus and monitored and updated several times / second by the Hammer S3C2410A ARM920T Processor.<br />
<br />
The information acquired by the Hammer from the various peripherals as well as the user interface are then sent to a SHARC ADSP-21262 over an SPI bus. This information is processed and audio levels are adjusted accordingly. (Currently the audio portion of the project is incomplete as too much crosstalk is occurring on the A/D Data line).<br />
==Power Requirements==<br />
'''Power Rails'''<br />
+-15V @ 320 mA each direction <br><br />
+9 V @ 8.8 A <br><br />
+5 V @ 1224 mA <br><br />
+3.3 V @ 2.5 A <br><br />
(NOT a power rail, but must be considered...)<br><br />
+1.3V @ 160 mA for DSP<br />
<br />
'''Total Power Consumption'''<br />
3.84 Watts + 20% = 4.6 Watts Needed in positive 12VDC <br><br />
3.84 Watts + 20% = 4.6 Watts Needed in negative 12VDC <br><br />
This is 383 mA @ 12 Vdc <br><br />
<br><br />
88 Watts + 20% = 105.6 Watts Needed in positive 10VDC (using switching power supply)<br><br />
This is 10.56 A @ 9 Vdc <br><br />
<br><br />
6.12 + 8.25 + 0.352 + extra = 14.722 Watts + 20% = 17.66 Watts Needed in positive 5VDC (linear, then step-down converted to lower voltages)<br><br />
This is 3.53 A @ 5 Vdc<br />
<br />
<br />
'''LCD Display (Panasonic EDMGRB8KJF)'''<br />
1.5 AMP 3.3V Max<br />
<br />
'''JFET Preamplifier'''<br />
40mA x 8 = 320 mA @ +-15V (in each direction)<br />
<br />
'''Motorized K-Faders'''<br />
800 mA x 11 = 8.8 A @ 9V<br />
<br />
'''Hammer Arm9'''<br />
5VDC @ 120 mA (typical), 300 mA (max)<br />
<br />
Atmel (ATMEGA32A)<br />
Vcc = 5Vdc, Active @ 8MHz: Max = 15 mA <br><br />
Vcc = 5Vdc, Active @ 16MHz: Max(estimated)< 40 mA each<br><br />
<br><br />
<br />
Therefore, total = 9 x 40mA = 360 mA @ 5Vdc<br />
<br />
'''SHARC (Analog Devices ADSP-21262)'''<br />
External (I/O) Supply Voltage (VDDEXT) 3.13 to 3.47 V (optimally 3.3 VDC) @ 1A<br><br />
Requires low voltage (approx. 1.3V for something else)<br />
<br />
'''LED Bar Graph'''<br />
2 mA per LED x 10 = 20 mA per graph x 8 = 160 mA @ 2.2 V (just for current draw, voltage rail will be done on channel PCB)<br />
<br />
'''LED Level Display'''<br />
5 mA per LED x 40 = 200 mA @ 5V<br />
<br />
'''Audio ADC (AD1871 x4)'''<br />
5Vdc @ 45mA each = 180mA @ 5Vdc<br />
<br />
'''Audio DAC (AD1833A)'''<br />
5Vdc @ 46mA each = 184mA @ 5Vdc<br />
==Pictures==<br />
[[File:DrinkMixer-Hammer.jpg]]<br/><br />
This is a picture of the hammer running on the main board.<br/><br />
[[File:DrinkMixer-inside.jpg]]<br/><br />
This is an inside view of the DrinkMixer (Audio Mixer Board). It's getting to be quite a lot of wires. This is mainly due to our PCB restriction of a maximum of 60 square inches per PCB.<br/><br />
<br />
==Useful Resources==<br />
Throughout the development cycle of this project many resources were utilized from this site as well as improved upon and/or updated.<br />
<br />
*[[Hammer LCD 8bit Color STN| 8-Bit Color STN HowTo Page]]<br />
*[[Hammer_How_to_JFFS2_Root|How to use JFFS2 Flash]] for the root partition on [[Hammer_Board]]<br />
* [[Hammer_Board_Software_System|Bootloader, Kernel, Patches, Buildroot..]]</div>Davydotcomhttps://elinux.org/index.php?title=Drink_Mixer&diff=15727Drink Mixer2009-12-15T03:35:44Z<p>Davydotcom: </p>
<hr />
<div>==Drink Mixer (Audio Mixer) ==<br />
<br />
The Drink Mixer is a 6-8 Channel Audio Mixer with a peripheral interface operated by the Tin Can Tools Hammer. This was a Senior Design Project presented for Purdue University's Senior Design Class ECE 477. In order to pass this class at least 3 of 5 project success criteria must be completed. <br />
<br />
'''Project Success Criteria:<br/>'''<br />
*1. An ability to mix and adjust levels of 6-8 Channels of Audio<br />
*2. An ability to change individual equalizer settings for each channel.<br />
*3. An ability to display settings/ channel information on an LCD Display.<br />
*4. An ability to save and load scene settings (moving faders)<br />
*5. An ability to display the amplitude of an audio output signal.<br />
<br />
Of the above project success criteria, currently 2,3, and 4 are completed with the help of the Hammer ARM920T Chip.<br />
<br />
More information and pictures will be added to this later but for now a link to the Purdue University Senior Design Project Page for this project can be found below.<br />
<br />
[https://engineering.purdue.edu/477grp2/ Purdue ECE477 Team 2 Project Page]<br />
<br />
==Hardware==<br />
<br />
The Hammer is not capable of processing audio at rates necessary for this project with all of the floating point calculations involved. As a result several processors were used<br />
<br />
1 - ADSP-21262 SHARC DSP<br />
10 - AVR ATMEGA32A<br />
<br />
<br />
The ATMEGA32A were used as peripheral processors that kept track of motorized faders as well as Rotary Pulse Generators (RPGS) and LED Bar graphs. These processors were all placed on an i2c bus and monitored and updated several times / second by the Hammer S3C2410A ARM920T Processor.<br />
<br />
The information acquired by the Hammer from the various peripherals as well as the user interface are then sent to a SHARC ADSP-21262 over an SPI bus. This information is processed and audio levels are adjusted accordingly. (Currently the audio portion of the project is incomplete as too much crosstalk is occurring on the A/D Data line).<br />
==Power Requirements==<br />
'''Power Rails'''<br />
+-15V @ 320 mA each direction <br><br />
+9 V @ 8.8 A <br><br />
+5 V @ 1224 mA <br><br />
+3.3 V @ 2.5 A <br><br />
(NOT a power rail, but must be considered...)<br><br />
+1.3V @ 160 mA for DSP<br />
<br />
'''Total Power Consumption'''<br />
3.84 Watts + 20% = 4.6 Watts Needed in positive 12VDC <br><br />
3.84 Watts + 20% = 4.6 Watts Needed in negative 12VDC <br><br />
This is 383 mA @ 12 Vdc <br><br />
<br><br />
88 Watts + 20% = 105.6 Watts Needed in positive 10VDC (using switching power supply)<br><br />
This is 10.56 A @ 9 Vdc <br><br />
<br><br />
6.12 + 8.25 + 0.352 + extra = 14.722 Watts + 20% = 17.66 Watts Needed in positive 5VDC (linear, then step-down converted to lower voltages)<br><br />
This is 3.53 A @ 5 Vdc<br />
<br />
<br />
'''LCD Display (Panasonic EDMGRB8KJF)'''<br />
1.5 AMP 3.3V Max<br />
<br />
'''JFET Preamplifier'''<br />
40mA x 8 = 320 mA @ +-15V (in each direction)<br />
<br />
'''Motorized K-Faders'''<br />
800 mA x 11 = 8.8 A @ 9V<br />
<br />
'''Hammer Arm9'''<br />
5VDC @ 120 mA (typical), 300 mA (max)<br />
<br />
Atmel (ATMEGA32A)<br />
Vcc = 5Vdc, Active @ 8MHz: Max = 15 mA <br><br />
Vcc = 5Vdc, Active @ 16MHz: Max(estimated)< 40 mA each<br><br />
<br><br />
<br />
Therefore, total = 9 x 40mA = 360 mA @ 5Vdc<br />
<br />
'''SHARC (Analog Devices ADSP-21262)'''<br />
External (I/O) Supply Voltage (VDDEXT) 3.13 to 3.47 V (optimally 3.3 VDC) @ 1A<br><br />
Requires low voltage (approx. 1.3V for something else)<br />
<br />
'''LED Bar Graph'''<br />
2 mA per LED x 10 = 20 mA per graph x 8 = 160 mA @ 2.2 V (just for current draw, voltage rail will be done on channel PCB)<br />
<br />
LED Level Display<br />
=================<br />
5 mA per LED x 40 = 200 mA @ 5V<br />
<br />
ATD<br />
===<br />
5Vdc @ 45mA each = 180mA @ 5Vdc<br />
<br />
DTA<br />
===<br />
5Vdc @ 46mA each = 184mA @ 5Vdc<br />
==Pictures==<br />
[[File:DrinkMixer-Hammer.jpg]]<br/><br />
This is a picture of the hammer running on the main board.<br/><br />
[[File:DrinkMixer-inside.jpg]]<br/><br />
This is an inside view of the DrinkMixer (Audio Mixer Board). It's getting to be quite a lot of wires. This is mainly due to our PCB restriction of a maximum of 60 square inches per PCB.<br/><br />
<br />
==Useful Resources==<br />
Throughout the development cycle of this project many resources were utilized from this site as well as improved upon and/or updated.<br />
<br />
*[[Hammer LCD 8bit Color STN| 8-Bit Color STN HowTo Page]]<br />
*[[Hammer_How_to_JFFS2_Root|How to use JFFS2 Flash]] for the root partition on [[Hammer_Board]]<br />
* [[Hammer_Board_Software_System|Bootloader, Kernel, Patches, Buildroot..]]</div>Davydotcomhttps://elinux.org/index.php?title=Drink_Mixer&diff=15726Drink Mixer2009-12-15T03:30:02Z<p>Davydotcom: </p>
<hr />
<div>==Drink Mixer (Audio Mixer) ==<br />
<br />
The Drink Mixer is a 6-8 Channel Audio Mixer with a peripheral interface operated by the Tin Can Tools Hammer. This was a Senior Design Project presented for Purdue University's Senior Design Class ECE 477. In order to pass this class at least 3 of 5 project success criteria must be completed. <br />
<br />
'''Project Success Criteria:<br/>'''<br />
*1. An ability to mix and adjust levels of 6-8 Channels of Audio<br />
*2. An ability to change individual equalizer settings for each channel.<br />
*3. An ability to display settings/ channel information on an LCD Display.<br />
*4. An ability to save and load scene settings (moving faders)<br />
*5. An ability to display the amplitude of an audio output signal.<br />
<br />
Of the above project success criteria, currently 2,3, and 4 are completed with the help of the Hammer ARM920T Chip.<br />
<br />
More information and pictures will be added to this later but for now a link to the Purdue University Senior Design Project Page for this project can be found below.<br />
<br />
[https://engineering.purdue.edu/477grp2/ Purdue ECE477 Team 2 Project Page]<br />
<br />
==Hardware==<br />
<br />
The Hammer is not capable of processing audio at rates necessary for this project with all of the floating point calculations involved. As a result several processors were used<br />
<br />
1 - ADSP-21262 SHARC DSP<br />
10 - AVR ATMEGA32A<br />
<br />
<br />
The ATMEGA32A were used as peripheral processors that kept track of motorized faders as well as Rotary Pulse Generators (RPGS) and LED Bar graphs. These processors were all placed on an i2c bus and monitored and updated several times / second by the Hammer S3C2410A ARM920T Processor.<br />
<br />
The information acquired by the Hammer from the various peripherals as well as the user interface are then sent to a SHARC ADSP-21262 over an SPI bus. This information is processed and audio levels are adjusted accordingly. (Currently the audio portion of the project is incomplete as too much crosstalk is occurring on the A/D Data line).<br />
<br />
==Pictures==<br />
[[File:DrinkMixer-Hammer.jpg]]<br/><br />
This is a picture of the hammer running on the main board.<br/><br />
[[File:DrinkMixer-inside.jpg]]<br/><br />
This is an inside view of the DrinkMixer (Audio Mixer Board). It's getting to be quite a lot of wires. This is mainly due to our PCB restriction of a maximum of 60 square inches per PCB.<br/><br />
<br />
==Useful Resources==<br />
Throughout the development cycle of this project many resources were utilized from this site as well as improved upon and/or updated.<br />
<br />
*[[Hammer LCD 8bit Color STN| 8-Bit Color STN HowTo Page]]<br />
*[[Hammer_How_to_JFFS2_Root|How to use JFFS2 Flash]] for the root partition on [[Hammer_Board]]<br />
* [[Hammer_Board_Software_System|Bootloader, Kernel, Patches, Buildroot..]]</div>Davydotcomhttps://elinux.org/index.php?title=Drink_Mixer&diff=15725Drink Mixer2009-12-15T03:26:02Z<p>Davydotcom: /* Drink Mixer (Audio Mixer) */</p>
<hr />
<div>==Drink Mixer (Audio Mixer) ==<br />
<br />
The Drink Mixer is a 6-8 Channel Audio Mixer with a peripheral interface operated by the Tin Can Tools Hammer. This was a Senior Design Project presented for Purdue University's Senior Design Class ECE 477. In order to pass this class at least 3 of 5 project success criteria must be completed. <br />
<br />
'''Project Success Criteria:<br/>'''<br />
*1. An ability to mix and adjust levels of 6-8 Channels of Audio<br />
*2. An ability to change individual equalizer settings for each channel.<br />
*3. An ability to display settings/ channel information on an LCD Display.<br />
*4. An ability to save and load scene settings (moving faders)<br />
*5. An ability to display the amplitude of an audio output signal.<br />
<br />
Of the above project success criteria, currently 2,3, and 4 are completed with the help of the Hammer ARM920T Chip.<br />
<br />
More information and pictures will be added to this later but for now a link to the Purdue University Senior Design Project Page for this project can be found below.<br />
<br />
[https://engineering.purdue.edu/477grp2/ Purdue ECE477 Team 2 Project Page]<br />
<br />
==Hardware==<br />
<br />
The Hammer is not capable of processing audio at rates necessary for this project with all of the floating point calculations involved. As a result several processors were used<br />
<br />
1 - ADSP-21262 SHARC DSP<br />
10 - AVR ATMEGA32A<br />
<br />
<br />
The ATMEGA32A were used as peripheral processors that kept track of motorized faders as well as Rotary Pulse Generators (RPGS) and LED Bar graphs. These processors were all placed on an i2c bus and monitored and updated several times / second by the Hammer S3C2410A ARM920T Processor.<br />
<br />
The information acquired by the Hammer from the various peripherals as well as the user interface are then sent to a SHARC ADSP-21262 over an SPI bus. This information is processed and audio levels are adjusted accordingly. (Currently the audio portion of the project is incomplete as too much crosstalk is occurring on the A/D Data line).<br />
<br />
==Pictures==<br />
[[File:DrinkMixer-Hammer.jpg]]<br/><br />
This is a picture of the hammer running on the main board.<br/><br />
[[File:DrinkMixer-inside.jpg]]<br/><br />
This is an inside view of the DrinkMixer (Audio Mixer Board). It's getting to be quite a lot of wires. This is mainly due to our PCB restriction of a maximum of 60 square inches per PCB.<br/></div>Davydotcomhttps://elinux.org/index.php?title=Drink_Mixer&diff=15724Drink Mixer2009-12-15T03:20:47Z<p>Davydotcom: /* Pictures */</p>
<hr />
<div>==Drink Mixer (Audio Mixer) ==<br />
<br />
This project was titled the Drink Mixer as a joke cause one team member wanted to make that instead of a sound mixer so we kept that as the name.<br />
<br />
More information and pictures will be added to this later but for now a link to the Purdue University Senior Design Project Page for this project can be found below.<br />
<br />
[https://engineering.purdue.edu/477grp2/ Purdue ECE477 Team 2 Project Page]<br />
<br />
<br />
==Hardware==<br />
<br />
The Hammer is not capable of processing audio at rates necessary for this project with all of the floating point calculations involved. As a result several processors were used<br />
<br />
1 - ADSP-21262 SHARC DSP<br />
10 - AVR ATMEGA32A<br />
<br />
<br />
The ATMEGA32A were used as peripheral processors that kept track of motorized faders as well as Rotary Pulse Generators (RPGS) and LED Bar graphs. These processors were all placed on an i2c bus and monitored and updated several times / second by the Hammer S3C2410A ARM920T Processor.<br />
<br />
The information acquired by the Hammer from the various peripherals as well as the user interface are then sent to a SHARC ADSP-21262 over an SPI bus. This information is processed and audio levels are adjusted accordingly. (Currently the audio portion of the project is incomplete as too much crosstalk is occurring on the A/D Data line).<br />
<br />
==Pictures==<br />
[[File:DrinkMixer-Hammer.jpg]]<br/><br />
This is a picture of the hammer running on the main board.<br/><br />
[[File:DrinkMixer-inside.jpg]]<br/><br />
This is an inside view of the DrinkMixer (Audio Mixer Board). It's getting to be quite a lot of wires. This is mainly due to our PCB restriction of a maximum of 60 square inches per PCB.<br/></div>Davydotcomhttps://elinux.org/index.php?title=File:DrinkMixer-inside.jpg&diff=15723File:DrinkMixer-inside.jpg2009-12-15T03:19:22Z<p>Davydotcom: Inside view of Drinkmixer Case</p>
<hr />
<div>Inside view of Drinkmixer Case</div>Davydotcomhttps://elinux.org/index.php?title=Drink_Mixer&diff=15722Drink Mixer2009-12-15T03:18:59Z<p>Davydotcom: /* Pictures */</p>
<hr />
<div>==Drink Mixer (Audio Mixer) ==<br />
<br />
This project was titled the Drink Mixer as a joke cause one team member wanted to make that instead of a sound mixer so we kept that as the name.<br />
<br />
More information and pictures will be added to this later but for now a link to the Purdue University Senior Design Project Page for this project can be found below.<br />
<br />
[https://engineering.purdue.edu/477grp2/ Purdue ECE477 Team 2 Project Page]<br />
<br />
<br />
==Hardware==<br />
<br />
The Hammer is not capable of processing audio at rates necessary for this project with all of the floating point calculations involved. As a result several processors were used<br />
<br />
1 - ADSP-21262 SHARC DSP<br />
10 - AVR ATMEGA32A<br />
<br />
<br />
The ATMEGA32A were used as peripheral processors that kept track of motorized faders as well as Rotary Pulse Generators (RPGS) and LED Bar graphs. These processors were all placed on an i2c bus and monitored and updated several times / second by the Hammer S3C2410A ARM920T Processor.<br />
<br />
The information acquired by the Hammer from the various peripherals as well as the user interface are then sent to a SHARC ADSP-21262 over an SPI bus. This information is processed and audio levels are adjusted accordingly. (Currently the audio portion of the project is incomplete as too much crosstalk is occurring on the A/D Data line).<br />
<br />
==Pictures==<br />
[[File:DrinkMixer-Hammer.jpg]]<br/><br />
This is a picture of the hammer running on the main board.<br />
[[File:DrinkMixer-inside.jpg]]</div>Davydotcomhttps://elinux.org/index.php?title=File:DrinkMixer-Hammer.jpg&diff=15721File:DrinkMixer-Hammer.jpg2009-12-15T03:15:36Z<p>Davydotcom: Picture of Hammer sitting on main board</p>
<hr />
<div>Picture of Hammer sitting on main board</div>Davydotcomhttps://elinux.org/index.php?title=Drink_Mixer&diff=15720Drink Mixer2009-12-15T03:14:59Z<p>Davydotcom: </p>
<hr />
<div>==Drink Mixer (Audio Mixer) ==<br />
<br />
This project was titled the Drink Mixer as a joke cause one team member wanted to make that instead of a sound mixer so we kept that as the name.<br />
<br />
More information and pictures will be added to this later but for now a link to the Purdue University Senior Design Project Page for this project can be found below.<br />
<br />
[https://engineering.purdue.edu/477grp2/ Purdue ECE477 Team 2 Project Page]<br />
<br />
<br />
==Hardware==<br />
<br />
The Hammer is not capable of processing audio at rates necessary for this project with all of the floating point calculations involved. As a result several processors were used<br />
<br />
1 - ADSP-21262 SHARC DSP<br />
10 - AVR ATMEGA32A<br />
<br />
<br />
The ATMEGA32A were used as peripheral processors that kept track of motorized faders as well as Rotary Pulse Generators (RPGS) and LED Bar graphs. These processors were all placed on an i2c bus and monitored and updated several times / second by the Hammer S3C2410A ARM920T Processor.<br />
<br />
The information acquired by the Hammer from the various peripherals as well as the user interface are then sent to a SHARC ADSP-21262 over an SPI bus. This information is processed and audio levels are adjusted accordingly. (Currently the audio portion of the project is incomplete as too much crosstalk is occurring on the A/D Data line).<br />
<br />
==Pictures==<br />
[[File:DrinkMixer-Hammer.jpg]]<br/><br />
This is a picture of the hammer running on the main board.</div>Davydotcomhttps://elinux.org/index.php?title=File:Tincantools-login.jpg&diff=15610File:Tincantools-login.jpg2009-12-08T17:25:25Z<p>Davydotcom: Picture of Hammer Login Prompt running on Panasonic LCD STN Display</p>
<hr />
<div>Picture of Hammer Login Prompt running on Panasonic LCD STN Display</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_LCD_8bit_Color_STN&diff=15609Hammer LCD 8bit Color STN2009-12-08T17:24:25Z<p>Davydotcom: /* Pictures */</p>
<hr />
<div>This is a "HowTo" for the Panasonic EDMGRB8KJF ([[media:edmgrb8jf.pdf|Datasheet]]) available from [http://store.earthlcd.com/EDMGRB8KJF?sc=7&category=256 EarthLCD] to be used with the [[Hammer_Board|Hammer]] development module from [[TinCanTools]]<br />
<br />
'''NOTE:''' This screen is an 8-bit STN screen, however in order to use it on the S3C2410A Hammer 12-bit STN must be used. The last 4 bits are simply masked off. If you have intentions of using this screen for frameworks such as Qt4 or others please first verify that they have 12-bit color support.<br />
<br />
==Hardware==<br />
{|border="3"<br />
|+Matching Pinouts<br />
!Pin Number||Hammer||Note||LCD||Pin Number<br />
|-<br />
|16||style="background:#FFFF40" |VM||style="background:#80FF80" |Display On/Off||style="background:#2099FF" |DISPON||16<br />
|-<br />
|17||style="background:#FFFF40" |VFRAME||style="background:#80FF80" |LCD Vertical sync||style="background:#2099FF" |FRM||20<br />
|-<br />
|18||style="background:#FFFF40" |VLINE||style="background:#80FF80" |LCD Horizontal sync||style="background:#2099FF" |LOAD||14<br />
|-<br />
|19||style="background:#FFFF40" |VCLK||style="background:#80FF80" |LCD pixel clock||style="background:#2099FF" |CP||12<br />
|-<br />
|21||style="background:#FFFF40" |LCD_VD0||style="background:#80FF80" |LCD data bit 0||style="background:#2099FF" |Data0||9<br />
|-<br />
|22||style="background:#FFFF40" |LCD_VD1||style="background:#80FF80" |LCD data bit 1||style="background:#2099FF" |Data1||8<br />
|-<br />
|23||style="background:#FFFF40" |LCD_VD2||style="background:#80FF80" |LCD data bit 2||style="background:#2099FF" |Data2||7<br />
|-<br />
|24||style="background:#FFFF40" |LCD_VD3||style="background:#80FF80" |LCD data bit 3||style="background:#2099FF" |Data3||6<br />
|-<br />
|25||style="background:#FFFF40" |LCD_VD4||style="background:#80FF80" |LCD data bit 4||style="background:#2099FF" |Data4||4<br />
|-<br />
|26||style="background:#FFFF40" |LCD_VD5||style="background:#80FF80" |LCD data bit 5||style="background:#2099FF" |Data5||3<br />
|-<br />
|27||style="background:#FFFF40" |LCD_VD6||style="background:#80FF80" |LCD data bit 6||style="background:#2099FF" |Data6||2<br />
|-<br />
|28||style="background:#FFFF40" |LCD_VD7||style="background:#80FF80" |LCD data bit 7||style="background:#2099FF" |Data7||1<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||10<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||11<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||13<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||5<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||15<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||17<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||19<br />
|-<br />
|| || ||style="background:#80FF80" |Contrast +1.95V (+-0.8V)||style="background:#2099FF" |VCON||18<br />
|}<br />
<br />
<br />
'''NOTE:''' VCON should be variable control to adjust contrast and the VDD should have separate power control, i.e. via a gpio<br />
NOTE: 3.3V from the Hammer dev kit is not enough power and a seperate regulator will be required to power the device. Please make sure you also tie together the ground pins from the external regulator and the dev board.<br />
<br />
'''NOTE:''' This display also requires a backlight inverter (see datasheet for requirements)<br />
==Pictures==<br />
[[File:tincantools-login.jpg]]<br/><br />
We have a login prompt!<br/><br />
[[File:mixer-display.jpg]]<br/><br />
Picture of LCD Display running a mixer console Ncurses GUI<br />
<br />
==Linux Kernel 2.6.29.6 Build Notes==<br />
In order to get this screen to work framebuffer support has to be built into your kernel.<br />
cd hammer/source/linux-2.6.29.6<br />
export ARCH=arm<br />
export CROSS_COMPILE=arm-linux-uclibc-<br />
make menuconfig <br />
<br />
Device Drivers -> Graphics Support -> Support for frame buffer devices<br />
Inside this sub menu add:<br />
[*] Enable Video Mode Handling Helpers<br />
<*> S3C2410 LCD framebuffer support<br />
<br />
Under Device Drivers -> Graphics Support -> Console display driver support ADD<br />
Framebuffer Console Support<br />
'''NOTE''': It is also a good idea to go ahead and add the boot logo.<br />
<br />
==Adding LCD to Machine File==<br />
The next step is to add the display settings to your mach-tct_hammer.c file in ./arch/arm/s3c2410<br />
If you have questions about this file please see the linux documentation ( I will try to make a patch for this at a later date)<br />
<br />
<br />
Open up your mach-tct_hammer.c file as mentioned above and verify the following include headers exist<br />
#include <asm/mach-types.h><br />
#include <mach/regs-lcd.h><br />
#include <mach/fb.h><br />
#include <mach/regs-gpio.h><br />
If they do not exist please add them.<br />
<br />
Next add this in the upper section of the file<br />
<br />
/* LCD/VGA controller */<br />
#ifdef CONFIG_FB_S3C2410<br />
static struct s3c2410fb_display __initdata tct_hammer_lcd_info = {<br />
.width = 640,<br />
.height = 480,<br />
<br />
.type = S3C2410_LCDCON1_STN8,<br />
<br />
.pixclock = 120000, <br />
.xres = 640,<br />
.yres = 480,<br />
.bpp = 12,<br />
.hsync_len = 48,<br />
<br />
.left_margin = 4 << (4 + 3),<br />
.right_margin = 8 << 3,<br />
.upper_margin = 10,<br />
.lower_margin = 10,<br />
<br />
.lcdcon5 = 2<br />
};<br />
/* LCD/VGA controller */<br />
<br />
static struct s3c2410fb_mach_info __initdata tct_hammer_fb_info = {<br />
<br />
.displays = &tct_hammer_lcd_info,<br />
.num_displays = 1,<br />
.default_display = 0,<br />
<br />
.gpccon = 0xaaaaa9aa,<br />
.gpccon_mask = 0xffffffff,<br />
.gpcup = 0x0000ffff,<br />
.gpcup_mask = 0xffffffff,<br />
<br />
.gpdcon = 0x00000000,<br />
.gpdcon_mask = 0xffffffff,<br />
.gpdup = 0x00000000,<br />
.gpdup_mask = 0xffffffff,<br />
.lpcsel = ((0xCE6) & ~7) | 1<<4,<br />
};<br />
<br />
<br />
#endif<br />
<br />
These definitions are what notify the s3c2410fb driver how to configure itself in order to talk to the LCD display properly. We still have to tell the kernel to initialize these as well as configure the GPIO pins to run as the VD pins.<br />
<br />
In the *tct_hammer_devices[] definition add<br />
#ifdef CONFIG_FB_S3C2410<br />
&s3c_device_lcd,<br />
#endif<br />
Finally in the tct_hammer_init function add the following lines to the top of the function:<br />
#ifdef CONFIG_FB_S3C2410<br />
// disable LCD_DISPON.<br />
s3c2410_gpio_setpin(S3C2410_GPC4, 0);<br />
s3c2410_gpio_cfgpin(S3C2410_GPC4, S3C2410_GPIO_OUTPUT);<br />
<br />
// connect any frame buffer.<br />
s3c24xx_fb_set_platdata(&tct_hammer_fb_info);<br />
#endif<br />
<br />
NOTE: TODO - Add information for modifying the s3c2410fb.c file as a setting needs changed to swap colors<br />
<br />
Now build your kernel and install it on the device. The last thing you may have to do is configure your getty file in your rootfs to put a console on tty0 (this will include adding tty0 to your securetty list on some occasions)</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_LCD_8bit_Color_STN&diff=15608Hammer LCD 8bit Color STN2009-12-08T17:24:07Z<p>Davydotcom: /* Pictures */</p>
<hr />
<div>This is a "HowTo" for the Panasonic EDMGRB8KJF ([[media:edmgrb8jf.pdf|Datasheet]]) available from [http://store.earthlcd.com/EDMGRB8KJF?sc=7&category=256 EarthLCD] to be used with the [[Hammer_Board|Hammer]] development module from [[TinCanTools]]<br />
<br />
'''NOTE:''' This screen is an 8-bit STN screen, however in order to use it on the S3C2410A Hammer 12-bit STN must be used. The last 4 bits are simply masked off. If you have intentions of using this screen for frameworks such as Qt4 or others please first verify that they have 12-bit color support.<br />
<br />
==Hardware==<br />
{|border="3"<br />
|+Matching Pinouts<br />
!Pin Number||Hammer||Note||LCD||Pin Number<br />
|-<br />
|16||style="background:#FFFF40" |VM||style="background:#80FF80" |Display On/Off||style="background:#2099FF" |DISPON||16<br />
|-<br />
|17||style="background:#FFFF40" |VFRAME||style="background:#80FF80" |LCD Vertical sync||style="background:#2099FF" |FRM||20<br />
|-<br />
|18||style="background:#FFFF40" |VLINE||style="background:#80FF80" |LCD Horizontal sync||style="background:#2099FF" |LOAD||14<br />
|-<br />
|19||style="background:#FFFF40" |VCLK||style="background:#80FF80" |LCD pixel clock||style="background:#2099FF" |CP||12<br />
|-<br />
|21||style="background:#FFFF40" |LCD_VD0||style="background:#80FF80" |LCD data bit 0||style="background:#2099FF" |Data0||9<br />
|-<br />
|22||style="background:#FFFF40" |LCD_VD1||style="background:#80FF80" |LCD data bit 1||style="background:#2099FF" |Data1||8<br />
|-<br />
|23||style="background:#FFFF40" |LCD_VD2||style="background:#80FF80" |LCD data bit 2||style="background:#2099FF" |Data2||7<br />
|-<br />
|24||style="background:#FFFF40" |LCD_VD3||style="background:#80FF80" |LCD data bit 3||style="background:#2099FF" |Data3||6<br />
|-<br />
|25||style="background:#FFFF40" |LCD_VD4||style="background:#80FF80" |LCD data bit 4||style="background:#2099FF" |Data4||4<br />
|-<br />
|26||style="background:#FFFF40" |LCD_VD5||style="background:#80FF80" |LCD data bit 5||style="background:#2099FF" |Data5||3<br />
|-<br />
|27||style="background:#FFFF40" |LCD_VD6||style="background:#80FF80" |LCD data bit 6||style="background:#2099FF" |Data6||2<br />
|-<br />
|28||style="background:#FFFF40" |LCD_VD7||style="background:#80FF80" |LCD data bit 7||style="background:#2099FF" |Data7||1<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||10<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||11<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||13<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||5<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||15<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||17<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||19<br />
|-<br />
|| || ||style="background:#80FF80" |Contrast +1.95V (+-0.8V)||style="background:#2099FF" |VCON||18<br />
|}<br />
<br />
<br />
'''NOTE:''' VCON should be variable control to adjust contrast and the VDD should have separate power control, i.e. via a gpio<br />
NOTE: 3.3V from the Hammer dev kit is not enough power and a seperate regulator will be required to power the device. Please make sure you also tie together the ground pins from the external regulator and the dev board.<br />
<br />
'''NOTE:''' This display also requires a backlight inverter (see datasheet for requirements)<br />
==Pictures==<br />
[[File:tincantools-login.jpg]]<br />
We have a login prompt!<br />
[[File:mixer-display.jpg]]<br />
Picture of LCD Display running a mixer console Ncurses GUI<br />
<br />
==Linux Kernel 2.6.29.6 Build Notes==<br />
In order to get this screen to work framebuffer support has to be built into your kernel.<br />
cd hammer/source/linux-2.6.29.6<br />
export ARCH=arm<br />
export CROSS_COMPILE=arm-linux-uclibc-<br />
make menuconfig <br />
<br />
Device Drivers -> Graphics Support -> Support for frame buffer devices<br />
Inside this sub menu add:<br />
[*] Enable Video Mode Handling Helpers<br />
<*> S3C2410 LCD framebuffer support<br />
<br />
Under Device Drivers -> Graphics Support -> Console display driver support ADD<br />
Framebuffer Console Support<br />
'''NOTE''': It is also a good idea to go ahead and add the boot logo.<br />
<br />
==Adding LCD to Machine File==<br />
The next step is to add the display settings to your mach-tct_hammer.c file in ./arch/arm/s3c2410<br />
If you have questions about this file please see the linux documentation ( I will try to make a patch for this at a later date)<br />
<br />
<br />
Open up your mach-tct_hammer.c file as mentioned above and verify the following include headers exist<br />
#include <asm/mach-types.h><br />
#include <mach/regs-lcd.h><br />
#include <mach/fb.h><br />
#include <mach/regs-gpio.h><br />
If they do not exist please add them.<br />
<br />
Next add this in the upper section of the file<br />
<br />
/* LCD/VGA controller */<br />
#ifdef CONFIG_FB_S3C2410<br />
static struct s3c2410fb_display __initdata tct_hammer_lcd_info = {<br />
.width = 640,<br />
.height = 480,<br />
<br />
.type = S3C2410_LCDCON1_STN8,<br />
<br />
.pixclock = 120000, <br />
.xres = 640,<br />
.yres = 480,<br />
.bpp = 12,<br />
.hsync_len = 48,<br />
<br />
.left_margin = 4 << (4 + 3),<br />
.right_margin = 8 << 3,<br />
.upper_margin = 10,<br />
.lower_margin = 10,<br />
<br />
.lcdcon5 = 2<br />
};<br />
/* LCD/VGA controller */<br />
<br />
static struct s3c2410fb_mach_info __initdata tct_hammer_fb_info = {<br />
<br />
.displays = &tct_hammer_lcd_info,<br />
.num_displays = 1,<br />
.default_display = 0,<br />
<br />
.gpccon = 0xaaaaa9aa,<br />
.gpccon_mask = 0xffffffff,<br />
.gpcup = 0x0000ffff,<br />
.gpcup_mask = 0xffffffff,<br />
<br />
.gpdcon = 0x00000000,<br />
.gpdcon_mask = 0xffffffff,<br />
.gpdup = 0x00000000,<br />
.gpdup_mask = 0xffffffff,<br />
.lpcsel = ((0xCE6) & ~7) | 1<<4,<br />
};<br />
<br />
<br />
#endif<br />
<br />
These definitions are what notify the s3c2410fb driver how to configure itself in order to talk to the LCD display properly. We still have to tell the kernel to initialize these as well as configure the GPIO pins to run as the VD pins.<br />
<br />
In the *tct_hammer_devices[] definition add<br />
#ifdef CONFIG_FB_S3C2410<br />
&s3c_device_lcd,<br />
#endif<br />
Finally in the tct_hammer_init function add the following lines to the top of the function:<br />
#ifdef CONFIG_FB_S3C2410<br />
// disable LCD_DISPON.<br />
s3c2410_gpio_setpin(S3C2410_GPC4, 0);<br />
s3c2410_gpio_cfgpin(S3C2410_GPC4, S3C2410_GPIO_OUTPUT);<br />
<br />
// connect any frame buffer.<br />
s3c24xx_fb_set_platdata(&tct_hammer_fb_info);<br />
#endif<br />
<br />
NOTE: TODO - Add information for modifying the s3c2410fb.c file as a setting needs changed to swap colors<br />
<br />
Now build your kernel and install it on the device. The last thing you may have to do is configure your getty file in your rootfs to put a console on tty0 (this will include adding tty0 to your securetty list on some occasions)</div>Davydotcomhttps://elinux.org/index.php?title=File:Mixer-display.jpg&diff=15607File:Mixer-display.jpg2009-12-08T17:22:35Z<p>Davydotcom: </p>
<hr />
<div></div>Davydotcomhttps://elinux.org/index.php?title=Hammer_LCD_8bit_Color_STN&diff=15606Hammer LCD 8bit Color STN2009-12-08T17:22:09Z<p>Davydotcom: /* Pictures */</p>
<hr />
<div>This is a "HowTo" for the Panasonic EDMGRB8KJF ([[media:edmgrb8jf.pdf|Datasheet]]) available from [http://store.earthlcd.com/EDMGRB8KJF?sc=7&category=256 EarthLCD] to be used with the [[Hammer_Board|Hammer]] development module from [[TinCanTools]]<br />
<br />
'''NOTE:''' This screen is an 8-bit STN screen, however in order to use it on the S3C2410A Hammer 12-bit STN must be used. The last 4 bits are simply masked off. If you have intentions of using this screen for frameworks such as Qt4 or others please first verify that they have 12-bit color support.<br />
<br />
==Hardware==<br />
{|border="3"<br />
|+Matching Pinouts<br />
!Pin Number||Hammer||Note||LCD||Pin Number<br />
|-<br />
|16||style="background:#FFFF40" |VM||style="background:#80FF80" |Display On/Off||style="background:#2099FF" |DISPON||16<br />
|-<br />
|17||style="background:#FFFF40" |VFRAME||style="background:#80FF80" |LCD Vertical sync||style="background:#2099FF" |FRM||20<br />
|-<br />
|18||style="background:#FFFF40" |VLINE||style="background:#80FF80" |LCD Horizontal sync||style="background:#2099FF" |LOAD||14<br />
|-<br />
|19||style="background:#FFFF40" |VCLK||style="background:#80FF80" |LCD pixel clock||style="background:#2099FF" |CP||12<br />
|-<br />
|21||style="background:#FFFF40" |LCD_VD0||style="background:#80FF80" |LCD data bit 0||style="background:#2099FF" |Data0||9<br />
|-<br />
|22||style="background:#FFFF40" |LCD_VD1||style="background:#80FF80" |LCD data bit 1||style="background:#2099FF" |Data1||8<br />
|-<br />
|23||style="background:#FFFF40" |LCD_VD2||style="background:#80FF80" |LCD data bit 2||style="background:#2099FF" |Data2||7<br />
|-<br />
|24||style="background:#FFFF40" |LCD_VD3||style="background:#80FF80" |LCD data bit 3||style="background:#2099FF" |Data3||6<br />
|-<br />
|25||style="background:#FFFF40" |LCD_VD4||style="background:#80FF80" |LCD data bit 4||style="background:#2099FF" |Data4||4<br />
|-<br />
|26||style="background:#FFFF40" |LCD_VD5||style="background:#80FF80" |LCD data bit 5||style="background:#2099FF" |Data5||3<br />
|-<br />
|27||style="background:#FFFF40" |LCD_VD6||style="background:#80FF80" |LCD data bit 6||style="background:#2099FF" |Data6||2<br />
|-<br />
|28||style="background:#FFFF40" |LCD_VD7||style="background:#80FF80" |LCD data bit 7||style="background:#2099FF" |Data7||1<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||10<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||11<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||13<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||5<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||15<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||17<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||19<br />
|-<br />
|| || ||style="background:#80FF80" |Contrast +1.95V (+-0.8V)||style="background:#2099FF" |VCON||18<br />
|}<br />
<br />
<br />
'''NOTE:''' VCON should be variable control to adjust contrast and the VDD should have separate power control, i.e. via a gpio<br />
NOTE: 3.3V from the Hammer dev kit is not enough power and a seperate regulator will be required to power the device. Please make sure you also tie together the ground pins from the external regulator and the dev board.<br />
<br />
'''NOTE:''' This display also requires a backlight inverter (see datasheet for requirements)<br />
==Pictures==<br />
[[File:mixer-display.jpg]]<br />
<br />
==Linux Kernel 2.6.29.6 Build Notes==<br />
In order to get this screen to work framebuffer support has to be built into your kernel.<br />
cd hammer/source/linux-2.6.29.6<br />
export ARCH=arm<br />
export CROSS_COMPILE=arm-linux-uclibc-<br />
make menuconfig <br />
<br />
Device Drivers -> Graphics Support -> Support for frame buffer devices<br />
Inside this sub menu add:<br />
[*] Enable Video Mode Handling Helpers<br />
<*> S3C2410 LCD framebuffer support<br />
<br />
Under Device Drivers -> Graphics Support -> Console display driver support ADD<br />
Framebuffer Console Support<br />
'''NOTE''': It is also a good idea to go ahead and add the boot logo.<br />
<br />
==Adding LCD to Machine File==<br />
The next step is to add the display settings to your mach-tct_hammer.c file in ./arch/arm/s3c2410<br />
If you have questions about this file please see the linux documentation ( I will try to make a patch for this at a later date)<br />
<br />
<br />
Open up your mach-tct_hammer.c file as mentioned above and verify the following include headers exist<br />
#include <asm/mach-types.h><br />
#include <mach/regs-lcd.h><br />
#include <mach/fb.h><br />
#include <mach/regs-gpio.h><br />
If they do not exist please add them.<br />
<br />
Next add this in the upper section of the file<br />
<br />
/* LCD/VGA controller */<br />
#ifdef CONFIG_FB_S3C2410<br />
static struct s3c2410fb_display __initdata tct_hammer_lcd_info = {<br />
.width = 640,<br />
.height = 480,<br />
<br />
.type = S3C2410_LCDCON1_STN8,<br />
<br />
.pixclock = 120000, <br />
.xres = 640,<br />
.yres = 480,<br />
.bpp = 12,<br />
.hsync_len = 48,<br />
<br />
.left_margin = 4 << (4 + 3),<br />
.right_margin = 8 << 3,<br />
.upper_margin = 10,<br />
.lower_margin = 10,<br />
<br />
.lcdcon5 = 2<br />
};<br />
/* LCD/VGA controller */<br />
<br />
static struct s3c2410fb_mach_info __initdata tct_hammer_fb_info = {<br />
<br />
.displays = &tct_hammer_lcd_info,<br />
.num_displays = 1,<br />
.default_display = 0,<br />
<br />
.gpccon = 0xaaaaa9aa,<br />
.gpccon_mask = 0xffffffff,<br />
.gpcup = 0x0000ffff,<br />
.gpcup_mask = 0xffffffff,<br />
<br />
.gpdcon = 0x00000000,<br />
.gpdcon_mask = 0xffffffff,<br />
.gpdup = 0x00000000,<br />
.gpdup_mask = 0xffffffff,<br />
.lpcsel = ((0xCE6) & ~7) | 1<<4,<br />
};<br />
<br />
<br />
#endif<br />
<br />
These definitions are what notify the s3c2410fb driver how to configure itself in order to talk to the LCD display properly. We still have to tell the kernel to initialize these as well as configure the GPIO pins to run as the VD pins.<br />
<br />
In the *tct_hammer_devices[] definition add<br />
#ifdef CONFIG_FB_S3C2410<br />
&s3c_device_lcd,<br />
#endif<br />
Finally in the tct_hammer_init function add the following lines to the top of the function:<br />
#ifdef CONFIG_FB_S3C2410<br />
// disable LCD_DISPON.<br />
s3c2410_gpio_setpin(S3C2410_GPC4, 0);<br />
s3c2410_gpio_cfgpin(S3C2410_GPC4, S3C2410_GPIO_OUTPUT);<br />
<br />
// connect any frame buffer.<br />
s3c24xx_fb_set_platdata(&tct_hammer_fb_info);<br />
#endif<br />
<br />
NOTE: TODO - Add information for modifying the s3c2410fb.c file as a setting needs changed to swap colors<br />
<br />
Now build your kernel and install it on the device. The last thing you may have to do is configure your getty file in your rootfs to put a console on tty0 (this will include adding tty0 to your securetty list on some occasions)</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_LCD_8bit_Color_STN&diff=15605Hammer LCD 8bit Color STN2009-12-08T17:21:27Z<p>Davydotcom: </p>
<hr />
<div>This is a "HowTo" for the Panasonic EDMGRB8KJF ([[media:edmgrb8jf.pdf|Datasheet]]) available from [http://store.earthlcd.com/EDMGRB8KJF?sc=7&category=256 EarthLCD] to be used with the [[Hammer_Board|Hammer]] development module from [[TinCanTools]]<br />
<br />
'''NOTE:''' This screen is an 8-bit STN screen, however in order to use it on the S3C2410A Hammer 12-bit STN must be used. The last 4 bits are simply masked off. If you have intentions of using this screen for frameworks such as Qt4 or others please first verify that they have 12-bit color support.<br />
<br />
==Hardware==<br />
{|border="3"<br />
|+Matching Pinouts<br />
!Pin Number||Hammer||Note||LCD||Pin Number<br />
|-<br />
|16||style="background:#FFFF40" |VM||style="background:#80FF80" |Display On/Off||style="background:#2099FF" |DISPON||16<br />
|-<br />
|17||style="background:#FFFF40" |VFRAME||style="background:#80FF80" |LCD Vertical sync||style="background:#2099FF" |FRM||20<br />
|-<br />
|18||style="background:#FFFF40" |VLINE||style="background:#80FF80" |LCD Horizontal sync||style="background:#2099FF" |LOAD||14<br />
|-<br />
|19||style="background:#FFFF40" |VCLK||style="background:#80FF80" |LCD pixel clock||style="background:#2099FF" |CP||12<br />
|-<br />
|21||style="background:#FFFF40" |LCD_VD0||style="background:#80FF80" |LCD data bit 0||style="background:#2099FF" |Data0||9<br />
|-<br />
|22||style="background:#FFFF40" |LCD_VD1||style="background:#80FF80" |LCD data bit 1||style="background:#2099FF" |Data1||8<br />
|-<br />
|23||style="background:#FFFF40" |LCD_VD2||style="background:#80FF80" |LCD data bit 2||style="background:#2099FF" |Data2||7<br />
|-<br />
|24||style="background:#FFFF40" |LCD_VD3||style="background:#80FF80" |LCD data bit 3||style="background:#2099FF" |Data3||6<br />
|-<br />
|25||style="background:#FFFF40" |LCD_VD4||style="background:#80FF80" |LCD data bit 4||style="background:#2099FF" |Data4||4<br />
|-<br />
|26||style="background:#FFFF40" |LCD_VD5||style="background:#80FF80" |LCD data bit 5||style="background:#2099FF" |Data5||3<br />
|-<br />
|27||style="background:#FFFF40" |LCD_VD6||style="background:#80FF80" |LCD data bit 6||style="background:#2099FF" |Data6||2<br />
|-<br />
|28||style="background:#FFFF40" |LCD_VD7||style="background:#80FF80" |LCD data bit 7||style="background:#2099FF" |Data7||1<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||10<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||11<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||13<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||5<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||15<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||17<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||19<br />
|-<br />
|| || ||style="background:#80FF80" |Contrast +1.95V (+-0.8V)||style="background:#2099FF" |VCON||18<br />
|}<br />
<br />
<br />
'''NOTE:''' VCON should be variable control to adjust contrast and the VDD should have separate power control, i.e. via a gpio<br />
NOTE: 3.3V from the Hammer dev kit is not enough power and a seperate regulator will be required to power the device. Please make sure you also tie together the ground pins from the external regulator and the dev board.<br />
<br />
'''NOTE:''' This display also requires a backlight inverter (see datasheet for requirements)<br />
==Pictures==<br />
==Linux Kernel 2.6.29.6 Build Notes==<br />
In order to get this screen to work framebuffer support has to be built into your kernel.<br />
cd hammer/source/linux-2.6.29.6<br />
export ARCH=arm<br />
export CROSS_COMPILE=arm-linux-uclibc-<br />
make menuconfig <br />
<br />
Device Drivers -> Graphics Support -> Support for frame buffer devices<br />
Inside this sub menu add:<br />
[*] Enable Video Mode Handling Helpers<br />
<*> S3C2410 LCD framebuffer support<br />
<br />
Under Device Drivers -> Graphics Support -> Console display driver support ADD<br />
Framebuffer Console Support<br />
'''NOTE''': It is also a good idea to go ahead and add the boot logo.<br />
<br />
==Adding LCD to Machine File==<br />
The next step is to add the display settings to your mach-tct_hammer.c file in ./arch/arm/s3c2410<br />
If you have questions about this file please see the linux documentation ( I will try to make a patch for this at a later date)<br />
<br />
<br />
Open up your mach-tct_hammer.c file as mentioned above and verify the following include headers exist<br />
#include <asm/mach-types.h><br />
#include <mach/regs-lcd.h><br />
#include <mach/fb.h><br />
#include <mach/regs-gpio.h><br />
If they do not exist please add them.<br />
<br />
Next add this in the upper section of the file<br />
<br />
/* LCD/VGA controller */<br />
#ifdef CONFIG_FB_S3C2410<br />
static struct s3c2410fb_display __initdata tct_hammer_lcd_info = {<br />
.width = 640,<br />
.height = 480,<br />
<br />
.type = S3C2410_LCDCON1_STN8,<br />
<br />
.pixclock = 120000, <br />
.xres = 640,<br />
.yres = 480,<br />
.bpp = 12,<br />
.hsync_len = 48,<br />
<br />
.left_margin = 4 << (4 + 3),<br />
.right_margin = 8 << 3,<br />
.upper_margin = 10,<br />
.lower_margin = 10,<br />
<br />
.lcdcon5 = 2<br />
};<br />
/* LCD/VGA controller */<br />
<br />
static struct s3c2410fb_mach_info __initdata tct_hammer_fb_info = {<br />
<br />
.displays = &tct_hammer_lcd_info,<br />
.num_displays = 1,<br />
.default_display = 0,<br />
<br />
.gpccon = 0xaaaaa9aa,<br />
.gpccon_mask = 0xffffffff,<br />
.gpcup = 0x0000ffff,<br />
.gpcup_mask = 0xffffffff,<br />
<br />
.gpdcon = 0x00000000,<br />
.gpdcon_mask = 0xffffffff,<br />
.gpdup = 0x00000000,<br />
.gpdup_mask = 0xffffffff,<br />
.lpcsel = ((0xCE6) & ~7) | 1<<4,<br />
};<br />
<br />
<br />
#endif<br />
<br />
These definitions are what notify the s3c2410fb driver how to configure itself in order to talk to the LCD display properly. We still have to tell the kernel to initialize these as well as configure the GPIO pins to run as the VD pins.<br />
<br />
In the *tct_hammer_devices[] definition add<br />
#ifdef CONFIG_FB_S3C2410<br />
&s3c_device_lcd,<br />
#endif<br />
Finally in the tct_hammer_init function add the following lines to the top of the function:<br />
#ifdef CONFIG_FB_S3C2410<br />
// disable LCD_DISPON.<br />
s3c2410_gpio_setpin(S3C2410_GPC4, 0);<br />
s3c2410_gpio_cfgpin(S3C2410_GPC4, S3C2410_GPIO_OUTPUT);<br />
<br />
// connect any frame buffer.<br />
s3c24xx_fb_set_platdata(&tct_hammer_fb_info);<br />
#endif<br />
<br />
NOTE: TODO - Add information for modifying the s3c2410fb.c file as a setting needs changed to swap colors<br />
<br />
Now build your kernel and install it on the device. The last thing you may have to do is configure your getty file in your rootfs to put a console on tty0 (this will include adding tty0 to your securetty list on some occasions)</div>Davydotcomhttps://elinux.org/index.php?title=Drink_Mixer&diff=15604Drink Mixer2009-12-08T17:16:42Z<p>Davydotcom: /* Drink Mixer (Audio Mixer) */</p>
<hr />
<div>==Drink Mixer (Audio Mixer) ==<br />
<br />
This project was titled the Drink Mixer as a joke cause one team member wanted to make that instead of a sound mixer so we kept that as the name.<br />
<br />
More information and pictures will be added to this later but for now a link to the Purdue University Senior Design Project Page for this project can be found below.<br />
<br />
[https://engineering.purdue.edu/477grp2/ Purdue ECE477 Team 2 Project Page]<br />
<br />
<br />
==Hardware==<br />
<br />
The Hammer is not capable of processing audio at rates necessary for this project with all of the floating point calculations involved. As a result several processors were used<br />
<br />
1 - ADSP-21262 SHARC DSP<br />
10 - AVR ATMEGA32A<br />
<br />
<br />
The ATMEGA32A were used as peripheral processors that kept track of motorized faders as well as Rotary Pulse Generators (RPGS) and LED Bar graphs. These processors were all placed on an i2c bus and monitored and updated several times / second by the Hammer S3C2410A ARM920T Processor.</div>Davydotcomhttps://elinux.org/index.php?title=Drink_Mixer&diff=15603Drink Mixer2009-12-08T17:14:11Z<p>Davydotcom: /* Drink Mixer (Audio Mixer) */</p>
<hr />
<div>==Drink Mixer (Audio Mixer) ==<br />
<br />
This project was titled the Drink Mixer as a joke cause one team member wanted to make that instead of a sound mixer so we kept that as the name.<br />
<br />
More information and pictures will be added to this later but for now a link to the Purdue University Senior Design Project Page for this project can be found below.<br />
<br />
[https://engineering.purdue.edu/477grp2/ Purdue ECE477 Team 2 Project Page]</div>Davydotcomhttps://elinux.org/index.php?title=Drink_Mixer&diff=15602Drink Mixer2009-12-08T17:13:48Z<p>Davydotcom: Created page with '==Drink Mixer (Audio Mixer) == This project was titled the Drink Mixer as a joke cause one team member wanted to make that instead of a sound mixer so we kept that as the name. …'</p>
<hr />
<div>==Drink Mixer (Audio Mixer) ==<br />
<br />
This project was titled the Drink Mixer as a joke cause one team member wanted to make that instead of a sound mixer so we kept that as the name.<br />
<br />
More information and pictures will be added to this later but for now a link to the Purdue University Senior Design Project Page for this project can be found below.<br />
<br />
[https://engineering.purdue.edu/477grp2/]</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_Board&diff=15601Hammer Board2009-12-08T17:11:49Z<p>Davydotcom: /* Hammer Project pages */</p>
<hr />
<div>== Hammer Board Specifications ==<br />
<br />
[[Image:hammer4.jpg]]<br />
<br />
[http://www.tincantools.com TinCanTools Website]<br />
<br />
The Hammer CPU board from [http://www.tincantools.com TinCanTools],is based upon Samsung’s [[S3C2410]] ARM920T processor. It gives you the power of an ARM9 processor in an easy to use modular package. The Hammer CPU board fits into a standard 40 pin DIP socket. It is an ideal platform for code development and prototyping in an embedded environment. You can quickly interface to the Hammer using your standard prototyping tools that are based upon 0.1 inch centers.<br />
<br />
* 100 MIPS Microprocessor ( CPU ): [[S3C2410]] - Samsung (200 MHz)<br />
* ARM 920T core with Cache (16K+16K) and MMU<br />
* Main Memory: 32MB SDRAM (16M x 16 bit, 100MHz)<br />
* FLASH : 16MB NOR Flash<br />
* Peripherals available:<br />
o 2 UART’s (also supports IrDA)<br />
o 1 I2C<br />
o 2 SPI’s<br />
o 2 16-bit Timers/PWM’s<br />
o 1 8-bit LCD Interface + control signals<br />
o 1 USB Host Port<br />
o 1 USB Slave Port<br />
o 2 ADC’s (10 bit )<br />
o 4 External Interrupt pins<br />
o 1 Up to 30 pins of GPIO’s <br />
* [[JTAG]] Interface: 2 x 7 Header – standard ARM [[JTAG]] interface<br />
* Size: 0.75 inches (width) X 2.25 inches (length)<br />
* Package: Fits a standard 40-pin DIP socket (0.1 inch lead spacing)<br />
* Power Requirements: +5VDC @ 120 mA (typical) <br />
<br />
== Interface Options ==<br />
<br />
I want to use the Hammer with:<br />
<br />
* [[Hammer_Ethernet|Ethernet]]<br />
* [[Hammer_Bluetooth|BlueTooth]]<br />
* Zigbee<br />
* [[Hammer_WiFi|802.11b/g]] <br />
* [[Hammer_Webcam|WebCam]]<br />
<br />
== Resources ==<br />
<br />
* [[Hammer_Board_HOWTOS| HOWTOs and Tutorials]]<br />
* [[Hammer_Board_Software| Software]]<br />
* [[Hammer_Board_Hardware| Hardware]]<br />
* [[Hammer_Board_Application_Notes| Application Notes]]<br />
<br />
== Hammer Details ==<br />
<br />
The Hammer comes preloaded with an open source bootloader, Linux 2.6 kernel, and a uClibc/Busybox based root file system. Board schematics, application notes, and source code are also included on the CD. The Hammer Board is a 40 pin DIP modules that can run full standard GNU/Linux.<br />
<br />
The [[Hammer_Kit| Hammer Kit]] comes with everything you will need to begin developing for the Hammer Board, and is '''strongly recommended''' for first time Hammer Board users. All development tools have been created for use with Linux, so you will need a working Linux system to use the Hammer Board and develop applications for it.<br />
<br />
[[Image:hammer1.jpg]]<br />
<br />
[[Image:hammer2.jpg]]<br />
<br />
[[Image:hammer3.jpg]]<br />
<br />
== Hammer Board Pinouts ==<br />
<br />
[[Image:Hammer-pinouts.jpg]]<br />
<br />
[[Category:TCT-Hammer]]<br />
[[Category:TinCanTools]]<br />
[[Category:ARM_Development_Boards]]<br />
<br />
{|border="3"<br />
|+Pinout with more explanations and links.<br />
!Pin number||Main Function||Note||Alt Function||Note<br />
|-<br />
| 1||style="background:#80FF80" |RXD0 ||style="background:#80FF80" |RS232 Receive||style="background:#FFFF80" |GPH3||style="background:#FFFF80" |GPIO port H bit 3<br />
|-<br />
| 2||style="background:#80FF80" |TXD0||style="background:#80FF80" |RS232 Transmit||style="background:#FFFF80" |GPH2||style="background:#FFFF80" |GPIO port H bit 2<br />
|-<br />
| 3||style="background:#99FF00" |IICSDA||style="background:#99FF00" |I2C SDA [http://en.wikipedia.org/wiki/I2c Wikipedia explains I2C] ||style="background:#FFFF80" |GPE15||style="background:#FFFF80" |GPIO port E bit 15<br />
|-<br />
| 4||style="background:#99FF00" |IICSCL||style="background:#99FF00" |I2C SCL||style="background:#FFFF80" |GPE14||style="background:#FFFF80" |GPIO port E bit 14<br />
|-<br />
| 5||style="background:#FFAA00" |SPIMISO0||style="background:#FFAA00" |SPI port 0 MISO [http://en.wikipedia.org/wiki/Spi Wikipedia explains SPI]||style="background:#FFFF80" |GPE11||style="background:#FFFF80" |GPIO port E bit 11<br />
|-<br />
| 6||style="background:#FFAA00" |SPIMOSI0||style="background:#FFAA00" |SPI port 0 MOSI||style="background:#FFFF80" |GPE12||style="background:#FFFF80" |GPIO port E bit 12<br />
|-<br />
| 7||style="background:#FFAA00" |SPICLK0||style="background:#FFAA00" |SPI port 0 clock||style="background:#FFFF80" |GPE13||style="background:#FFFF80" |GPIO port E bit 13<br />
|-<br />
| 8||style="background:#FFAA00" |nSS0||style="background:#FFAA00" |SPI port 0 select||style="background:#FF80FF" |EINT10||style="background:#FF80FF" |External Interrupt 10 (Wakeup capable?)<br />
|-<br />
|9||nRESET||CPU reset.<br />
|-<br />
|10||style="background:#80FF80" |nRTS0||style="background:#80FF80" |RS232 RTS (Ready to send)||style="background:#FFFF80" |GPH1||style="background:#FFFF80" |GPIO port H bit 1<br />
|-<br />
|11||style="background:#80FF80" |nCTS0||style="background:#80FF80" |RS232 CTS (Clear to send)||style="background:#FFFF80" |GPH0||style="background:#FFFF80" |GPIO port H bit 0<br />
|-<br />
|12||style="background:#2099FF" |TOUT0||style="background:#2099FF" |PWM timer 0 out||style="background:#FFFF80" |GPB0||style="background:#FFFF80" |GPIO port B bit 0<br />
|-<br />
|13||style="background:#2099FF" |TOUT2||style="background:#2099FF" |PWM timer 2 out||style="background:#FFFF80" |GPB2||style="background:#FFFF80" |GPIO port B bit 2<br />
|-<br />
|14||style="background:#80FF80" |RXD2||style="background:#80FF80" |RS232 port 2 receive (Note, Port 1 isn't accessible) ||style="background:#FFFF80" |GPH7||style="background:#FFFF80" |GPIO port H bit 7<br />
|-<br />
|15||style="background:#80FF80" |TXD2||style="background:#80FF80" |RS232 port 2 transmit||style="background:#FFFF80" |GPH6||style="background:#FFFF80" |GPIO port H bit 6<br />
|-<br />
|16||style="background:#FFFF40" |VM||style="background:#FFFF40" |LCD AC bias ||style="background:#FFFF80" |GPC4||style="background:#FFFF80" |GPIO port C bit 4<br />
|-<br />
|17||style="background:#FFFF40" |VFRAME||style="background:#FFFF40" |LCD Vertical sync||style="background:#FFFF80" |GPC3||style="background:#FFFF80" |GPIO port C bit 3<br />
|-<br />
|18||style="background:#FFFF40" |VLINE||style="background:#FFFF40" |LCD Horizontal sync||style="background:#FFFF80" |GPC2||style="background:#FFFF80" |GPIO port C bit 2<br />
|-<br />
|19||style="background:#FFFF40" |VCLK||style="background:#FFFF40" |LCD pixel clock||style="background:#FFFF80" |GPC1||style="background:#FFFF80" |GPIO port C bit 1<br />
|-<br />
|20||style="background:#8080FF" |GND||style="background:#8080FF" |Ground - supply voltage return.<br />
|-<br />
|21||style="background:#FFFF40" |LCD_VD0||style="background:#FFFF40" |LCD data bit 0||style="background:#FFFF80" |GPC8||style="background:#FFFF80" |GPIO port C bit 8<br />
|-<br />
|22||style="background:#FFFF40" |LCD_VD1||style="background:#FFFF40" |LCD data bit 1||style="background:#FFFF80" |GPC9||style="background:#FFFF80" |GPIO port C bit 9<br />
|-<br />
|23||style="background:#FFFF40" |LCD_VD2||style="background:#FFFF40" |LCD data bit 2||style="background:#FFFF80" |GPC10||style="background:#FFFF80" |GPIO port C bit 10<br />
|-<br />
|24||style="background:#FFFF40" |LCD_VD3||style="background:#FFFF40" |LCD data bit 3||style="background:#FFFF80" |GPC11||style="background:#FFFF80" |GPIO port C bit 11<br />
|-<br />
|25||style="background:#FFFF40" |LCD_VD4||style="background:#FFFF40" |LCD data bit 4||style="background:#FFFF80" |GPC12||style="background:#FFFF80" |GPIO port C bit 12<br />
|-<br />
|26||style="background:#FFFF40" |LCD_VD5||style="background:#FFFF40" |LCD data bit 5||style="background:#FFFF80" |GPC13||style="background:#FFFF80" |GPIO port C bit 13<br />
|-<br />
|27||style="background:#FFFF40" |LCD_VD6||style="background:#FFFF40" |LCD data bit 6||style="background:#FFFF80" |GPC14||style="background:#FFFF80" |GPIO port C bit 14<br />
|-<br />
|28||style="background:#FFFF40" |LCD_VD7||style="background:#FFFF40" |LCD data bit 7||style="background:#FFFF80" |GPC15||style="background:#FFFF80" |GPIO port C bit 15<br />
|-<br />
|29||style="background:#FF80FF" |EINT11||style="background:#FF80FF" |External interrupt 11||style="background:#AAA0FF" |nSS 1||style="background:#AAA0FF"| SPI port 1 select<br />
|-<br />
|30||style="background:#FF80FF" |EINT15||style="background:#FF80FF" |External interrupt 15||style="background:#AAA0FF" |SPICLK1||style="background:#AAA0FF" |SPI port 1 Clock<br />
|-<br />
|31||style="background:#FF80FF" |EINT14||style="background:#FF80FF" |External interrupt 14||style="background:#AAA0FF" |SPIMOSI1||style="background:#AAA0FF" |SPI port 1 MOSI<br />
|-<br />
|32||style="background:#FF80FF" |EINT13||style="background:#FF80FF" |External interrupt 13||style="background:#AAA0FF" |SPIMISO1||style="background:#AAA0FF" |SPI port 1 MISO<br />
|- style="background:red" <br />
|33|| AIN1||ADC input 1|| ||(Note - these ADCs are independant, and do not support differential mode)<br />
|- style="background:red" <br />
|34|| AIN0||ADC input 0<br />
|- style="background:#30FFFF" <br />
|35|| DP1||USB 1 Slave +<br />
|- style="background:#30FFFF" <br />
|36|| DN1||USB 1 Slave -<br />
|- style="background:#80FFFF" <br />
|37|| DP0||USB 0 Host +<br />
|- style="background:#80FFFF" <br />
|38|| DN0||USB 0 Host -<br />
|- style="background:#8080FF" <br />
|39||+3.3VDC||Internal regulator output. Can supply 100mA(?) safely. Overloading this may cause irreparable damage.<br />
|- style="background:#8080FF" <br />
|40||+5V||5V input. <br />
|}<br />
<br />
== Related Products ==<br />
<br />
[[Hammer_Board_Carrier| Hammer Carrier Board]] - the original carrier board for Hammer<br />
<br />
[[Nail_Board| Nail Kit]] - Great development system for Hammer to take where ever you go.<br />
<br />
[[Hammer_RDP| Hammer-RDP]] - the Robotics Development Platform<br />
<br />
== Hammer Project pages ==<br />
<br />
[[Xmas Video|Christmas Lights Controller]]<br/><br />
[[Drink Mixer | Audio Mixer Project]]<br/></div>Davydotcomhttps://elinux.org/index.php?title=Hammer_LCD_8bit_Color_STN&diff=15600Hammer LCD 8bit Color STN2009-12-08T16:51:33Z<p>Davydotcom: </p>
<hr />
<div>This is a "HowTo" for the Panasonic EDMGRB8KJF ([[media:edmgrb8jf.pdf|Datasheet]]) available from [http://store.earthlcd.com/EDMGRB8KJF?sc=7&category=256 EarthLCD] to be used with the [[Hammer_Board|Hammer]] development module from [[TinCanTools]]<br />
<br />
'''NOTE:''' This screen is an 8-bit STN screen, however in order to use it on the S3C2410A Hammer 12-bit STN must be used. The last 4 bits are simply masked off. If you have intentions of using this screen for frameworks such as Qt4 or others please first verify that they have 12-bit color support.<br />
<br />
==Hardware==<br />
{|border="3"<br />
|+Matching Pinouts<br />
!Pin Number||Hammer||Note||LCD||Pin Number<br />
|-<br />
|16||style="background:#FFFF40" |VM||style="background:#80FF80" |Display On/Off||style="background:#2099FF" |DISPON||16<br />
|-<br />
|17||style="background:#FFFF40" |VFRAME||style="background:#80FF80" |LCD Vertical sync||style="background:#2099FF" |FRM||20<br />
|-<br />
|18||style="background:#FFFF40" |VLINE||style="background:#80FF80" |LCD Horizontal sync||style="background:#2099FF" |LOAD||14<br />
|-<br />
|19||style="background:#FFFF40" |VCLK||style="background:#80FF80" |LCD pixel clock||style="background:#2099FF" |CP||12<br />
|-<br />
|21||style="background:#FFFF40" |LCD_VD0||style="background:#80FF80" |LCD data bit 0||style="background:#2099FF" |Data0||9<br />
|-<br />
|22||style="background:#FFFF40" |LCD_VD1||style="background:#80FF80" |LCD data bit 1||style="background:#2099FF" |Data1||8<br />
|-<br />
|23||style="background:#FFFF40" |LCD_VD2||style="background:#80FF80" |LCD data bit 2||style="background:#2099FF" |Data2||7<br />
|-<br />
|24||style="background:#FFFF40" |LCD_VD3||style="background:#80FF80" |LCD data bit 3||style="background:#2099FF" |Data3||6<br />
|-<br />
|25||style="background:#FFFF40" |LCD_VD4||style="background:#80FF80" |LCD data bit 4||style="background:#2099FF" |Data4||4<br />
|-<br />
|26||style="background:#FFFF40" |LCD_VD5||style="background:#80FF80" |LCD data bit 5||style="background:#2099FF" |Data5||3<br />
|-<br />
|27||style="background:#FFFF40" |LCD_VD6||style="background:#80FF80" |LCD data bit 6||style="background:#2099FF" |Data6||2<br />
|-<br />
|28||style="background:#FFFF40" |LCD_VD7||style="background:#80FF80" |LCD data bit 7||style="background:#2099FF" |Data7||1<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||10<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||11<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||13<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||5<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||15<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||17<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||19<br />
|-<br />
|| || ||style="background:#80FF80" |Contrast +1.95V (+-0.8V)||style="background:#2099FF" |VCON||18<br />
|}<br />
<br />
<br />
'''NOTE:''' VCON should be variable control to adjust contrast and the VDD should have separate power control, i.e. via a gpio<br />
NOTE: 3.3V from the Hammer dev kit is not enough power and a seperate regulator will be required to power the device. Please make sure you also tie together the ground pins from the external regulator and the dev board.<br />
<br />
'''NOTE:''' This display also requires a backlight inverter (see datasheet for requirements)<br />
<br />
==Linux Kernel 2.6.29.6 Build Notes==<br />
In order to get this screen to work framebuffer support has to be built into your kernel.<br />
cd hammer/source/linux-2.6.29.6<br />
export ARCH=arm<br />
export CROSS_COMPILE=arm-linux-uclibc-<br />
make menuconfig <br />
<br />
Device Drivers -> Graphics Support -> Support for frame buffer devices<br />
Inside this sub menu add:<br />
[*] Enable Video Mode Handling Helpers<br />
<*> S3C2410 LCD framebuffer support<br />
<br />
Under Device Drivers -> Graphics Support -> Console display driver support ADD<br />
Framebuffer Console Support<br />
'''NOTE''': It is also a good idea to go ahead and add the boot logo.<br />
<br />
==Adding LCD to Machine File==<br />
The next step is to add the display settings to your mach-tct_hammer.c file in ./arch/arm/s3c2410<br />
If you have questions about this file please see the linux documentation ( I will try to make a patch for this at a later date)<br />
<br />
<br />
Open up your mach-tct_hammer.c file as mentioned above and verify the following include headers exist<br />
#include <asm/mach-types.h><br />
#include <mach/regs-lcd.h><br />
#include <mach/fb.h><br />
#include <mach/regs-gpio.h><br />
If they do not exist please add them.<br />
<br />
Next add this in the upper section of the file<br />
<br />
/* LCD/VGA controller */<br />
#ifdef CONFIG_FB_S3C2410<br />
static struct s3c2410fb_display __initdata tct_hammer_lcd_info = {<br />
.width = 640,<br />
.height = 480,<br />
<br />
.type = S3C2410_LCDCON1_STN8,<br />
<br />
.pixclock = 120000, <br />
.xres = 640,<br />
.yres = 480,<br />
.bpp = 12,<br />
.hsync_len = 48,<br />
<br />
.left_margin = 4 << (4 + 3),<br />
.right_margin = 8 << 3,<br />
.upper_margin = 10,<br />
.lower_margin = 10,<br />
<br />
.lcdcon5 = 2<br />
};<br />
/* LCD/VGA controller */<br />
<br />
static struct s3c2410fb_mach_info __initdata tct_hammer_fb_info = {<br />
<br />
.displays = &tct_hammer_lcd_info,<br />
.num_displays = 1,<br />
.default_display = 0,<br />
<br />
.gpccon = 0xaaaaa9aa,<br />
.gpccon_mask = 0xffffffff,<br />
.gpcup = 0x0000ffff,<br />
.gpcup_mask = 0xffffffff,<br />
<br />
.gpdcon = 0x00000000,<br />
.gpdcon_mask = 0xffffffff,<br />
.gpdup = 0x00000000,<br />
.gpdup_mask = 0xffffffff,<br />
.lpcsel = ((0xCE6) & ~7) | 1<<4,<br />
};<br />
<br />
<br />
#endif<br />
<br />
These definitions are what notify the s3c2410fb driver how to configure itself in order to talk to the LCD display properly. We still have to tell the kernel to initialize these as well as configure the GPIO pins to run as the VD pins.<br />
<br />
In the *tct_hammer_devices[] definition add<br />
#ifdef CONFIG_FB_S3C2410<br />
&s3c_device_lcd,<br />
#endif<br />
Finally in the tct_hammer_init function add the following lines to the top of the function:<br />
#ifdef CONFIG_FB_S3C2410<br />
// disable LCD_DISPON.<br />
s3c2410_gpio_setpin(S3C2410_GPC4, 0);<br />
s3c2410_gpio_cfgpin(S3C2410_GPC4, S3C2410_GPIO_OUTPUT);<br />
<br />
// connect any frame buffer.<br />
s3c24xx_fb_set_platdata(&tct_hammer_fb_info);<br />
#endif<br />
<br />
NOTE: TODO - Add information for modifying the s3c2410fb.c file as a setting needs changed to swap colors<br />
<br />
Now build your kernel and install it on the device. The last thing you may have to do is configure your getty file in your rootfs to put a console on tty0 (this will include adding tty0 to your securetty list on some occasions)</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_LCD_8bit_Color_STN&diff=15599Hammer LCD 8bit Color STN2009-12-08T16:50:14Z<p>Davydotcom: /* Hardware */</p>
<hr />
<div>This is a "HowTo" for the Panasonic EDMGRB8KJF ([[media:edmgrb8jf.pdf|Datasheet]]) available from [http://store.earthlcd.com/EDMGRB8KJF?sc=7&category=256 EarthLCD] to be used with the [[Hammer_Board|Hammer]] development module from [[TinCanTools]]<br />
<br />
NOTE: This screen is an 8-bit STN screen, however in order to use it on the S3C2410A Hammer 12-bit STN must be used. The last 4 bits are simply masked off. If you have intentions of using this screen for frameworks such as Qt4 or others please first verify that they have 12-bit color support.<br />
<br />
==Hardware==<br />
{|border="3"<br />
|+Matching Pinouts<br />
!Pin Number||Hammer||Note||LCD||Pin Number<br />
|-<br />
|16||style="background:#FFFF40" |VM||style="background:#80FF80" |Display On/Off||style="background:#2099FF" |DISPON||16<br />
|-<br />
|17||style="background:#FFFF40" |VFRAME||style="background:#80FF80" |LCD Vertical sync||style="background:#2099FF" |FRM||20<br />
|-<br />
|18||style="background:#FFFF40" |VLINE||style="background:#80FF80" |LCD Horizontal sync||style="background:#2099FF" |LOAD||14<br />
|-<br />
|19||style="background:#FFFF40" |VCLK||style="background:#80FF80" |LCD pixel clock||style="background:#2099FF" |CP||12<br />
|-<br />
|21||style="background:#FFFF40" |LCD_VD0||style="background:#80FF80" |LCD data bit 0||style="background:#2099FF" |Data0||9<br />
|-<br />
|22||style="background:#FFFF40" |LCD_VD1||style="background:#80FF80" |LCD data bit 1||style="background:#2099FF" |Data1||8<br />
|-<br />
|23||style="background:#FFFF40" |LCD_VD2||style="background:#80FF80" |LCD data bit 2||style="background:#2099FF" |Data2||7<br />
|-<br />
|24||style="background:#FFFF40" |LCD_VD3||style="background:#80FF80" |LCD data bit 3||style="background:#2099FF" |Data3||6<br />
|-<br />
|25||style="background:#FFFF40" |LCD_VD4||style="background:#80FF80" |LCD data bit 4||style="background:#2099FF" |Data4||4<br />
|-<br />
|26||style="background:#FFFF40" |LCD_VD5||style="background:#80FF80" |LCD data bit 5||style="background:#2099FF" |Data5||3<br />
|-<br />
|27||style="background:#FFFF40" |LCD_VD6||style="background:#80FF80" |LCD data bit 6||style="background:#2099FF" |Data6||2<br />
|-<br />
|28||style="background:#FFFF40" |LCD_VD7||style="background:#80FF80" |LCD data bit 7||style="background:#2099FF" |Data7||1<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||10<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||11<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||13<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||5<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||15<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||17<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||19<br />
|-<br />
|| || ||style="background:#80FF80" |Contrast +1.95V (+-0.8V)||style="background:#2099FF" |VCON||18<br />
|}<br />
<br />
<br />
NOTE: VCON should be variable control to adjust contrast and the VDD should have separate power control, i.e. via a gpio<br />
NOTE: 3.3V from the Hammer dev kit is not enough power and a seperate regulator will be required to power the device. Please make sure you also tie together the ground pins from the external regulator and the dev board.<br />
<br />
NOTE: This display also requires a backlight inverter (see datasheet for requirements)<br />
<br />
==Linux Kernel 2.6.29.6 Build Notes==<br />
In order to get this screen to work framebuffer support has to be built into your kernel.<br />
cd hammer/source/linux-2.6.29.6<br />
export ARCH=arm<br />
export CROSS_COMPILE=arm-linux-uclibc-<br />
make menuconfig <br />
<br />
Device Drivers -> Graphics Support -> Support for frame buffer devices<br />
Inside this sub menu add:<br />
[*] Enable Video Mode Handling Helpers<br />
<*> S3C2410 LCD framebuffer support<br />
<br />
Under Device Drivers -> Graphics Support -> Console display driver support ADD<br />
Framebuffer Console Support<br />
NOTE: It is also a good idea to go ahead and add the boot logo.<br />
<br />
==Adding LCD to Machine File==<br />
The next step is to add the display settings to your mach-tct_hammer.c file in ./arch/arm/s3c2410<br />
If you have questions about this file please see the linux documentation ( I will try to make a patch for this at a later date)<br />
<br />
<br />
Open up your mach-tct_hammer.c file as mentioned above and verify the following include headers exist<br />
#include <asm/mach-types.h><br />
#include <mach/regs-lcd.h><br />
#include <mach/fb.h><br />
#include <mach/regs-gpio.h><br />
If they do not exist please add them.<br />
<br />
Next add this in the upper section of the file<br />
<br />
/* LCD/VGA controller */<br />
#ifdef CONFIG_FB_S3C2410<br />
static struct s3c2410fb_display __initdata tct_hammer_lcd_info = {<br />
.width = 640,<br />
.height = 480,<br />
<br />
.type = S3C2410_LCDCON1_STN8,<br />
<br />
.pixclock = 120000, <br />
.xres = 640,<br />
.yres = 480,<br />
.bpp = 12,<br />
.hsync_len = 48,<br />
<br />
.left_margin = 4 << (4 + 3),<br />
.right_margin = 8 << 3,<br />
.upper_margin = 10,<br />
.lower_margin = 10,<br />
<br />
.lcdcon5 = 2<br />
};<br />
/* LCD/VGA controller */<br />
<br />
static struct s3c2410fb_mach_info __initdata tct_hammer_fb_info = {<br />
<br />
.displays = &tct_hammer_lcd_info,<br />
.num_displays = 1,<br />
.default_display = 0,<br />
<br />
.gpccon = 0xaaaaa9aa,<br />
.gpccon_mask = 0xffffffff,<br />
.gpcup = 0x0000ffff,<br />
.gpcup_mask = 0xffffffff,<br />
<br />
.gpdcon = 0x00000000,<br />
.gpdcon_mask = 0xffffffff,<br />
.gpdup = 0x00000000,<br />
.gpdup_mask = 0xffffffff,<br />
.lpcsel = ((0xCE6) & ~7) | 1<<4,<br />
};<br />
<br />
<br />
#endif<br />
<br />
These definitions are what notify the s3c2410fb driver how to configure itself in order to talk to the LCD display properly. We still have to tell the kernel to initialize these as well as configure the GPIO pins to run as the VD pins.<br />
<br />
In the *tct_hammer_devices[] definition add<br />
#ifdef CONFIG_FB_S3C2410<br />
&s3c_device_lcd,<br />
#endif<br />
Finally in the tct_hammer_init function add the following lines to the top of the function:<br />
#ifdef CONFIG_FB_S3C2410<br />
// disable LCD_DISPON.<br />
s3c2410_gpio_setpin(S3C2410_GPC4, 0);<br />
s3c2410_gpio_cfgpin(S3C2410_GPC4, S3C2410_GPIO_OUTPUT);<br />
<br />
// connect any frame buffer.<br />
s3c24xx_fb_set_platdata(&tct_hammer_fb_info);<br />
#endif<br />
<br />
NOTE: TODO - Add information for modifying the s3c2410fb.c file as a setting needs changed to swap colors<br />
<br />
Now build your kernel and install it on the device. The last thing you may have to do is configure your getty file in your rootfs to put a console on tty0 (this will include adding tty0 to your securetty list on some occasions)</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_LCD_8bit_Color_STN&diff=15598Hammer LCD 8bit Color STN2009-12-08T16:48:12Z<p>Davydotcom: /* Linux Kernel 2.6.29.6 Build Notes */</p>
<hr />
<div>This is a "HowTo" for the Panasonic EDMGRB8KJF ([[media:edmgrb8jf.pdf|Datasheet]]) available from [http://store.earthlcd.com/EDMGRB8KJF?sc=7&category=256 EarthLCD] to be used with the [[Hammer_Board|Hammer]] development module from [[TinCanTools]]<br />
<br />
NOTE: This screen is an 8-bit STN screen, however in order to use it on the S3C2410A Hammer 12-bit STN must be used. The last 4 bits are simply masked off. If you have intentions of using this screen for frameworks such as Qt4 or others please first verify that they have 12-bit color support.<br />
<br />
==Hardware==<br />
{|border="3"<br />
|+Matching Pinouts<br />
!Pin Number||Hammer||Note||LCD||Pin Number<br />
|-<br />
|16||style="background:#FFFF40" |VM||style="background:#80FF80" |Display On/Off||style="background:#2099FF" |DISPON||16<br />
|-<br />
|17||style="background:#FFFF40" |VFRAME||style="background:#80FF80" |LCD Vertical sync||style="background:#2099FF" |FRM||20<br />
|-<br />
|18||style="background:#FFFF40" |VLINE||style="background:#80FF80" |LCD Horizontal sync||style="background:#2099FF" |LOAD||14<br />
|-<br />
|19||style="background:#FFFF40" |VCLK||style="background:#80FF80" |LCD pixel clock||style="background:#2099FF" |CP||12<br />
|-<br />
|21||style="background:#FFFF40" |LCD_VD0||style="background:#80FF80" |LCD data bit 0||style="background:#2099FF" |Data0||9<br />
|-<br />
|22||style="background:#FFFF40" |LCD_VD1||style="background:#80FF80" |LCD data bit 1||style="background:#2099FF" |Data1||8<br />
|-<br />
|23||style="background:#FFFF40" |LCD_VD2||style="background:#80FF80" |LCD data bit 2||style="background:#2099FF" |Data2||7<br />
|-<br />
|24||style="background:#FFFF40" |LCD_VD3||style="background:#80FF80" |LCD data bit 3||style="background:#2099FF" |Data3||6<br />
|-<br />
|25||style="background:#FFFF40" |LCD_VD4||style="background:#80FF80" |LCD data bit 4||style="background:#2099FF" |Data4||4<br />
|-<br />
|26||style="background:#FFFF40" |LCD_VD5||style="background:#80FF80" |LCD data bit 5||style="background:#2099FF" |Data5||3<br />
|-<br />
|27||style="background:#FFFF40" |LCD_VD6||style="background:#80FF80" |LCD data bit 6||style="background:#2099FF" |Data6||2<br />
|-<br />
|28||style="background:#FFFF40" |LCD_VD7||style="background:#80FF80" |LCD data bit 7||style="background:#2099FF" |Data7||1<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||10<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||11<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||13<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||5<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||15<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||17<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||19<br />
|-<br />
|| || ||style="background:#80FF80" |Contrast +1.95V (+-0.8V)||style="background:#2099FF" |VCON||18<br />
|}<br />
<br />
<br />
NOTE: VCON should be variable control to adjust contrast and the VDD should have separate power control, i.e. via a gpio<br />
<br />
NOTE: This display also requires a backlight inverter (see datasheet for requirements)<br />
<br />
==Linux Kernel 2.6.29.6 Build Notes==<br />
In order to get this screen to work framebuffer support has to be built into your kernel.<br />
cd hammer/source/linux-2.6.29.6<br />
export ARCH=arm<br />
export CROSS_COMPILE=arm-linux-uclibc-<br />
make menuconfig <br />
<br />
Device Drivers -> Graphics Support -> Support for frame buffer devices<br />
Inside this sub menu add:<br />
[*] Enable Video Mode Handling Helpers<br />
<*> S3C2410 LCD framebuffer support<br />
<br />
Under Device Drivers -> Graphics Support -> Console display driver support ADD<br />
Framebuffer Console Support<br />
NOTE: It is also a good idea to go ahead and add the boot logo.<br />
<br />
==Adding LCD to Machine File==<br />
The next step is to add the display settings to your mach-tct_hammer.c file in ./arch/arm/s3c2410<br />
If you have questions about this file please see the linux documentation ( I will try to make a patch for this at a later date)<br />
<br />
<br />
Open up your mach-tct_hammer.c file as mentioned above and verify the following include headers exist<br />
#include <asm/mach-types.h><br />
#include <mach/regs-lcd.h><br />
#include <mach/fb.h><br />
#include <mach/regs-gpio.h><br />
If they do not exist please add them.<br />
<br />
Next add this in the upper section of the file<br />
<br />
/* LCD/VGA controller */<br />
#ifdef CONFIG_FB_S3C2410<br />
static struct s3c2410fb_display __initdata tct_hammer_lcd_info = {<br />
.width = 640,<br />
.height = 480,<br />
<br />
.type = S3C2410_LCDCON1_STN8,<br />
<br />
.pixclock = 120000, <br />
.xres = 640,<br />
.yres = 480,<br />
.bpp = 12,<br />
.hsync_len = 48,<br />
<br />
.left_margin = 4 << (4 + 3),<br />
.right_margin = 8 << 3,<br />
.upper_margin = 10,<br />
.lower_margin = 10,<br />
<br />
.lcdcon5 = 2<br />
};<br />
/* LCD/VGA controller */<br />
<br />
static struct s3c2410fb_mach_info __initdata tct_hammer_fb_info = {<br />
<br />
.displays = &tct_hammer_lcd_info,<br />
.num_displays = 1,<br />
.default_display = 0,<br />
<br />
.gpccon = 0xaaaaa9aa,<br />
.gpccon_mask = 0xffffffff,<br />
.gpcup = 0x0000ffff,<br />
.gpcup_mask = 0xffffffff,<br />
<br />
.gpdcon = 0x00000000,<br />
.gpdcon_mask = 0xffffffff,<br />
.gpdup = 0x00000000,<br />
.gpdup_mask = 0xffffffff,<br />
.lpcsel = ((0xCE6) & ~7) | 1<<4,<br />
};<br />
<br />
<br />
#endif<br />
<br />
These definitions are what notify the s3c2410fb driver how to configure itself in order to talk to the LCD display properly. We still have to tell the kernel to initialize these as well as configure the GPIO pins to run as the VD pins.<br />
<br />
In the *tct_hammer_devices[] definition add<br />
#ifdef CONFIG_FB_S3C2410<br />
&s3c_device_lcd,<br />
#endif<br />
Finally in the tct_hammer_init function add the following lines to the top of the function:<br />
#ifdef CONFIG_FB_S3C2410<br />
// disable LCD_DISPON.<br />
s3c2410_gpio_setpin(S3C2410_GPC4, 0);<br />
s3c2410_gpio_cfgpin(S3C2410_GPC4, S3C2410_GPIO_OUTPUT);<br />
<br />
// connect any frame buffer.<br />
s3c24xx_fb_set_platdata(&tct_hammer_fb_info);<br />
#endif<br />
<br />
NOTE: TODO - Add information for modifying the s3c2410fb.c file as a setting needs changed to swap colors<br />
<br />
Now build your kernel and install it on the device. The last thing you may have to do is configure your getty file in your rootfs to put a console on tty0 (this will include adding tty0 to your securetty list on some occasions)</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_LCD_8bit_Color_STN&diff=15597Hammer LCD 8bit Color STN2009-12-08T16:34:20Z<p>Davydotcom: </p>
<hr />
<div>This is a "HowTo" for the Panasonic EDMGRB8KJF ([[media:edmgrb8jf.pdf|Datasheet]]) available from [http://store.earthlcd.com/EDMGRB8KJF?sc=7&category=256 EarthLCD] to be used with the [[Hammer_Board|Hammer]] development module from [[TinCanTools]]<br />
<br />
NOTE: This screen is an 8-bit STN screen, however in order to use it on the S3C2410A Hammer 12-bit STN must be used. The last 4 bits are simply masked off. If you have intentions of using this screen for frameworks such as Qt4 or others please first verify that they have 12-bit color support.<br />
<br />
==Hardware==<br />
{|border="3"<br />
|+Matching Pinouts<br />
!Pin Number||Hammer||Note||LCD||Pin Number<br />
|-<br />
|16||style="background:#FFFF40" |VM||style="background:#80FF80" |Display On/Off||style="background:#2099FF" |DISPON||16<br />
|-<br />
|17||style="background:#FFFF40" |VFRAME||style="background:#80FF80" |LCD Vertical sync||style="background:#2099FF" |FRM||20<br />
|-<br />
|18||style="background:#FFFF40" |VLINE||style="background:#80FF80" |LCD Horizontal sync||style="background:#2099FF" |LOAD||14<br />
|-<br />
|19||style="background:#FFFF40" |VCLK||style="background:#80FF80" |LCD pixel clock||style="background:#2099FF" |CP||12<br />
|-<br />
|21||style="background:#FFFF40" |LCD_VD0||style="background:#80FF80" |LCD data bit 0||style="background:#2099FF" |Data0||9<br />
|-<br />
|22||style="background:#FFFF40" |LCD_VD1||style="background:#80FF80" |LCD data bit 1||style="background:#2099FF" |Data1||8<br />
|-<br />
|23||style="background:#FFFF40" |LCD_VD2||style="background:#80FF80" |LCD data bit 2||style="background:#2099FF" |Data2||7<br />
|-<br />
|24||style="background:#FFFF40" |LCD_VD3||style="background:#80FF80" |LCD data bit 3||style="background:#2099FF" |Data3||6<br />
|-<br />
|25||style="background:#FFFF40" |LCD_VD4||style="background:#80FF80" |LCD data bit 4||style="background:#2099FF" |Data4||4<br />
|-<br />
|26||style="background:#FFFF40" |LCD_VD5||style="background:#80FF80" |LCD data bit 5||style="background:#2099FF" |Data5||3<br />
|-<br />
|27||style="background:#FFFF40" |LCD_VD6||style="background:#80FF80" |LCD data bit 6||style="background:#2099FF" |Data6||2<br />
|-<br />
|28||style="background:#FFFF40" |LCD_VD7||style="background:#80FF80" |LCD data bit 7||style="background:#2099FF" |Data7||1<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||10<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||11<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||13<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||5<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||15<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||17<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||19<br />
|-<br />
|| || ||style="background:#80FF80" |Contrast +1.95V (+-0.8V)||style="background:#2099FF" |VCON||18<br />
|}<br />
<br />
<br />
NOTE: VCON should be variable control to adjust contrast and the VDD should have separate power control, i.e. via a gpio<br />
<br />
NOTE: This display also requires a backlight inverter (see datasheet for requirements)<br />
<br />
==Linux Kernel 2.6.29.6 Build Notes==<br />
In order to get this screen to work framebuffer support has to be built into your kernel.<br />
cd hammer/source/linux-2.6.29.6<br />
export ARCH=arm<br />
export CROSS_COMPILE=arm-linux-uclibc-<br />
make menuconfig <br />
<br />
Device Drivers -> Graphics Support -> Support for frame buffer devices<br />
Inside this sub menu add:<br />
[*] Enable Video Mode Handling Helpers<br />
<*> S3C2410 LCD framebuffer support<br />
<br />
Under Device Drivers -> Graphics Support -> Console display driver support ADD<br />
Framebuffer Console Support<br />
NOTE: It is also a good idea to go ahead and add the boot logo.<br />
<br />
<br />
The next step is to add the display settings to your mach-tct_hammer.c file in ./arch/arm/s3c2410<br />
If you have questions about this file please see the linux documentation ( I will try to make a patch for this at a later date)</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_LCD_8bit_Color_STN&diff=15596Hammer LCD 8bit Color STN2009-12-08T16:31:57Z<p>Davydotcom: </p>
<hr />
<div>This is a "HowTo" for the Panasonic EDMGRB8KJF ([[media:edmgrb8jf.pdf|Datasheet]]) available from [http://store.earthlcd.com/EDMGRB8KJF?sc=7&category=256 EarthLCD] to be used with the [[Hammer_Board|Hammer]] development module from [[TinCanTools]]<br />
<br />
<br />
{|border="3"<br />
|+Matching Pinouts<br />
!Pin Number||Hammer||Note||LCD||Pin Number<br />
|-<br />
|16||style="background:#FFFF40" |VM||style="background:#80FF80" |Display On/Off||style="background:#2099FF" |DISPON||16<br />
|-<br />
|17||style="background:#FFFF40" |VFRAME||style="background:#80FF80" |LCD Vertical sync||style="background:#2099FF" |FRM||20<br />
|-<br />
|18||style="background:#FFFF40" |VLINE||style="background:#80FF80" |LCD Horizontal sync||style="background:#2099FF" |LOAD||14<br />
|-<br />
|19||style="background:#FFFF40" |VCLK||style="background:#80FF80" |LCD pixel clock||style="background:#2099FF" |CP||12<br />
|-<br />
|21||style="background:#FFFF40" |LCD_VD0||style="background:#80FF80" |LCD data bit 0||style="background:#2099FF" |Data0||9<br />
|-<br />
|22||style="background:#FFFF40" |LCD_VD1||style="background:#80FF80" |LCD data bit 1||style="background:#2099FF" |Data1||8<br />
|-<br />
|23||style="background:#FFFF40" |LCD_VD2||style="background:#80FF80" |LCD data bit 2||style="background:#2099FF" |Data2||7<br />
|-<br />
|24||style="background:#FFFF40" |LCD_VD3||style="background:#80FF80" |LCD data bit 3||style="background:#2099FF" |Data3||6<br />
|-<br />
|25||style="background:#FFFF40" |LCD_VD4||style="background:#80FF80" |LCD data bit 4||style="background:#2099FF" |Data4||4<br />
|-<br />
|26||style="background:#FFFF40" |LCD_VD5||style="background:#80FF80" |LCD data bit 5||style="background:#2099FF" |Data5||3<br />
|-<br />
|27||style="background:#FFFF40" |LCD_VD6||style="background:#80FF80" |LCD data bit 6||style="background:#2099FF" |Data6||2<br />
|-<br />
|28||style="background:#FFFF40" |LCD_VD7||style="background:#80FF80" |LCD data bit 7||style="background:#2099FF" |Data7||1<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||10<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||11<br />
|-<br />
|| || ||style="background:#80FF80" |+3.3V||style="background:#2099FF" |VDD||13<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||5<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||15<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||17<br />
|-<br />
|| || ||style="background:#80FF80" |Ground||style="background:#2099FF" |VSS||19<br />
|-<br />
|| || ||style="background:#80FF80" |Contrast +1.95V (+-0.8V)||style="background:#2099FF" |VCON||18<br />
|}<br />
<br />
<br />
NOTE: VCON should be variable control to adjust contrast and the VDD should have separate power control, i.e. via a gpio<br />
<br />
NOTE: This display also requires a backlight inverter (see datasheet for requirements)<br />
<br />
==Linux Kernel 2.6.29.6 Build Notes==<br />
In order to get this screen to work framebuffer support has to be built into your kernel.<br />
cd hammer/source/linux-2.6.29.6<br />
export ARCH=arm<br />
export CROSS_COMPILE=arm-linux-uclibc-<br />
make menuconfig <br />
<br />
Device Drivers -> Graphics Support -> Support for frame buffer devices<br />
Inside this sub menu add:<br />
[*] Enable Video Mode Handling Helpers<br />
<*> S3C2410 LCD framebuffer support<br />
<br />
Under Device Drivers -> Graphics Support -> Console display driver support ADD<br />
Framebuffer Console Support<br />
NOTE: It is also a good idea to go ahead and add the boot logo.<br />
<br />
<br />
The next step is to add the display settings to your mach-tct_hammer.c file in ./arch/arm/s3c2410<br />
If you have questions about this file please see the linux documentation ( I will try to make a patch for this at a later date)</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_How_to_JFFS2_Root&diff=14760Hammer How to JFFS2 Root2009-11-18T02:10:35Z<p>Davydotcom: Added more description on copying the jffs2 filesystem in apex. It wasnt very clear that the nor:1280k needed adjusted depending on the change in the size attribute mentioned at the top of the documen</p>
<hr />
<div>This tutorial assumes you are using Minicom to console to your Hammer Board.<br />
<br />
This tutorial shows how to configure the Hammer Board software to boot from the flash partition (/dev/mtdblock1) instead of using an initrd in RAM. This should make more RAM available for applications.<br />
<br />
Do these steps FIRST:<br />
<br />
Turn off all initramfs and initrd support in your kernel<br />
Make sure the .SIZE is set correctly in '''arch/arm/mach-s3c2410/mach-tct-hammer.c'''<br />
Make sure the correct '''Default Kernel Commandline''' (in APEX, Environment) is set to point to /mnt/mtdblock1 as the root partition.<br />
<br />
You may have to edit '''arch/arm/mach-s3c2410/mach-tct-hammer.c''' to change the value of '''.SIZE''' if your kernel is larger than 1 MB. The most common values for '''.SIZE''' are 0x140000 (1280k) and 0x200000 (2048k). These values should be more than large enough for most builds. The '''.SIZE''' variable has to be large enough for the boot loader and the kernel together.<br />
<br />
In Buildroot do:<br />
<br />
make menuconfig<br />
uncheck ext2 in Target Options<br />
check jffs2 in Target Options<br />
Exit and save your new configuration<br />
make<br />
<br />
There will be a *.jffs2 image file in your buildroot/binaries/<project> directory - this is your JFFS2 rootfs image.<br />
<br />
Do:<br />
<br />
Copy the jffs2 file, the apex.bin (bootloader) file, and your zImage (kernel) file to where you have OpenOCD setup for use.<br />
Edit your hammer.ocd flash script to comment out the initrd file flash command - you will upload your JFFS2 image later.<br />
Do '''openocd -f hammer.cfg''', which will flash the new bootloader and kernel image to your [[Hammer_Board|Hammer Board]].<br />
<br />
Do:<br />
<br />
Press RESET on Hammer and Ctrl/C to get to the APEX command prompt<br />
xreceive 0x30300000 (this is the address to upload to in memory)<br />
<br />
In Minicom do:<br />
<br />
Ctrl/A S<br />
Select Xmodem<br />
Browse to or enter the full path of the JFFS2 image to upload<br />
<br />
In APEX do:<br />
<br />
erase nor:1280k+0xEC0000 (that value is total amount of flash minus the amount of flash used for kernel and bootloader)<br />
<br />
For the next step, you need to know the exact size in bytes of your JFFS2 file image. Replace <filesize> with the exact file size in bytes returned by doing<br />
<br />
ls -l<br />
<br />
at the shell prompt.<br />
<br />
In APEX do:<br />
<br />
copy 0x30300000+<filesize> nor:1280k<br />
<br />
NOTE: This command may need changed based on the size allocated for kernel space. In Linux kernel 2.6.29.6 the default allocated space in the mach file is 0x200000 (verify this before you type it). You will see this value in the size attribute of the MTD partitions labeled "System" in the mach-tct_hammer.c file in <kernel root>/arch/arm/s3c2410. So a more appropriate definition would be<br />
copy 0x30300000+<filesize> nor:<system size><br />
If its 0x200000<br />
copy 0x30300000+<filesize> nor:0x200000<br />
To make the next change permanent, you need to go into the APEX configuration and set a parameter to tell APEX about your new root file system (JFFS2) and root (/dev/mtdblock1). There is a parameter in the Environment section called '''Default kernel command line''', which you need to set to:<br />
<br />
console=ttySAC0 rootfstype=jffs2 init=/linuxrc root=/dev/mtdblock1 rw<br />
<br />
Then save your configuration, exit, and do:<br />
<br />
make<br />
<br />
This will rebuild the APEX bootloader. To make this change more temporary, until you reflash Hammer again, you can set the cmdline parameter in APEX by:<br />
<br />
Rebooting Hammer and pressing Ctrl/C to get to the APEX prompt<br />
<br />
In APEX do:<br />
<br />
setenv cmdline = "console=ttySAC0 rootfstype=jffs2 root=/dev/mtdblock1"<br />
printenv<br />
<br />
This should show the change you just made. Now press RESET on your Hammer Carrier Board to reboot.<br />
<br />
[[Category:TCT-Hammer]]<br />
[[Category:TinCanTools]]</div>Davydotcomhttps://elinux.org/index.php?title=File:Apex-1.5.6-hammer-p1.tar.gz&diff=14589File:Apex-1.5.6-hammer-p1.tar.gz2009-11-06T17:55:25Z<p>Davydotcom: Modified apex bootloader to be compatible with gcc-4.4.x</p>
<hr />
<div>Modified apex bootloader to be compatible with gcc-4.4.x</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_Board_Software_System&diff=14588Hammer Board Software System2009-11-06T17:54:25Z<p>Davydotcom: /* APEX Boot Loader */</p>
<hr />
<div>==Source Code==<br />
<br />
=== [[APEX]] Boot Loader ===<br />
Current APEX [[Media:apex-1.5.6-hammer-p1.tar.gz| bootloader source]] <br />
<br />
Current APEX [[Media:apex-hammer-config| bootloader config]]<br />
<br />
=== Kernel ===<br />
Current - Hammer is supported in the main kernel tree as of [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.gz linux-2.6.26] (Be careful : there are some problems with S3C2410 USB host support which appear to fixed in 2.6.28).<br />
<br />
[[Media:linux-2.6.29-mmc.patch| mmc-patch]] for adding sd/mmc configuration to 2.6.29<br />
<br />
[[Media:linux-2.6.26.5-mmc.patch| mmc-patch]] for adding sd/mmc configuration to 2.6.26<br />
<br />
[[Media:hammer-linux-2.6.22-09122007.diff.gz| kernel patch]] against 2.6.22<br />
<br />
The [[Media:s3c2410_udc.patch| s3c2410_udc patch]] (required for Gadget support)<br />
<br />
Current [[Media:hammer-kernel-config| Kernel Config]]<br />
<br />
=== Buildroot ===<br />
Current '''supported''' [[Media:buildroot-01082008.tar.gz| Buildroot]]<br />
<br />
NOTE: Ubuntu users will need to fix the [https://wiki.ubuntu.com/DashAsBinSh dash disaster] using this [http://liquidweather.net/howto/index.php?id=59 HowTo]<br />
<br />
Fix for [[Media:mpfr.mk| mpfr buildroot config]]<br />
<br />
Current [[Media:buildroot-hammer-config| buildroot config]]<br />
<br />
Buildroot [[Media:buildroot-hammer-alt-config| Configuration with C++ enabled]]<br />
<br />
NOTE: ./buildroot/project_build_arm/Hammer/root/usr/lib/ is not properly created and when an error occurs on libstdc++.so create this directory tree and try to make again<br />
<br />
NOTE: Most likely the make will error at finding fakeroot_1.7.1.tar.gz<br />
<br />
To resolve change directory to your dl folder in buildroot/dl<br />
and wget [ftp://ftp.at.debian.org/grml/src/sources/fakeroot/fakeroot_1.7.1.tar.gz]<br />
<br />
when that is finished cd .. and rerun make<br />
<br />
NOTE: Error occurs with system returnvalue on makedevs<br />
<br />
This issue can be resolved by following patch information in this [http://www.at91.com/linux4sam/bin/view/Linux4SAM/BuildRootFAQ#Why_compiling_makedevs_c_produce FAQ]<br />
<br />
=== Tool Chain ===<br />
No patches are needed. The tool chain is built using buildroot.<br />
<br />
=== OpenOCD ===<br />
==== SVN R1888 ====<br />
<br />
Note: This is not the latest revision, but it is one that many folks use.<br />
<br />
For Linux Build:<br />
<pre><br />
You must get the source from openocd from SVN<br />
--->svn checkout svn://svn.berlios.de/openocd/trunk -r 1888<br />
<br />
You will also have comment out line 16 of config.in<br />
---># AC_CHECK_HEADERS(jtag_minidriver.h)<br />
<br />
then run bootstrap.sh followed by<br />
--->./configure --enable-ft2232-ftd2xx --enable-maintainer-mode<br />
<br />
then make followed by make install as root<br />
<br />
I used Ubuntu 9.04 and had many of the essential tools already installed, you may need to install<br />
additional tools for your own dist<br />
I had to add these specifically for openocd:<br />
<br />
subversion (1.5.4dfsg1-1ubuntu2)<br />
libtool (2.2.6a-1ubuntu1)<br />
automake1.9 (1.9.6+nogfdl-3ubuntu2)<br />
texinfo (4.11.dfsg.1-4)<br />
</pre><br />
See the [[media:readme1888.txt| readme.txt]] for additional info.<br />
<br />
Once installed, you need to run openocd as root from the directory that contains the .cfg files and scripts you want to run. <br />
<br />
Here are some useful scripts:<br />
<br />
*[[media:blinker.ocd| Script to blink the user led]]<br />
*[[media:dump_apex.ocd| Script to dump apex from flash to file zxcv.bin]]<br />
*[[media:erase_check.ocd| Script to do an erase check on the flash (takes a while)]]<br />
*[[media:flash_all.ocd| Script to flash apex, zImage and rootfs]]<br />
*[[media:flash_apex.ocd| Script to flash apex.bin]]<br />
*[[media:load_apex.ocd| Script to load apex.bin to address 0x30008000 and verify it]]<br />
*[[media:probe_info.ocd| Script to do a flash probe followed by a flash info]]<br />
<br />
<br />
Here are the .cfg files for the hammer:<br />
<br />
*[[media:flyswatter.cfg| Flyswatter Config for OpenOCD R1888]]<br />
*[[media:hammer1888.cfg| Hammer Config for OpenOCD R1888]]<br />
<br />
Invoke openocd like this:<br />
<br />
-->openocd -f flyswatter.cfg -f hammer.cfg -f load_apex.ocd<br />
<br />
==== SVN R734 ====<br />
Stable as of 10-06-2008<br />
*[[media:openocd-20081006.tar.gz| Current OpenOCD source Version SVN734]]<br />
*[[media:libftd2xx0.4.15.tar.gz| Current libftd2xx files Version 0.4.15]]<br />
*[[media:hammer.cfg| Current Hammer Config for OpenOCD]]<br />
*[[media:hammer.ocd| Current Hammer Script for OpenOCD]]<br />
<br />
NOTE: SVN734 is from a date of 2008-06-27, newer versions of OpenOCD from the SVN are not considered stable<br />
<br />
==== SVN R208 ====<br />
*[[Media:openocd.tar.gz| Older stable Openocd source (2007-09-05)]]<br />
*[[Media:libftd2xx0.4.13.tar.gz| Older libftd2xx files Version 0.4.13]]<br />
*[[Media:hammer.cfg| Older Hammer Config for OpenOCD]]<br />
*[[Media:hammer.ocd| Older Hammer Script for OpenOCD]]<br />
<br />
<br />
[[Media:blink.ocd| Openocd Script to blink onboard LED]]<br />
<br />
<br />
== Other Important Stuff ==<br />
Source for devmem utility - [[media:devmem2.c|devmem]]<br />
<br />
== Binary Reference Images ==<br />
[[media:apex.bin| APEX Boot Loader]]<br />
<br />
[[media:zImage| Kernel 2.6.22 image]]<br />
<br />
[[media:rootfs.arm.ext2.gz| Root File System]]<br />
<br />
[[media:devmem| devmen utility]] binary<br />
<br />
[[Category:TCT-Hammer]]<br />
<br />
[[Category:TinCanTools]]</div>Davydotcomhttps://elinux.org/index.php?title=File:Apex-1.5.6-p1.tar.gz&diff=14587File:Apex-1.5.6-p1.tar.gz2009-11-06T17:53:03Z<p>Davydotcom: Modified Apex Source Code to be compatibile with gcc version=4.4.0</p>
<hr />
<div>Modified Apex Source Code to be compatibile with gcc version=4.4.0</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_How_to_JFFS2_Root&diff=14581Hammer How to JFFS2 Root2009-11-06T01:01:21Z<p>Davydotcom: </p>
<hr />
<div>This tutorial assumes you are using Minicom to console to your Hammer Board.<br />
<br />
This tutorial shows how to configure the Hammer Board software to boot from the flash partition (/dev/mtdblock1) instead of using an initrd in RAM. This should make more RAM available for applications.<br />
<br />
Do these steps FIRST:<br />
<br />
Turn off all initramfs and initrd support in your kernel<br />
Make sure the .SIZE is set correctly in '''arch/arm/mach-s3c2410/mach-tct-hammer.c'''<br />
Make sure the correct '''Default Kernel Commandline''' (in APEX, Environment) is set to point to /mnt/mtdblock1 as the root partition.<br />
<br />
You may have to edit '''arch/arm/mach-s3c2410/mach-tct-hammer.c''' to change the value of '''.SIZE''' if your kernel is larger than 1 MB. The most common values for '''.SIZE''' are 0x140000 (1280k) and 0x200000 (2048k). These values should be more than large enough for most builds. The '''.SIZE''' variable has to be large enough for the boot loader and the kernel together.<br />
<br />
In Buildroot do:<br />
<br />
make menuconfig<br />
uncheck ext2 in Target Options<br />
check jffs2 in Target Options<br />
Exit and save your new configuration<br />
make<br />
<br />
There will be a *.jffs2 image file in your buildroot/binaries/<project> directory - this is your JFFS2 rootfs image.<br />
<br />
Do:<br />
<br />
Copy the jffs2 file, the apex.bin (bootloader) file, and your zImage (kernel) file to where you have OpenOCD setup for use.<br />
Edit your hammer.ocd flash script to comment out the initrd file flash command - you will upload your JFFS2 image later.<br />
Do '''openocd -f hammer.cfg''', which will flash the new bootloader and kernel image to your [[Hammer_Board|Hammer Board]].<br />
<br />
Do:<br />
<br />
Press RESET on Hammer and Ctrl/C to get to the APEX command prompt<br />
xreceive 0x30300000 (this is the address to upload to in memory)<br />
<br />
In Minicom do:<br />
<br />
Ctrl/A S<br />
Select Xmodem<br />
Browse to or enter the full path of the JFFS2 image to upload<br />
<br />
In APEX do:<br />
<br />
erase nor:1280k+0xEC0000 (that value is total amount of flash minus the amount of flash used for kernel and bootloader)<br />
<br />
For the next step, you need to know the exact size in bytes of your JFFS2 file image. Replace <filesize> with the exact file size in bytes returned by doing<br />
<br />
ls -l<br />
<br />
at the shell prompt.<br />
<br />
In APEX do:<br />
<br />
copy 0x30300000+<filesize> nor:1280k<br />
<br />
To make the next change permanent, you need to go into the APEX configuration and set a parameter to tell APEX about your new root file system (JFFS2) and root (/dev/mtdblock1). There is a parameter in the Environment section called '''Default kernel command line''', which you need to set to:<br />
<br />
console=ttySAC0 rootfstype=jffs2 init=/linuxrc root=/dev/mtdblock0 rw<br />
<br />
Then save your configuration, exit, and do:<br />
<br />
make<br />
<br />
This will rebuild the APEX bootloader. To make this change more temporary, until you reflash Hammer again, you can set the cmdline parameter in APEX by:<br />
<br />
Rebooting Hammer and pressing Ctrl/C to get to the APEX prompt<br />
<br />
In APEX do:<br />
<br />
setenv cmdline = "console=ttySAC0 rootfstype=jffs2 root=/dev/mtdblock0"<br />
printenv<br />
<br />
This should show the change you just made. Now press RESET on your Hammer Carrier Board to reboot.<br />
<br />
[[Category:TCT-Hammer]]<br />
[[Category:TinCanTools]]</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_Board_Software_System&diff=14434Hammer Board Software System2009-10-28T01:36:19Z<p>Davydotcom: /* Buildroot */</p>
<hr />
<div>==Source Code==<br />
<br />
=== [[APEX]] Boot Loader ===<br />
Current APEX [[Media:apex-1.5.6-hammer.tar.gz| bootloader source]] <br />
<br />
Current APEX [[Media:apex-hammer-config| bootloader config]]<br />
<br />
=== Kernel ===<br />
Current - Hammer is supported in the main kernel tree as of [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.gz linux-2.6.26] (Be careful : there are some problems with S3C2410 USB host support which appear to fixed in 2.6.28).<br />
<br />
[[Media:linux-2.6.29-mmc.patch| mmc-patch]] for adding sd/mmc configuration to 2.6.29<br />
<br />
[[Media:linux-2.6.26.5-mmc.patch| mmc-patch]] for adding sd/mmc configuration to 2.6.26<br />
<br />
[[Media:hammer-linux-2.6.22-09122007.diff.gz| kernel patch]] against 2.6.22<br />
<br />
The [[Media:s3c2410_udc.patch| s3c2410_udc patch]] (required for Gadget support)<br />
<br />
Current [[Media:hammer-kernel-config| Kernel Config]]<br />
<br />
=== Buildroot ===<br />
Current '''supported''' [[Media:buildroot-01082008.tar.gz| Buildroot]]<br />
<br />
NOTE: Ubuntu users will need to fix the [https://wiki.ubuntu.com/DashAsBinSh dash disaster] using this [http://liquidweather.net/howto/index.php?id=59 HowTo]<br />
<br />
Fix for [[Media:mpfr.mk| mpfr buildroot config]]<br />
<br />
Current [[Media:buildroot-hammer-config| buildroot config]]<br />
<br />
Buildroot [[Media:buildroot-hammer-alt-config| Configuration with C++ enabled]]<br />
<br />
NOTE: ./buildroot/project_build_arm/Hammer/root/usr/lib/ is not properly created and when an error occurs on libstdc++.so create this directory tree and try to make again<br />
<br />
NOTE: Most likely the make will error at finding fakeroot_1.7.1.tar.gz<br />
<br />
To resolve change directory to your dl folder in buildroot/dl<br />
and wget [ftp://ftp.at.debian.org/grml/src/sources/fakeroot/fakeroot_1.7.1.tar.gz]<br />
<br />
when that is finished cd .. and rerun make<br />
<br />
NOTE: Error occurs with system returnvalue on makedevs<br />
<br />
This issue can be resolved by following patch information in this [http://www.at91.com/linux4sam/bin/view/Linux4SAM/BuildRootFAQ#Why_compiling_makedevs_c_produce FAQ]<br />
<br />
=== Tool Chain ===<br />
No patches are needed. The tool chain is built using buildroot.<br />
<br />
=== OpenOCD ===<br />
==== SVN R1888 ====<br />
<br />
Note: This is not the latest revision, but it is one that many folks use.<br />
<br />
For Linux Build:<br />
<pre><br />
You must get the source from openocd from SVN<br />
--->svn checkout svn://svn.berlios.de/openocd/trunk -r 1888<br />
<br />
You will also have comment out line 16 of config.in<br />
---># AC_CHECK_HEADERS(jtag_minidriver.h)<br />
<br />
then run bootstrap.sh followed by<br />
--->./configure --enable-ft2232-ftd2xx --enable-maintainer-mode<br />
<br />
then make followed by make install as root<br />
<br />
I used Ubuntu 9.04 and had many of the essential tools already installed, you may need to install<br />
additional tools for your own dist<br />
I had to add these specifically for openocd:<br />
<br />
subversion (1.5.4dfsg1-1ubuntu2)<br />
libtool (2.2.6a-1ubuntu1)<br />
automake1.9 (1.9.6+nogfdl-3ubuntu2)<br />
texinfo (4.11.dfsg.1-4)<br />
</pre><br />
See the [[media:readme1888.txt| readme.txt]] for additional info.<br />
<br />
Once installed, you need to run openocd as root from the directory that contains the .cfg files and scripts you want to run. <br />
<br />
Here are some useful scripts:<br />
<br />
*[[media:blinker.ocd| Script to blink the user led]]<br />
*[[media:dump_apex.ocd| Script to dump apex from flash to file zxcv.bin]]<br />
*[[media:erase_check.ocd| Script to do an erase check on the flash (takes a while)]]<br />
*[[media:flash_all.ocd| Script to flash apex, zImage and rootfs]]<br />
*[[media:flash_apex.ocd| Script to flash apex.bin]]<br />
*[[media:load_apex.ocd| Script to load apex.bin to address 0x30008000 and verify it]]<br />
*[[media:probe_info.ocd| Script to do a flash probe followed by a flash info]]<br />
<br />
<br />
Here are the .cfg files for the hammer:<br />
<br />
*[[media:flyswatter.cfg| Flyswatter Config for OpenOCD R1888]]<br />
*[[media:hammer1888.cfg| Hammer Config for OpenOCD R1888]]<br />
<br />
Invoke openocd like this:<br />
<br />
-->openocd -f flyswatter.cfg -f hammer.cfg -f load_apex.ocd<br />
<br />
==== SVN R734 ====<br />
Stable as of 10-06-2008<br />
*[[media:openocd-20081006.tar.gz| Current OpenOCD source Version SVN734]]<br />
*[[media:libftd2xx0.4.15.tar.gz| Current libftd2xx files Version 0.4.15]]<br />
*[[media:hammer.cfg| Current Hammer Config for OpenOCD]]<br />
*[[media:hammer.ocd| Current Hammer Script for OpenOCD]]<br />
<br />
NOTE: SVN734 is from a date of 2008-06-27, newer versions of OpenOCD from the SVN are not considered stable<br />
<br />
==== SVN R208 ====<br />
*[[Media:openocd.tar.gz| Older stable Openocd source (2007-09-05)]]<br />
*[[Media:libftd2xx0.4.13.tar.gz| Older libftd2xx files Version 0.4.13]]<br />
*[[Media:hammer.cfg| Older Hammer Config for OpenOCD]]<br />
*[[Media:hammer.ocd| Older Hammer Script for OpenOCD]]<br />
<br />
<br />
[[Media:blink.ocd| Openocd Script to blink onboard LED]]<br />
<br />
<br />
== Other Important Stuff ==<br />
Source for devmem utility - [[media:devmem2.c|devmem]]<br />
<br />
== Binary Reference Images ==<br />
[[media:apex.bin| APEX Boot Loader]]<br />
<br />
[[media:zImage| Kernel 2.6.22 image]]<br />
<br />
[[media:rootfs.arm.ext2.gz| Root File System]]<br />
<br />
[[media:devmem| devmen utility]] binary<br />
<br />
[[Category:TCT-Hammer]]<br />
<br />
[[Category:TinCanTools]]</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_Board_Software_System&diff=14433Hammer Board Software System2009-10-28T01:19:57Z<p>Davydotcom: /* Buildroot */</p>
<hr />
<div>==Source Code==<br />
<br />
=== [[APEX]] Boot Loader ===<br />
Current APEX [[Media:apex-1.5.6-hammer.tar.gz| bootloader source]] <br />
<br />
Current APEX [[Media:apex-hammer-config| bootloader config]]<br />
<br />
=== Kernel ===<br />
Current - Hammer is supported in the main kernel tree as of [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.gz linux-2.6.26] (Be careful : there are some problems with S3C2410 USB host support which appear to fixed in 2.6.28).<br />
<br />
[[Media:linux-2.6.29-mmc.patch| mmc-patch]] for adding sd/mmc configuration to 2.6.29<br />
<br />
[[Media:linux-2.6.26.5-mmc.patch| mmc-patch]] for adding sd/mmc configuration to 2.6.26<br />
<br />
[[Media:hammer-linux-2.6.22-09122007.diff.gz| kernel patch]] against 2.6.22<br />
<br />
The [[Media:s3c2410_udc.patch| s3c2410_udc patch]] (required for Gadget support)<br />
<br />
Current [[Media:hammer-kernel-config| Kernel Config]]<br />
<br />
=== Buildroot ===<br />
Current '''supported''' [[Media:buildroot-01082008.tar.gz| Buildroot]]<br />
<br />
NOTE: Ubuntu users will need to fix the [https://wiki.ubuntu.com/DashAsBinSh dash disaster] using this [http://liquidweather.net/howto/index.php?id=59 HowTo]<br />
<br />
Fix for [[Media:mpfr.mk| mpfr buildroot config]]<br />
<br />
Current [[Media:buildroot-hammer-config| buildroot config]]<br />
<br />
Buildroot [[Media:buildroot-hammer-alt-config| Configuration with C++ enabled]]<br />
<br />
NOTE: ./buildroot/project_build_arm/Hammer/root/usr/lib/ is not properly created and when an error occurs on libstdc++.so create this directory tree and try to make again<br />
<br />
NOTE: Most likely the make will error at finding fakeroot_1.7.1.tar.gz<br />
<br />
To resolve change directory to your dl folder in buildroot/dl<br />
and wget [ftp://ftp.at.debian.org/grml/src/sources/fakeroot/fakeroot_1.7.1.tar.gz]<br />
<br />
when that is finished cd .. and rerun make<br />
<br />
=== Tool Chain ===<br />
No patches are needed. The tool chain is built using buildroot.<br />
<br />
=== OpenOCD ===<br />
==== SVN R1888 ====<br />
<br />
Note: This is not the latest revision, but it is one that many folks use.<br />
<br />
For Linux Build:<br />
<pre><br />
You must get the source from openocd from SVN<br />
--->svn checkout svn://svn.berlios.de/openocd/trunk -r 1888<br />
<br />
You will also have comment out line 16 of config.in<br />
---># AC_CHECK_HEADERS(jtag_minidriver.h)<br />
<br />
then run bootstrap.sh followed by<br />
--->./configure --enable-ft2232-ftd2xx --enable-maintainer-mode<br />
<br />
then make followed by make install as root<br />
<br />
I used Ubuntu 9.04 and had many of the essential tools already installed, you may need to install<br />
additional tools for your own dist<br />
I had to add these specifically for openocd:<br />
<br />
subversion (1.5.4dfsg1-1ubuntu2)<br />
libtool (2.2.6a-1ubuntu1)<br />
automake1.9 (1.9.6+nogfdl-3ubuntu2)<br />
texinfo (4.11.dfsg.1-4)<br />
</pre><br />
See the [[media:readme1888.txt| readme.txt]] for additional info.<br />
<br />
Once installed, you need to run openocd as root from the directory that contains the .cfg files and scripts you want to run. <br />
<br />
Here are some useful scripts:<br />
<br />
*[[media:blinker.ocd| Script to blink the user led]]<br />
*[[media:dump_apex.ocd| Script to dump apex from flash to file zxcv.bin]]<br />
*[[media:erase_check.ocd| Script to do an erase check on the flash (takes a while)]]<br />
*[[media:flash_all.ocd| Script to flash apex, zImage and rootfs]]<br />
*[[media:flash_apex.ocd| Script to flash apex.bin]]<br />
*[[media:load_apex.ocd| Script to load apex.bin to address 0x30008000 and verify it]]<br />
*[[media:probe_info.ocd| Script to do a flash probe followed by a flash info]]<br />
<br />
<br />
Here are the .cfg files for the hammer:<br />
<br />
*[[media:flyswatter.cfg| Flyswatter Config for OpenOCD R1888]]<br />
*[[media:hammer1888.cfg| Hammer Config for OpenOCD R1888]]<br />
<br />
Invoke openocd like this:<br />
<br />
-->openocd -f flyswatter.cfg -f hammer.cfg -f load_apex.ocd<br />
<br />
==== SVN R734 ====<br />
Stable as of 10-06-2008<br />
*[[media:openocd-20081006.tar.gz| Current OpenOCD source Version SVN734]]<br />
*[[media:libftd2xx0.4.15.tar.gz| Current libftd2xx files Version 0.4.15]]<br />
*[[media:hammer.cfg| Current Hammer Config for OpenOCD]]<br />
*[[media:hammer.ocd| Current Hammer Script for OpenOCD]]<br />
<br />
NOTE: SVN734 is from a date of 2008-06-27, newer versions of OpenOCD from the SVN are not considered stable<br />
<br />
==== SVN R208 ====<br />
*[[Media:openocd.tar.gz| Older stable Openocd source (2007-09-05)]]<br />
*[[Media:libftd2xx0.4.13.tar.gz| Older libftd2xx files Version 0.4.13]]<br />
*[[Media:hammer.cfg| Older Hammer Config for OpenOCD]]<br />
*[[Media:hammer.ocd| Older Hammer Script for OpenOCD]]<br />
<br />
<br />
[[Media:blink.ocd| Openocd Script to blink onboard LED]]<br />
<br />
<br />
== Other Important Stuff ==<br />
Source for devmem utility - [[media:devmem2.c|devmem]]<br />
<br />
== Binary Reference Images ==<br />
[[media:apex.bin| APEX Boot Loader]]<br />
<br />
[[media:zImage| Kernel 2.6.22 image]]<br />
<br />
[[media:rootfs.arm.ext2.gz| Root File System]]<br />
<br />
[[media:devmem| devmen utility]] binary<br />
<br />
[[Category:TCT-Hammer]]<br />
<br />
[[Category:TinCanTools]]</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_Board_Software_System&diff=14432Hammer Board Software System2009-10-28T01:04:41Z<p>Davydotcom: /* Buildroot */</p>
<hr />
<div>==Source Code==<br />
<br />
=== [[APEX]] Boot Loader ===<br />
Current APEX [[Media:apex-1.5.6-hammer.tar.gz| bootloader source]] <br />
<br />
Current APEX [[Media:apex-hammer-config| bootloader config]]<br />
<br />
=== Kernel ===<br />
Current - Hammer is supported in the main kernel tree as of [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.gz linux-2.6.26] (Be careful : there are some problems with S3C2410 USB host support which appear to fixed in 2.6.28).<br />
<br />
[[Media:linux-2.6.29-mmc.patch| mmc-patch]] for adding sd/mmc configuration to 2.6.29<br />
<br />
[[Media:linux-2.6.26.5-mmc.patch| mmc-patch]] for adding sd/mmc configuration to 2.6.26<br />
<br />
[[Media:hammer-linux-2.6.22-09122007.diff.gz| kernel patch]] against 2.6.22<br />
<br />
The [[Media:s3c2410_udc.patch| s3c2410_udc patch]] (required for Gadget support)<br />
<br />
Current [[Media:hammer-kernel-config| Kernel Config]]<br />
<br />
=== Buildroot ===<br />
Current '''supported''' [[Media:buildroot-01082008.tar.gz| Buildroot]]<br />
<br />
NOTE: Ubuntu users will need to fix the [https://wiki.ubuntu.com/DashAsBinSh dash disaster] using this [http://liquidweather.net/howto/index.php?id=59 HowTo]<br />
<br />
Fix for [[Media:mpfr.mk| mpfr buildroot config]]<br />
<br />
Current [[Media:buildroot-hammer-config| buildroot config]]<br />
<br />
Buildroot [[Media:buildroot-hammer-alt-config| Configuration with C++ enabled]]<br />
<br />
NOTE: ./buildroot/project_build_arm/Hammer/root/usr/lib/ is not properly created and when an error occurs on libstdc++.so create this directory tree and try to make again<br />
<br />
=== Tool Chain ===<br />
No patches are needed. The tool chain is built using buildroot.<br />
<br />
=== OpenOCD ===<br />
==== SVN R1888 ====<br />
<br />
Note: This is not the latest revision, but it is one that many folks use.<br />
<br />
For Linux Build:<br />
<pre><br />
You must get the source from openocd from SVN<br />
--->svn checkout svn://svn.berlios.de/openocd/trunk -r 1888<br />
<br />
You will also have comment out line 16 of config.in<br />
---># AC_CHECK_HEADERS(jtag_minidriver.h)<br />
<br />
then run bootstrap.sh followed by<br />
--->./configure --enable-ft2232-ftd2xx --enable-maintainer-mode<br />
<br />
then make followed by make install as root<br />
<br />
I used Ubuntu 9.04 and had many of the essential tools already installed, you may need to install<br />
additional tools for your own dist<br />
I had to add these specifically for openocd:<br />
<br />
subversion (1.5.4dfsg1-1ubuntu2)<br />
libtool (2.2.6a-1ubuntu1)<br />
automake1.9 (1.9.6+nogfdl-3ubuntu2)<br />
texinfo (4.11.dfsg.1-4)<br />
</pre><br />
See the [[media:readme1888.txt| readme.txt]] for additional info.<br />
<br />
Once installed, you need to run openocd as root from the directory that contains the .cfg files and scripts you want to run. <br />
<br />
Here are some useful scripts:<br />
<br />
*[[media:blinker.ocd| Script to blink the user led]]<br />
*[[media:dump_apex.ocd| Script to dump apex from flash to file zxcv.bin]]<br />
*[[media:erase_check.ocd| Script to do an erase check on the flash (takes a while)]]<br />
*[[media:flash_all.ocd| Script to flash apex, zImage and rootfs]]<br />
*[[media:flash_apex.ocd| Script to flash apex.bin]]<br />
*[[media:load_apex.ocd| Script to load apex.bin to address 0x30008000 and verify it]]<br />
*[[media:probe_info.ocd| Script to do a flash probe followed by a flash info]]<br />
<br />
<br />
Here are the .cfg files for the hammer:<br />
<br />
*[[media:flyswatter.cfg| Flyswatter Config for OpenOCD R1888]]<br />
*[[media:hammer1888.cfg| Hammer Config for OpenOCD R1888]]<br />
<br />
Invoke openocd like this:<br />
<br />
-->openocd -f flyswatter.cfg -f hammer.cfg -f load_apex.ocd<br />
<br />
==== SVN R734 ====<br />
Stable as of 10-06-2008<br />
*[[media:openocd-20081006.tar.gz| Current OpenOCD source Version SVN734]]<br />
*[[media:libftd2xx0.4.15.tar.gz| Current libftd2xx files Version 0.4.15]]<br />
*[[media:hammer.cfg| Current Hammer Config for OpenOCD]]<br />
*[[media:hammer.ocd| Current Hammer Script for OpenOCD]]<br />
<br />
NOTE: SVN734 is from a date of 2008-06-27, newer versions of OpenOCD from the SVN are not considered stable<br />
<br />
==== SVN R208 ====<br />
*[[Media:openocd.tar.gz| Older stable Openocd source (2007-09-05)]]<br />
*[[Media:libftd2xx0.4.13.tar.gz| Older libftd2xx files Version 0.4.13]]<br />
*[[Media:hammer.cfg| Older Hammer Config for OpenOCD]]<br />
*[[Media:hammer.ocd| Older Hammer Script for OpenOCD]]<br />
<br />
<br />
[[Media:blink.ocd| Openocd Script to blink onboard LED]]<br />
<br />
<br />
== Other Important Stuff ==<br />
Source for devmem utility - [[media:devmem2.c|devmem]]<br />
<br />
== Binary Reference Images ==<br />
[[media:apex.bin| APEX Boot Loader]]<br />
<br />
[[media:zImage| Kernel 2.6.22 image]]<br />
<br />
[[media:rootfs.arm.ext2.gz| Root File System]]<br />
<br />
[[media:devmem| devmen utility]] binary<br />
<br />
[[Category:TCT-Hammer]]<br />
<br />
[[Category:TinCanTools]]</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_LED_Driver_Module&diff=11455Hammer LED Driver Module2009-05-02T17:00:42Z<p>Davydotcom: adding compaitibility info with 2.6.29 kernel</p>
<hr />
<div>this is an example kernel module that will blink the onboard LED connected to GPIO F0 ([[media:ledblink.tar.gz|source]])<br />
<br />
==Usage==<br />
<br />
<pre><br />
#tar zxvf ledblink.tar.gz<br />
#cd ledblink<br />
</pre><br />
NOTE: If trying to make against kernel 2.6.29 change #include of arch/arm/regs-gpio to<br />
<pre><br />
#include <mach/regs-gpio.h><br />
</pre><br />
<pre><br />
#make KERNEL_SRC=/home/foo/bar/hammer/linux-2.6.22<br />
</pre><br />
<br />
NOTE: for more information about the contents and function of the <br><br />
included Makefile please see the [http://tldp.org/LDP/lkmpg/2.6/html/ The Linux Kernel Module Programming Guide]<br />
<br />
this will generate the ledblink.ko file which can be transfer to your hammer and loaded using the insmod command<br />
<pre><br />
#insmod ledblink.ko<br />
LED Blink Module Loaded<br />
Dec 31 17:10:05 Hammer user.info kernel: LED Blink Module Loaded<br />
</pre><br />
<br />
to remove the module use the rmmod command<br />
<pre><br />
#rmmod ledblink.ko<br />
LED Blink Module Unloaded<br />
Dec 31 17:10:20 Hammer user.info kernel: LED Blink Module Unloaded<br />
</pre><br />
<br />
==Source Code==<br />
NOTE: this source makes reference to the HZ kernel value and also to "jiffies",<br><br />
for more information on these see the [[Kernel_Timer_Systems]] documentation<br />
<pre><br />
/* <br />
* ledblink.c - basic led blinking kernel module<br />
*<br />
* Copyright (c) 2008 TinCanTools<br />
* David Anders <danders@amltd.com><br />
*<br />
* This program is free software; you can redistribute it and/or modify<br />
* it under the terms of the GNU General Public License as published by<br />
* the Free Software Foundation; either version 2 of the License, or<br />
* (at your option) any later version.<br />
*<br />
* This program is distributed in the hope that it will be useful,<br />
* but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br />
* GNU General Public License for more details.<br />
* <br />
* You should have received a copy of the GNU General Public License<br />
* along with this program; if not, write to the Free Software<br />
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA<br />
*<br />
*/<br />
#include <linux/module.h> /* Needed by all modules */<br />
#include <linux/kernel.h> /* Needed for KERN_INFO */<br />
#include <linux/timer.h> /* Needed for kernel timer */<br />
#include <asm/arch/regs-gpio.h> /* Needed for GPIO defines */<br />
#include <asm/io.h> /* Needed for s3c2410 functions */<br />
<br />
<br />
static int blinkinterval = HZ / 2;<br />
static struct timer_list blink_timer;<br />
<br />
<br />
static void led_blink(unsigned long dummy)<br />
{<br />
<br />
/* the LED is active(on) when low(0) */<br />
<br />
if (s3c2410_gpio_getpin(S3C2410_GPF0) == 0) /* check the current value of GPIO F0 */<br />
s3c2410_gpio_setpin(S3C2410_GPF0, 1); /* turn LED off */<br />
<br />
else <br />
s3c2410_gpio_setpin(S3C2410_GPF0, 0); /* turn LED on */<br />
<br />
mod_timer (&blink_timer, jiffies + blinkinterval); /* restart the timer */<br />
<br />
}<br />
<br />
int init_module(void)<br />
{<br />
<br />
s3c2410_gpio_cfgpin(S3C2410_GPF0, S3C2410_GPIO_OUTPUT); /* set the GPIO line F0 to an output */<br />
s3c2410_gpio_setpin(S3C2410_GPF0, 1); /* make sure the LED starts in the off setting */<br />
<br />
printk(KERN_INFO "LED Blink Module Loaded\n");<br />
<br />
init_timer (&blink_timer);<br />
blink_timer.function = led_blink;<br />
mod_timer (&blink_timer, jiffies + blinkinterval);<br />
<br />
/* <br />
* A non 0 return means init_module failed; module can't be loaded. <br />
*/<br />
return 0;<br />
}<br />
<br />
void cleanup_module(void)<br />
{<br />
s3c2410_gpio_setpin(S3C2410_GPF0, 1); /* make sure the LED is off when exiting */<br />
<br />
del_timer_sync(&blink_timer); /* sync and delete the timer before exiting */<br />
printk(KERN_INFO "LED Blink Module Unloaded\n");<br />
}<br />
<br />
MODULE_LICENSE("GPL");<br />
<br />
</pre></div>Davydotcomhttps://elinux.org/index.php?title=Hammer_How_to_build_Kernel&diff=11454Hammer How to build Kernel2009-05-02T16:41:55Z<p>Davydotcom: </p>
<hr />
<div>Here is how to build a custom kernel:<br />
NOTE: Kernel 2.6.29 seemed a little easier to build then 2.6.22 did, Check towards bottom for instructions.<br />
NOTE: If you are installing a custom rootfs, you may have to increase the size of the space in flash to hold the new rootfs image. You do this by editing the '''linux-<version>/arch/arm/mach-s3c2410/mach-tct_hammer.c''' file. Find the '''.size''' string and change the value to be a little larger than your rootfs image is. The image size is in hex, so you will have to do a conversion to get the right value.<br />
<br />
Some common values for '''.size''' are:<br />
<br />
2 MB = 0x340000<br />
3 MB = <br />
4 MB = <br />
5 MB = <br />
6 MB = <br />
8 MB = <br />
<br />
You may have to increase the size of your '''initramfs/initrd''' to accomodate your ramdisk image if the '''uncompressed''' size is larger than about 12 MB. There will be both compressed and uncompressed rootfs images in the buildroot/binaries/<project> directory. To do this, you have to set the size of the '''initramfs/initrd''' in the kernel. Find Block Devices in the kernel configuration and set the size to be just a little larger than your '''uncompressed''' initramfs/initrd. Only add a multiple of 1024 bytes.<br />
<br />
Do:<br />
<br />
tar xzf linux-2.6.22.tar.gz<br />
cd linux-2.6.22<br />
zcat ../Hammer-linux-2.6.22-09122007.diff.gz | patch -p1<br />
Edit linux-<version>/arch/arm/mach-s3c2410/mach-tct_hammer.c to change '''.size''' if needed.<br />
cp hammer-config .config<br />
make oldconfig<br />
make zImage<br />
make modules<br />
<br />
The kernel can be found in arch/arm/boot/zImage<br />
<br />
<br />
If your kernel and rootfs compress size is bigger than 1Mo, you will need to change some Apex config.<br />
<br />
If you want to flash the bootloader, do <br />
make menuconfig<br />
In '''Environment'''<br />
'''Regions'''<br />
'''(nor:1280k+2048k) Source region for ramdisk image''' to have a rootfs image smaller than 2048k<br />
<br />
make<br />
<br />
and then reflash with the new apex.bin file<br />
<br />
<br />
==newer kernel (2.6.22 to 2.6.29)==<br />
If you want to compile a kernel upper than 2.6.22, you don't need to patch the kernel.<br />
To make a new kernel, just :<br />
<br />
export ARCH=arm<br />
export CROSS_COMPILE=arm-linux-uclibc-<br />
make tct_hammer_defconfig<br />
make menuconfig<br />
make zImage <br />
export INSTALL_MOD_PATH=../../buildroot/project_build_arm/Hammer/root/ '''==> depend on your kernel source directory location'''<br />
make modules_install<br />
<br />
To use the 2.6.29 kernel, you will also need to :<br />
make menuconfig<br />
<br />
In '''Device drivers''' -> Character devices -> Serial drivers<br />
And type Y for '''Samsung SoC serial support'''<br />
Also make sure you add GPIO support, SPI as well as SD Support for the Hammer Dev Board<br />
<br />
if not, you will not have any feedback in the serial console.<br />
[[Category:TCT-Hammer]]<br />
[[Category:TinCanTools]]</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_How_to_build_Kernel&diff=11453Hammer How to build Kernel2009-05-02T16:26:52Z<p>Davydotcom: </p>
<hr />
<div>Here is how to build a custom kernel:<br />
NOTE: Kernel 2.6.29 seemed a little easier to build then 2.6.22 did, Check towards bottom for instructions.<br />
NOTE: If you are installing a custom rootfs, you may have to increase the size of the space in flash to hold the new rootfs image. You do this by editing the '''linux-<version>/arch/arm/mach-s3c2410/mach-tct_hammer.c''' file. Find the '''.size''' string and change the value to be a little larger than your rootfs image is. The image size is in hex, so you will have to do a conversion to get the right value.<br />
<br />
Some common values for '''.size''' are:<br />
<br />
2 MB = 0x340000<br />
3 MB = <br />
4 MB = <br />
5 MB = <br />
6 MB = <br />
8 MB = <br />
<br />
You may have to increase the size of your '''initramfs/initrd''' to accomodate your ramdisk image if the '''uncompressed''' size is larger than about 12 MB. There will be both compressed and uncompressed rootfs images in the buildroot/binaries/<project> directory. To do this, you have to set the size of the '''initramfs/initrd''' in the kernel. Find Block Devices in the kernel configuration and set the size to be just a little larger than your '''uncompressed''' initramfs/initrd. Only add a multiple of 1024 bytes.<br />
<br />
Do:<br />
<br />
tar xzf linux-2.6.22.tar.gz<br />
cd linux-2.6.22<br />
zcat ../Hammer-linux-2.6.22-09122007.diff.gz | patch -p1<br />
Edit linux-<version>/arch/arm/mach-s3c2410/mach-tct_hammer.c to change '''.size''' if needed.<br />
cp hammer-config .config<br />
make oldconfig<br />
make zImage<br />
make modules<br />
<br />
The kernel can be found in arch/arm/boot/zImage<br />
<br />
<br />
If your kernel and rootfs compress size is bigger than 1Mo, you will need to change some Apex config.<br />
<br />
If you want to flash the bootloader, do <br />
make menuconfig<br />
In '''Environment'''<br />
'''Regions'''<br />
'''(nor:1280k+2048k) Source region for ramdisk image''' to have a rootfs image smaller than 2048k<br />
<br />
make<br />
<br />
and then reflash with the new apex.bin file<br />
<br />
<br />
==newer kernel (2.6.22 to 2.6.29)==<br />
If you want to compile a kernel upper than 2.6.22, you don't need to patch the kernel.<br />
To make a new kernel, just :<br />
<br />
export ARCH=arm<br />
export CROSS_COMPILE=arm-linux-uclibc-<br />
make tct_hammer_defconfig<br />
make menuconfig<br />
make zImage <br />
export INSTALL_MOD_PATH=../../buildroot/project_build_arm/Hammer/root/ '''==> depend on your kernel source directory location'''<br />
make modules_install<br />
<br />
To use the 2.6.29 kernel, you will also need to :<br />
make menuconfig<br />
<br />
In '''Device drivers''' -> Character devices -> Serial drivers<br />
And type Y for '''Samsung SoC serial support'''<br />
<br />
if not, you will not have any feedback in the serial console.<br />
[[Category:TCT-Hammer]]<br />
[[Category:TinCanTools]]</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_How_to_build_Kernel&diff=11452Hammer How to build Kernel2009-05-02T16:25:57Z<p>Davydotcom: Kernel 2.6.29 works successfully...no problems detected</p>
<hr />
<div>Here is how to build a custom kernel:<br />
<br />
NOTE: If you are installing a custom rootfs, you may have to increase the size of the space in flash to hold the new rootfs image. You do this by editing the '''linux-<version>/arch/arm/mach-s3c2410/mach-tct_hammer.c''' file. Find the '''.size''' string and change the value to be a little larger than your rootfs image is. The image size is in hex, so you will have to do a conversion to get the right value.<br />
<br />
Some common values for '''.size''' are:<br />
<br />
2 MB = 0x340000<br />
3 MB = <br />
4 MB = <br />
5 MB = <br />
6 MB = <br />
8 MB = <br />
<br />
You may have to increase the size of your '''initramfs/initrd''' to accomodate your ramdisk image if the '''uncompressed''' size is larger than about 12 MB. There will be both compressed and uncompressed rootfs images in the buildroot/binaries/<project> directory. To do this, you have to set the size of the '''initramfs/initrd''' in the kernel. Find Block Devices in the kernel configuration and set the size to be just a little larger than your '''uncompressed''' initramfs/initrd. Only add a multiple of 1024 bytes.<br />
<br />
Do:<br />
<br />
tar xzf linux-2.6.22.tar.gz<br />
cd linux-2.6.22<br />
zcat ../Hammer-linux-2.6.22-09122007.diff.gz | patch -p1<br />
Edit linux-<version>/arch/arm/mach-s3c2410/mach-tct_hammer.c to change '''.size''' if needed.<br />
cp hammer-config .config<br />
make oldconfig<br />
make zImage<br />
make modules<br />
<br />
The kernel can be found in arch/arm/boot/zImage<br />
<br />
<br />
If your kernel and rootfs compress size is bigger than 1Mo, you will need to change some Apex config.<br />
<br />
If you want to flash the bootloader, do <br />
make menuconfig<br />
In '''Environment'''<br />
'''Regions'''<br />
'''(nor:1280k+2048k) Source region for ramdisk image''' to have a rootfs image smaller than 2048k<br />
<br />
make<br />
<br />
and then reflash with the new apex.bin file<br />
<br />
<br />
==newer kernel (2.6.22 to 2.6.29)==<br />
If you want to compile a kernel upper than 2.6.22, you don't need to patch the kernel.<br />
To make a new kernel, just :<br />
<br />
export ARCH=arm<br />
export CROSS_COMPILE=arm-linux-uclibc-<br />
make tct_hammer_defconfig<br />
make menuconfig<br />
make zImage <br />
export INSTALL_MOD_PATH=../../buildroot/project_build_arm/Hammer/root/ '''==> depend on your kernel source directory location'''<br />
make modules_install<br />
<br />
To use the 2.6.29 kernel, you will also need to :<br />
make menuconfig<br />
<br />
In '''Device drivers''' -> Character devices -> Serial drivers<br />
And type Y for '''Samsung SoC serial support'''<br />
<br />
if not, you will not have any feedback in the serial console.<br />
[[Category:TCT-Hammer]]<br />
[[Category:TinCanTools]]</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_How_to_Reflash_Apex_and_kernel&diff=11451Hammer How to Reflash Apex and kernel2009-05-02T16:24:35Z<p>Davydotcom: </p>
<hr />
<div>These instructions assume that apex has been configured for a 1024k kernel region<br />
<br />
=== Flashing a new kernel (zImage) ===<br />
<br />
You'll find the zImage file in the linux-2.6.22/arch/arm/boot directory.<br />
<br />
apex> xr 0x30008000 <=== This is the address that the flash base kernel is copied to by apex on powerup><br />
< send zImage via xmodem><br />
apex> erase nor:256k+1024k<br />
apex> copy 0x30008000+1024k nor:256k<br />
1048576 bytes transferred<br />
apex> boot <this will boot the newly flashed kernel with the existing rootfs><br />
<br />
=== Flashing a new rootfs ===<br />
<br />
You'll find the rootfs.arm.ext2.gz file in the buildroot/binaries/Hammer directory.<br />
<br />
apex> xr 0x30800000 <=== This is the address that the flash base rootfs is copied to by apex on powerup><br />
<send rootfs.arm.ext2.gz via xmodem><br />
apex> erase nor:1280k+1024k<br />
apex> copy 0x30800000+1024k nor:1280k<br />
1048576 bytes transferred<br />
apex> boot <this will boot the existing kernel with the newly flashed rootfs><br />
<br />
=== Flashing a new bootloader (apex) ===<br />
<br />
apex> xr 0x30008000<br />
< send apex.bin via xmodem><br />
apex> erase nor:0x00+256k <<<yes this is correct, the 256k is intended to erase the entire block!<br />
apex> copy 0x30008000+128k nor:0x00<br />
131072 bytes transferred<br />
<br />
then press reset to run the newly flashed apex, do not type boot<br />
<br />
=== Notes on Using Minicom XMODEM ===<br />
After typing the rx 0x30008000 command in the apex shell running Ctrl+A , S and using xmodem on minicom had to be done quickly. Best bet is to copy the path of the file into a clipboard and paste it. Otherwise type your path as fast as you can. I am not sure why it has this issue, may be an apex timeout on its rx command. Not Sure. But if you encounter that error just retry.<br />
<br />
[[category:TCT-Hammer]]<br />
[[category:TinCanTools]]</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_How_to_Reflash_Apex_and_kernel&diff=11450Hammer How to Reflash Apex and kernel2009-05-02T16:14:51Z<p>Davydotcom: typo in where the zImage is found /arch/arm not /arch/arn</p>
<hr />
<div>These instructions assume that apex has been configured for a 1024k kernel region<br />
<br />
=== Flashing a new kernel (zImage) ===<br />
<br />
You'll find the zImage file in the linux-2.6.22/arch/arm/boot directory.<br />
<br />
apex> xr 0x30008000 <=== This is the address that the flash base kernel is copied to by apex on powerup><br />
< send zImage via xmodem><br />
apex> erase nor:256k+1024k<br />
apex> copy 0x30008000+1024k nor:256k<br />
1048576 bytes transferred<br />
apex> boot <this will boot the newly flashed kernel with the existing rootfs><br />
<br />
=== Flashing a new rootfs ===<br />
<br />
You'll find the rootfs.arm.ext2.gz file in the buildroot/binaries/Hammer directory.<br />
<br />
apex> xr 0x30800000 <=== This is the address that the flash base rootfs is copied to by apex on powerup><br />
<send rootfs.arm.ext2.gz via xmodem><br />
apex> erase nor:1280k+1024k<br />
apex> copy 0x30800000+1024k nor:1280k<br />
1048576 bytes transferred<br />
apex> boot <this will boot the existing kernel with the newly flashed rootfs><br />
<br />
=== Flashing a new bootloader (apex) ===<br />
<br />
apex> xr 0x30008000<br />
< send apex.bin via xmodem><br />
apex> erase nor:0x00+256k <<<yes this is correct, the 256k is intended to erase the entire block!<br />
apex> copy 0x30008000+128k nor:0x00<br />
131072 bytes transferred<br />
<br />
then press reset to run the newly flashed apex, do not type boot<br />
<br />
[[category:TCT-Hammer]]<br />
[[category:TinCanTools]]</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_Board_Software_System&diff=11448Hammer Board Software System2009-05-02T03:37:15Z<p>Davydotcom: /* Buildroot */</p>
<hr />
<div>==Source Code==<br />
<br />
=== [[APEX]] Boot Loader ===<br />
Current APEX [[Media:apex-1.5.6-hammer.tar.gz| bootloader source]] <br />
<br />
Current APEX [[Media:apex-hammer-config| bootloader config]]<br />
<br />
=== Kernel ===<br />
Current - Hammer is supported in the main kernel tree as of [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.gz linux-2.6.26] (Be careful : there are some problems with S3C2410 USB host support which appear to fixed in 2.6.28).<br />
<br />
[[Media:linux-2.6.26.5-mmc.patch| mmc-patch]] for adding sd/mmc configuration to 2.6.26<br />
<br />
[[Media:hammer-linux-2.6.22-09122007.diff.gz| kernel patch]] against 2.6.22<br />
<br />
The [[Media:s3c2410_udc.patch| s3c2410_udc patch]] (required for Gadget support)<br />
<br />
Current [[Media:hammer-kernel-config| Kernel Config]]<br />
<br />
=== Buildroot ===<br />
Current '''supported''' [[Media:buildroot-01082008.tar.gz| Buildroot]]<br />
<br/>''It seems buildroot above will not build properly on ubuntu 9.04 -- if anyone has a solution please post it...Im trying the latest buildroot now and will update if it works''<br />
Fix for [[Media:mpfr.mk| mpfr buildroot config]]<br />
<br />
Current [[Media:buildroot-hammer-config| buildroot config]]<br />
<br />
Buildroot [[Media:buildroot-hammer-alt-config| Configuration with C++ enabled]]<br />
<br />
=== Tool Chain ===<br />
No patches are needed. The tool chain is built using buildroot.<br />
<br />
=== OpenOCD ===<br />
Current Stable as of 10-06-2008<br />
*[[media:openocd-20081006.tar.gz| Current OpenOCD source Version SVN734]]<br />
*[[media:libftd2xx0.4.15.tar.gz| Current libftd2xx files Version 0.4.15]]<br />
*[[media:hammer.cfg| Current Hammer Config for OpenOCD]]<br />
*[[media:hammer.ocd| Current Hammer Script for OpenOCD]]<br />
<br />
NOTE: SVN734 is from a date of 2008-06-27, newer versions of OpenOCD from the SVN are not considered stable<br />
<br />
Older Stable Version<br />
*[[Media:openocd.tar.gz| Older stable Openocd source (2007-09-05)]]<br />
*[[Media:libftd2xx0.4.13.tar.gz| Older libftd2xx files Version 0.4.13]]<br />
*[[Media:hammer.cfg| Older Hammer Config for OpenOCD]]<br />
*[[Media:hammer.ocd| Older Hammer Script for OpenOCD]]<br />
<br />
<br />
[[Media:blink.ocd| Openocd Script to blink onboard LED]]<br />
<br />
== Other Important Stuff ==<br />
Source for devmem utility - [[media:devmem2.c|devmem]]<br />
<br />
== Binary Reference Images ==<br />
[[media:apex.bin| APEX Boot Loader]]<br />
<br />
[[media:zImage| Kernel 2.6.22 image]]<br />
<br />
[[media:rootfs.arm.ext2.gz| Root File System]]<br />
<br />
[[media:devmem| devmen utility]] binary<br />
<br />
[[Category:TCT-Hammer]]<br />
<br />
[[Category:TinCanTools]]</div>Davydotcomhttps://elinux.org/index.php?title=Hammer_Board_Software_System&diff=11447Hammer Board Software System2009-05-02T03:36:47Z<p>Davydotcom: /* Buildroot */</p>
<hr />
<div>==Source Code==<br />
<br />
=== [[APEX]] Boot Loader ===<br />
Current APEX [[Media:apex-1.5.6-hammer.tar.gz| bootloader source]] <br />
<br />
Current APEX [[Media:apex-hammer-config| bootloader config]]<br />
<br />
=== Kernel ===<br />
Current - Hammer is supported in the main kernel tree as of [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.gz linux-2.6.26] (Be careful : there are some problems with S3C2410 USB host support which appear to fixed in 2.6.28).<br />
<br />
[[Media:linux-2.6.26.5-mmc.patch| mmc-patch]] for adding sd/mmc configuration to 2.6.26<br />
<br />
[[Media:hammer-linux-2.6.22-09122007.diff.gz| kernel patch]] against 2.6.22<br />
<br />
The [[Media:s3c2410_udc.patch| s3c2410_udc patch]] (required for Gadget support)<br />
<br />
Current [[Media:hammer-kernel-config| Kernel Config]]<br />
<br />
=== Buildroot ===<br />
Current '''supported''' [[Media:buildroot-01082008.tar.gz| Buildroot]]<br />
''It seems buildroot above will not build properly on ubuntu 9.04 -- if anyone has a solution please post it...Im trying the latest buildroot now and will update if it works''<br />
Fix for [[Media:mpfr.mk| mpfr buildroot config]]<br />
<br />
Current [[Media:buildroot-hammer-config| buildroot config]]<br />
<br />
Buildroot [[Media:buildroot-hammer-alt-config| Configuration with C++ enabled]]<br />
<br />
=== Tool Chain ===<br />
No patches are needed. The tool chain is built using buildroot.<br />
<br />
=== OpenOCD ===<br />
Current Stable as of 10-06-2008<br />
*[[media:openocd-20081006.tar.gz| Current OpenOCD source Version SVN734]]<br />
*[[media:libftd2xx0.4.15.tar.gz| Current libftd2xx files Version 0.4.15]]<br />
*[[media:hammer.cfg| Current Hammer Config for OpenOCD]]<br />
*[[media:hammer.ocd| Current Hammer Script for OpenOCD]]<br />
<br />
NOTE: SVN734 is from a date of 2008-06-27, newer versions of OpenOCD from the SVN are not considered stable<br />
<br />
Older Stable Version<br />
*[[Media:openocd.tar.gz| Older stable Openocd source (2007-09-05)]]<br />
*[[Media:libftd2xx0.4.13.tar.gz| Older libftd2xx files Version 0.4.13]]<br />
*[[Media:hammer.cfg| Older Hammer Config for OpenOCD]]<br />
*[[Media:hammer.ocd| Older Hammer Script for OpenOCD]]<br />
<br />
<br />
[[Media:blink.ocd| Openocd Script to blink onboard LED]]<br />
<br />
== Other Important Stuff ==<br />
Source for devmem utility - [[media:devmem2.c|devmem]]<br />
<br />
== Binary Reference Images ==<br />
[[media:apex.bin| APEX Boot Loader]]<br />
<br />
[[media:zImage| Kernel 2.6.22 image]]<br />
<br />
[[media:rootfs.arm.ext2.gz| Root File System]]<br />
<br />
[[media:devmem| devmen utility]] binary<br />
<br />
[[Category:TCT-Hammer]]<br />
<br />
[[Category:TinCanTools]]</div>Davydotcom