Avalon nano: Difference between revisions

From Bitcoin Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
= Review =
It's a usb dongle, using only one A3233.
* https://bitcointalk.org/index.php?topic=1022764.0
 
= Configrations =
* LPC11u14
  '''Clock Crystals'''        48.000 MHz
* A3233
  '''Clock Crystals'''        24.000 MHz
 
= USB: 29F1:33F1 =


= Schematics =
== Hardware version 1.0 ==
* [http://downloads.canaan-creative.com/software/avalon_nano/doc/Avalon_usb_sch.pdf Avalon-usb schematics]
=== Features ===
* VID/PID: 0x1FC9/0x0083
* Icarus protocol support
* It use USB CDC, without need driver installation under Linux
* Smart [[#LED|LED]] indicator
* Overheating protection. (>= 65℃)
* Adjust the hashrate automatically by temperature


=CGMiner for Avalon nano =
=== Software ===
== CGMiner Under Ubuntu 14.04 ==
It can support CGMiner, BFGMiner and AvalonMiner(Based on BFGMiner) for now.
===  Download ===
==== CGMiner Under Ubuntu 14.04 ====
* Download / Compile / Run
  '''Download'''
  Inside your home directory, download CGMiner
  Inside your home directory, download CGMiner
  git clone https://github.com/Canaan-Creative/cgminer
  git clone https://github.com/Canaan-Creative/cgminer
   
 
=== Compile ===
  '''Compile'''
  cd cgminer
  cd cgminer
  git checkout origin/avalon-usb -b avalon-usb
  git checkout origin/avalon-usb -b avalon-usb
Line 25: Line 24:
  make -j 4
  make -j 4


=== Run ===
'''Run'''
  sudo ./cgminer --icarus-options 115200:1:1 --icarus-timing 0.22 -o http://stratum.pool:3333 -u  work -p pass  
  sudo ./cgminer --icarus-options 115200:1:1 --icarus-timing 0.22 -o http://stratum.pool:3333 -u  work -p pass  
  or
  or
  sudo ./cgminer --icarus-options 115200:1:1 --icarus-timing 0.22 -o http://stratum.pool:3333 -u  work -p pass --api-allow W:192.168.2,W:192.168.2.1 --api-listen $@ 2>./log
  sudo ./cgminer --icarus-options 115200:1:1 --icarus-timing 0.22 -o http://stratum.pool:3333 -u  work -p pass --api-allow W:192.168.2,W:192.168.2.1 --api-listen $@ 2>./log


= BFGMiner =
* Patches
* Run under Linux
Patch for Canaan Creative's CGMiner: [http://downloads.canaan-creative.com/software/avalon_nano/patches/001-avalon3-nano.patch 001-avalon3-nano.patch]
For what: CGMiner patch.
From where: Based c5ec1171@https://github.com/Canaan-Creative/cgminer/tree/avalon2
Comments:
  Support avalon3 nano in cgminer.
  Support Icarus protocol.
 
==== BFGMiner ====
* Run
  '''Run under Linux'''
   ./bfgminer \
   ./bfgminer \
         -S ICA:/dev/ttyACMx \
         -S ICA:/dev/ttyACMx \
Line 44: Line 52:
         2>log
         2>log


* Run under Windows
  '''Run under Windows'''
   bfgminer.exe ^
   bfgminer.exe ^
         -S ICA:\\.\COMn ^
         -S ICA:\\.\COMn ^
Line 56: Line 64:
         --api-listen ^
         --api-listen ^
         2>log
         2>log
 
  Note: See the details about the timing in README. It works ~4GH/s(400 * 11.8) at 400MHz.
  timing = (1 / (4 * 10 ** 9)) * 10 ** 9 (python format)


  备注:timing详见bfgminer的README,如果当前配置的频率是400MHz,则Hashrate=400*11.8=~4Gh/s
* MHS Cur calculation
  <math>\mbox{timing} = \frac{1}{4\times 10^9}\times 10^9</math>
   MHS Cur = Diff1 Work * (Difficulty Accepted / (Difficulty Accepted + Difficulty Rejected + Difficulty Stale)) * 60/ Elapsed * 71582788 / 1000000
 
   Note:
* BFGMiner MHS Cur
   1.if Difficulty Accepted + Difficulty Rejected + Difficulty Stale = 0,then Difficulty Accepted / (Difficulty Accepted + Difficulty Rejected + Difficulty Stale) = 1。
   MHS Cur = Diff1 Work * (Difficulty Accepted/(Difficulty Accepted+Difficulty Rejected+Difficulty Stale)*60/(Elapsed)*71582788/(1000000)
  2.Get all the infomation through ./bfgminer-rpc -o summary
   所有的信息可以通过./bfgminer-rpc -o summary获取。
   注:如果Difficulty Accepted+Difficulty Rejected+Difficulty Stale = 0,则Difficulty Accepted/(Difficulty Accepted+Difficulty Rejected+Difficulty Stale) 取1。


* BFGMiner release from luck.dashjr
* BFGMiner release from luck.dashjr
   http://luke.dashjr.org/programs/bitcoin/files/bfgminer/
   http://luke.dashjr.org/programs/bitcoin/files/bfgminer/


= LED =
==== AvalonMiner ====
Idle:Green.
It is developed under Windows with Chinese UI only, You can import the solution and crack it by yourself. It is distributed under UNLICENSE.Source code can be download here: <ref>[https://github.com/Canaan-Creative/Avalon-nano/tree/master/gui_1.0</ref>
Working:From red to blue( frequency high to low).
 
Hot alert:Red blinking.
===== Release =====
[http://downloads.canaan-creative.com/software/avalon_nano/software/20140911/ 20140911]
* Avalon3 nano windows miner(20140911)
* Beautifull GUI
* Auto detect Avalon nano
 
[http://downloads.canaan-creative.com/software/avalon_nano/software/20140803/ 20140803]
* Avalon3 nano windows miner(20140803) first version
* Support bfgminer only
* Support icarus protocal


= ULINK 2=
===== Run or Debug with CLI =====
== Configure ULINK2 for LPCXpresso ==
# Copy BfgMiner to a safe place.
* Change boot mode to CMSIS-DAP
# Uninstall Avalon GUI Miner
Use the [http://www.keil.com/support/man/docs/ulink2/ulink2_boot_mode.htm Boot Mode Utility] to change the mode like this: UL2_Configure B1.
# Modify the icadbg.cmd(under BfgMiner folder) with your correct com port.
# Double click icadbg.cmd.
Note: BFGMiner location: (C:\Program Files (x86)\Avalon Nano\BfgMiner)
 
=== Hardware ===
==== Schematics ====
* [http://downloads.canaan-creative.com/software/avalon_nano/doc/Avalon_usb_sch.pdf Avalon-usb schematics]
 
==== LPC11U14 Spec ====
{| class='wikitable'
|-
| Type || Infomation
|-
| Processor || NXP's Cortex-M0 LPC11U14 microcontroller
|-
| Flash || 32 kB
|- 
| Data Memory || 6 kB
|-
| Clock Crystals || 12.000 MHz crystal for CPU
|}


* Set jumper to 3.3V position
==== Clock ====
  See [http://www.keil.com/support/man/docs/ulink2/ulink2_hw_jumpers.htm  Jumpers]
{| class='wikitable'
|-
| Type  ||  Value
|-
| LPC11U14 (External)    ||  48.000 MHz
|-
| A3233 XCLK (From LPC11U14) ||  24.000 MHz
|}


* Connect Avalon nano to ULINK2
==== LED ====
Check [http://support.code-red-tech.com/CodeRedWiki/HardwareDebugConnections SWD Connector Pinout], need connect SCLK,SWIO,GND only.
{| class='wikitable'
|-
| Color || Memo
|-
| Green || Idle status
|-
| Red/Blue || Working (Frequency high -> low,led red -> blue)
|-
| Red blinking || Overheating
|}


== Miscs ==
==== Programmer ====
* [[Keil IDE for avalon3 nano development]]
* SmartPro 5000U-Plus
* OpenOCD is not support ULINK2 (See src/jtag/drivers/ulink.c)
* [http://www.keil.com/support/man/docs/ulink2/ulink2_hw_connectors.htm Target Connectors]


= SmartPro 5000U-Plus =
==== SWD Debuger ====
* 技术支持联系电话:020-28872449
LPC11U14 only support swd debug.
* [[Avalon nano离线工程制作]]
The debugger can also be used to program the LPC11U14 chip.
* [http://www.embedtools.com/download/downs.asp?ID=2994 SmartPRO系列通用编程器软件(SmartPRO 2008)]
===== LPCXpresso =====
* [http://www.embedtools.com/download/downs.asp?ID=2239 SmartPRO 5000U 脱机编程产量控制功能应用笔记]
* Installation and Activation
* [http://www.zlgmcu.com/tools/bianchengqi/EasyPRO/programmerFAQ.pdf 编程器FAQ]
  LPCXpresso download link <ref> [https://www.lpcware.com/lpcxpresso/download]</ref>
  Free Edition is enough. Then activate it. <ref> [http://www.lpcware.com/lpcxpresso/activate] </ref>


= LPC11u14 =
* LPC-Link diagnostics
== LPC11U14 LPCXpresso Board Spec ==
  '''Processor'''            NXP's Cortex-M0 LPC11U14 microcontroller in LQFP48 package
  '''Flash'''                32 kB
  '''Data Memory'''          6 kB
  '''Clock Crystals'''        12.000 MHz crystal for CPU
  '''Dimensions'''            35 x 140 mm
  '''Power'''                3.15V-3.3V external powering, or from USB via JTAG probe (LPC-LINK)
  '''Connectors'''           
                              • mini-B USB connector for LPC11U14 USB interface
                              • All LPC11U14 pins available on expansion connector (2x27 pin rows, 100 mil pitch, 900 mil between rows)
  '''Other'''                 
                              • Embedded JTAG (LPC-LINK) functionality via LPCXpresso toolchain
                              • LPC-LINK can be connected to external target processor after modifications to the LPCXpresso board
                              • LED on PIO0_7
== LPC-Link diagnostics ==
   Diagnostics when connecting to LPC-Link
   Diagnostics when connecting to LPC-Link
    
    
Line 129: Line 167:
   use newlib semihost
   use newlib semihost


== How to debug issues with gdb (Works on OSX) ==
* How to debug issues with gdb (Works on OSX)
  1.Compile the program with debug options
    Compile the souce with debug, then run gdb with the following commands:
    Change Makefile under root directory, set SW_VERSION to DEBUG
     1.arm-none-eabi-gdb avalon_nano.axf
 
     2.target extended-remote | crt_emu_cm_redlink -g -2 -vendor=NXP -pLPC11U14/201 -flash-driver=LPC11_12_13_32K_4K.cfx
  2.Recompile the program
     3.load
     make clean all
  3.Start gdb
    arm-none-eabi-gdb avalon_nano.axf
     target extended-remote | crt_emu_cm_redlink -g -2 -vendor=NXP -pLPC11U14/201 -flash-driver=LPC11_12_13_32K_4K.cfx
     load
    
    
   Then you can use gdb as you want
   Then you can use gdb as you want


= Firmware =
===== ULINK 2 =====
== Reflash ==
* Configure ULINK2 for LPCXpresso
* [[Avalon3 nano firmware burner]]
1.Change boot mode to CMSIS-DAP
Use the [http://www.keil.com/support/man/docs/ulink2/ulink2_boot_mode.htm Boot Mode Utility] to change the mode like this: UL2_Configure B1.
2.Set jumper to 3.3V position
See [http://www.keil.com/support/man/docs/ulink2/ulink2_hw_jumpers.htm  Jumpers]
3.Connect Avalon nano to ULINK2
Check [http://support.code-red-tech.com/CodeRedWiki/HardwareDebugConnections SWD Connector Pinout], need connect SCLK,SWIO,GND only.


== Patches ==
=== Firmware ===
* [http://downloads.canaan-creative.com/software/avalon_nano/patches/001-avalon3-nano.patch 001-avalon3-nano]
==== Reflash ====
  For what: Cgminer patch.
* Avalon3 nano firmware burner <ref>http://downloads.canaan-creative.com/software/avalon_nano/burner</ref>
  From where: Based c5ec1171@https://github.com/BitSyncom/cgminer/tree/avalon2
  Comments: Support avalon3 nano in cgminer.
            Support Icarus protocol.


==[http://downloads.canaan-creative.com/software/avalon_nano/firmware/20140523/ 20140523]==
==== Release ====
[http://downloads.canaan-creative.com/software/avalon_nano/firmware/20140523/ 20140523]
* Avalon3 nano firmware(20140523-dd84b993)
* Avalon3 nano firmware(20140523-dd84b993)
* Support nonce receive timeout check
* Support nonce receive timeout check
* Support adjust freq for 100Mhz to 360Mhz,freq value after reset is 360Mhz
* Support adjust freq for 100Mhz to 360Mhz,freq value after reset is 360Mhz


==[http://downloads.canaan-creative.com/software/avalon_nano/firmware/20140519/ 20140519]==
[http://downloads.canaan-creative.com/software/avalon_nano/firmware/20140519/ 20140519]
* Avalon3 nano firmware(20140519-8c38877c):first version
* Avalon3 nano firmware(20140519-8c38877c):first version
* Avalon3 nano test scripts found here:[https://github.com/BitSyncom/avalon-extras/tree/master/scripts a3233_avalon_usb_testbench.sh]
* Avalon3 nano test scripts found here:[https://github.com/BitSyncom/avalon-extras/tree/master/scripts a3233_avalon_usb_testbench.sh]
Line 165: Line 202:
* Include avalon3 nano module test(avalon_bsp_testben)
* Include avalon3 nano module test(avalon_bsp_testben)
* bfgminer(0676fa314a9cc1491ad2e5f5c6a5e97f38fa67e3),how to run:http://wiki.0xf8.com/index.php/Bfgminer
* bfgminer(0676fa314a9cc1491ad2e5f5c6a5e97f38fa67e3),how to run:http://wiki.0xf8.com/index.php/Bfgminer
==[http://downloads.canaan-creative.com/software/avalon_nano/firmware/nexttesting/ NEXT-TESTING]==
 
[http://downloads.canaan-creative.com/software/avalon_nano/firmware/nexttesting/ NEXT-TESTING]
* NOTICE: Only for testing
* NOTICE: Only for testing
* Adjust LED color according to the temperature
* Adjust LED color according to the temperature
= AvalonMiner =
== [https://github.com/Canaan-Creative/Avalon-nano/tree/master/gui_1.0 Sourcecode] ==
It is developed under Windows with Chinese UI only, You can import the solution and crack it by yourself. It is distributed under UNLICENSE.


== [http://downloads.canaan-creative.com/software/avalon_nano/software/20140911/ 20140911] ==
=== Review ===
* Avalon3 nano windows miner(20140911)
* https://bitcointalk.org/index.php?topic=1022764.0
* Beautifull GUI
* Auto detect Avalon nano


==[http://downloads.canaan-creative.com/software/avalon_nano/software/20140803/ 20140803]==
=== Issues ===
* Avalon3 nano windows miner(20140803) first version
* OpenOCD is not support ULINK2 (See src/jtag/drivers/ulink.c)
* Support bfgminer only
* Support icarus protocal


= Windows GUI=
=== References ===
<references />


== CLI ==  
=== Links ===
* BFGMiner (C:\Program Files (x86)\Avalon Nano\BfgMiner)
* [http://www.nxp.com/documents/user_manual/UM10462.pdf LPC11U1X User Manual]
  1. Copy BfgMiner to a safe place.
  2. Uninstall Avalon GUI Miner
  3. Modify the icadbg.cmd(under BfgMiner folder) with your correct com port.
  4. Double click icadbg.cmd.
 
= Links =
* www.nxp.com/documents/user_manual/UM10462.pdf
* LPC11u1x User Manual: 11.4.3 SoftConnect
* LPC11u1x Datasheet : 11.1 Suggested USB interface solutions
* http://www.lpcware.com/content/forum/disconnect-usb-by-software-in-lpc1343
* http://www.lpcware.com/content/forum/softconnect-not-working-sometimes
* http://www.lpcware.com/content/forum/nvicsystemreset-can-not-reset-mcu
* [http://www.lpcware.com/lpcxpresso/activate LPCXpresso Active URL]
* [http://www.lpcware.com/content/nxpfile/lpcopen-software-development-platform-lpc11xx-packages-0 LPCOpen sourcecode]
* [http://www.lpcware.com/content/nxpfile/lpcopen-software-development-platform-lpc11xx-packages-0 LPCOpen sourcecode]
* [http://docs.lpcware.com/lpcopen/v1.03/ LPCOpen docs]
* [http://docs.lpcware.com/lpcopen/v1.03/ LPCOpen docs]
Line 220: Line 239:
* [http://microcontrollershop.com/product_info.php?products_id=4838 LPC11U14 ARM Cortex-M0 Board]
* [http://microcontrollershop.com/product_info.php?products_id=4838 LPC11U14 ARM Cortex-M0 Board]
* [http://www.lpcware.com/content/blog/application-programming-iap-code-example In-Application Programming (IAP) Code Example]
* [http://www.lpcware.com/content/blog/application-programming-iap-code-example In-Application Programming (IAP) Code Example]
*software for flashing / upgrading firmware
* Software for flashing / upgrading firmware
**[http://www.lpcware.com/lpcxpresso/download LPCXpresso] (SWD method)
** [http://www.lpcware.com/lpcxpresso/download LPCXpresso] (SWD method)
* [http://www.keil.com/support/man/docs/ulink2/ulink2_hw_connectors.htm Target Connectors]

Revision as of 07:51, 14 July 2015

It's a usb dongle, using only one A3233.

Hardware version 1.0

Features

  • VID/PID: 0x1FC9/0x0083
  • Icarus protocol support
  • It use USB CDC, without need driver installation under Linux
  • Smart LED indicator
  • Overheating protection. (>= 65℃)
  • Adjust the hashrate automatically by temperature

Software

It can support CGMiner, BFGMiner and AvalonMiner(Based on BFGMiner) for now.

CGMiner Under Ubuntu 14.04

  • Download / Compile / Run
Download
Inside your home directory, download CGMiner
git clone https://github.com/Canaan-Creative/cgminer
Compile
cd cgminer
git checkout origin/avalon-usb -b avalon-usb
./autogen.sh --enable-icarus
make -j 4
Run
sudo ./cgminer --icarus-options 115200:1:1 --icarus-timing 0.22 -o http://stratum.pool:3333 -u  work -p pass 
or
sudo ./cgminer --icarus-options 115200:1:1 --icarus-timing 0.22 -o http://stratum.pool:3333 -u  work -p pass --api-allow W:192.168.2,W:192.168.2.1 --api-listen $@ 2>./log
  • Patches
Patch for Canaan Creative's CGMiner: 001-avalon3-nano.patch
For what: CGMiner patch.
From where: Based c5ec1171@https://github.com/Canaan-Creative/cgminer/tree/avalon2
Comments: 
 	Support avalon3 nano in cgminer.
 	Support Icarus protocol.

BFGMiner

  • Run
 Run under Linux
 ./bfgminer \
       -S ICA:/dev/ttyACMx \
       -o stratum+tcp://stratum.ozco.in:80 -O mikeqin.avalon:1234 \
       --set-device ICA:baud=115200 \
       --set-device ICA:reopen=timeout \
       --set-device ICA:work_division=1 \
       --set-device ICA:fpga_count=1 \
       --set-device ICA:probe_timeout=100 \
       --set-device ICA:timing=0.22 \
       --api-listen \
       2>log
 Run under Windows
 bfgminer.exe ^
       -S ICA:\\.\COMn ^
       -o stratum+tcp://stratum.ozco.in:80 -O mikeqin.avalon:1234 ^
       --set-device ICA:baud=115200 ^
       --set-device ICA:reopen=timeout ^
       --set-device ICA:work_division=1 ^
       --set-device ICA:fpga_count=1 ^
       --set-device ICA:probe_timeout=100 ^
       --set-device ICA:timing=0.22 ^
       --api-listen ^
       2>log
 
 Note: See the details about the timing in README. It works ~4GH/s(400 * 11.8) at 400MHz.
 timing = (1 / (4 * 10 ** 9)) * 10 ** 9 (python format)
  • MHS Cur calculation
 MHS Cur = Diff1 Work * (Difficulty Accepted / (Difficulty Accepted + Difficulty Rejected + Difficulty Stale)) * 60/ Elapsed * 71582788 / 1000000
 Note:
 1.if Difficulty Accepted + Difficulty Rejected + Difficulty Stale = 0,then Difficulty Accepted / (Difficulty Accepted + Difficulty Rejected + Difficulty Stale) = 1。
 2.Get all the infomation through ./bfgminer-rpc -o summary
  • BFGMiner release from luck.dashjr
 http://luke.dashjr.org/programs/bitcoin/files/bfgminer/

AvalonMiner

It is developed under Windows with Chinese UI only, You can import the solution and crack it by yourself. It is distributed under UNLICENSE.Source code can be download here: [1]

Release

20140911

  • Avalon3 nano windows miner(20140911)
  • Beautifull GUI
  • Auto detect Avalon nano

20140803

  • Avalon3 nano windows miner(20140803) first version
  • Support bfgminer only
  • Support icarus protocal
Run or Debug with CLI
  1. Copy BfgMiner to a safe place.
  2. Uninstall Avalon GUI Miner
  3. Modify the icadbg.cmd(under BfgMiner folder) with your correct com port.
  4. Double click icadbg.cmd.

Note: BFGMiner location: (C:\Program Files (x86)\Avalon Nano\BfgMiner)

Hardware

Schematics

LPC11U14 Spec

Type Infomation
Processor NXP's Cortex-M0 LPC11U14 microcontroller
Flash 32 kB
Data Memory 6 kB
Clock Crystals 12.000 MHz crystal for CPU

Clock

Type Value
LPC11U14 (External) 48.000 MHz
A3233 XCLK (From LPC11U14) 24.000 MHz

LED

Color Memo
Green Idle status
Red/Blue Working (Frequency high -> low,led red -> blue)
Red blinking Overheating

Programmer

  • SmartPro 5000U-Plus

SWD Debuger

LPC11U14 only support swd debug. The debugger can also be used to program the LPC11U14 chip.

LPCXpresso
  • Installation and Activation
 LPCXpresso download link [2]
 Free Edition is enough. Then activate it. [3]
  • LPC-Link diagnostics
 Diagnostics when connecting to LPC-Link
 
 1.  lpc-link info
 crt_emu_lpc11_13_nxp -info-emu -wire=winusb
 
 2.  target info 
 crt_emu_lpc11_13_nxp -info-target -pLPC11U14/201 -wire=winusb -4
 
 3. burn and run axf file
 crt_emu_lpc11_13_nxp -pLPC11U14/201 -wire=winusb -flash-load-exec nxp_lpcxpresso_11u14_periph_blinky.axf
 
 4. info scan
 crt_emu_lpc11_13_nxp -info-scan -wire=winusb
 
 5. semi_host debug
 use newlib semihost
  • How to debug issues with gdb (Works on OSX)
   Compile the souce with debug, then run gdb with the following commands:
   1.arm-none-eabi-gdb avalon_nano.axf
   2.target extended-remote | crt_emu_cm_redlink -g -2 -vendor=NXP -pLPC11U14/201 -flash-driver=LPC11_12_13_32K_4K.cfx
   3.load
 
  Then you can use gdb as you want
ULINK 2
  • Configure ULINK2 for LPCXpresso
1.Change boot mode to CMSIS-DAP
Use the Boot Mode Utility to change the mode like this: UL2_Configure B1.

2.Set jumper to 3.3V position
See Jumpers

3.Connect Avalon nano to ULINK2
Check SWD Connector Pinout, need connect SCLK,SWIO,GND only.

Firmware

Reflash

  • Avalon3 nano firmware burner [4]

Release

20140523

  • Avalon3 nano firmware(20140523-dd84b993)
  • Support nonce receive timeout check
  • Support adjust freq for 100Mhz to 360Mhz,freq value after reset is 360Mhz

20140519

  • Avalon3 nano firmware(20140519-8c38877c):first version
  • Avalon3 nano test scripts found here:a3233_avalon_usb_testbench.sh
  • Support adjust freq for 360Mhz to 400Mhz,value after reset is 400Mhz
  • Include avalon3 nano module test(avalon_bsp_testben)
  • bfgminer(0676fa314a9cc1491ad2e5f5c6a5e97f38fa67e3),how to run:http://wiki.0xf8.com/index.php/Bfgminer

NEXT-TESTING

  • NOTICE: Only for testing
  • Adjust LED color according to the temperature

Review

Issues

  • OpenOCD is not support ULINK2 (See src/jtag/drivers/ulink.c)

References

Links