Avalon4

From Bitcoin Wiki
Jump to navigation Jump to search

Pictures

A3222

Package: QFN56-8X8, 0.5mm pitch
Core voltage: 0.65 ~ 0.8V
Chip frequency: 400MHz
Hashrate: 25-30G (Normal,0.75V)
Power usage: 0.45-0.55W/G on ASIC side
VDDIO: 1.5 ~ 2.5V

SPI Example

a real data:
1st:
work n chip1
{576'hc16801619d8d4242e06e5fab25a54bbe222e8b877848c34beea79cd6528caf7e33cde02a983dab158119ce2a1c9fc4eddac8ce296d0fd9da6e18f645087e051a2d547050e8dc86b1, 64'ha, 32'h1, 32'h1, 32'h1} 
work n chip0
{576'h1bed3ba0a2cb45c1d8f8ef6712146495c44192c07145fd6d974bf4bb8f41371d65c90d1e9cb18a17fa77fe7d13cdfd7b0063910762a5f25c06b168ae087e051a895170504ac1d001, 64'h5, 32'h1, 32'h1, 32'h1}

2nd:
work n+1 chip1
{576'h0, 64'hb, 32'h1, 32'h1, 32'h1}
work n+1 chip0
{576'h0, 64'h6, 32'h1, 32'h1, 32'h1}

3rd:
work n+2 chip1
{576'h0, 64'hc, 32'h1, 32'h1, 32'h1}
work n+2 chip0
{576'h0, 64'h7, 32'h1, 32'h1, 32'h1}

then get nonce 32'h1beebba0 for chip0, 32'hc1698161 for chip1;

Avalon4

Each module carry 40 A3222 ASICs, the module should be working at 1TH/S and using ~680W power.

Avalon4 connection

JTAG Port

PMU

HU

Power & GND

LED


LED OFF ON BLINKING MEMO
ERR - POST failed or One module dead Manual
WARN Hashing Idle mode Fan is 0 or Overheat
TXD/RXD No data - Data transferring
N1/N2 No nonce - Found one nonce
PG1/PG2 - Power good Some of small PMU failed

IIC

Avalon4 CGMiner Under Ubuntu 14.04

Download

Inside your home directory, download Cgminer
git clone https://github.com/Canaan-Creative/cgminer

Compile

cd cgminer
git checkout origin/avalon4 -b avalon4
./autogen.sh --enable-avalon4
make -j 4

Run

sudo ./cgminer --avalon4-fan 60 --avalon4-freq 200 --avalon4-voltage 7125 --lowmem -o http://stratum.pool:3333 -u  work -p pass 
or
sudo ./cgminer --avalon4-fan 60 --avalon4-freq 200 --avalon4-voltage 7125 --lowmem  -o http://stratum.pool:3333 -u  work -p pass --api-allow W:192.168.2,W:192.168.2.1 --api-listen $@ 2>./log

Tweak

  • Led
 Format: ascset|ASCN,led,modularid
 eg: cgminer-api "ascset|0,led,1"
  • Fan
 Format: ascset|ASCN,fan,fanmin[-fanmax]
 eg: cgminer-api "ascset|0,fan,10" or cgminer-api "ascset|0,fan,10-100"
  • Voltage
 Format: ascset|ASCN,voltage,MMID-value[-miner_id-val_offset]
 eg: cgminer-api "ascset|0,voltage,1-7750"
     cgminer-api "ascset|0,voltage,1-7750-0-125"

Technical details

  • The auc take 1~2ms betwwen write and read. even the polling delay is 0 (4800 means 1ms)
  • The cgminer each polling takes ~20ms. even the polling delay is 0ms

MM Notes

mm-tools for Raspberry Pi (Model B)

mm-tools is a program to upgrade Avalon4 mm firmware through Raspberry Pi. In order to use mm-tools, you should use RASPBIAN image on your Raspberry Pi.

  • How to use mm-tools
1. Enable iic on Raspberry Pi

a. Commit "blacklist i2c-bcm2708" in raspi-blacklist.conf under /etc/modprobe.d first.
the example of raspi-blacklist.conf:
       # blacklist spi and i2c by default (many users don't need them)
       
       blacklist spi-bcm2708
       #blacklist i2c-bcm2708

b. Add i2c.conf under /etc/modprobe.d.
the example of i2c.conf:
      options i2c_bcm2708 baudrate=400000

c. Load i2c-dev module from start
      echo "i2c-dev" >> /etc/modules
2. Clone & Compile & Run
git clone https://github.com/Canaan-Creative/Avalon-extras.git
cd ./Avalon-extras/mm-tools;make
sudo su
make download && ./mm_tools

Compile flags

Value MBOOT MM41 DEBUG
0 No mboot Support MM-4.0 Disable debug
1 Support mboot Support MM-4.1 Enable debug

User manual

Overclock

  • MM-4.0
Chip Freq: 460:400:385, Voltage: 8250 --> 1.207T (Thanks to 王小波)

AUC

Avalon USB2IIC converter, USD VID:PID 29f1:33f2

LED

  • PWR: Power indicator
  • R: AUC response error
  • G: IIC Xfer
  • B: AUC init

AUC Firmware

20141122

  • AUC version: AUC-20141122
  • Reset asic when usb config changed(true->false)

20141105

  • AUC version: AUC-20141105
  • Code cleanup
  • Improve for firmware burning

20141103

  • AUC version: AUC-20141103
  • Add watchdog
  • Code cleanup

20141027

  • AUC version: AUC-20141027
  • Change Manufacturer to CANAAN

20141019

RPi/703N Firmware

Daily Building

20141213

  • Improve the voltage increase modules
  • Fix duplicated local work & error work
  • Fix the default settings of new module
  • Fix MM41 voltage setting
  • Add UI for password change
  • Optimise the process of cgminer-status
  • Fix display on avalon index page

20141203

  • Add module elapsed time
  • Modify the decrase offset from 250 to 4*125,increase step to 125

20141127

  • Add TL-WR703N support
  • Add automatic voltage support
  • Add GHS5m and DH%5m for each module
  • Fix AUC ADC value

20141124

  • Add MM41 support
  • Add mm count value in API status
  • Fix the matching_work error
  • Update dh calculation for luci
  • Change theme name to avalon

20141118

  • Adjust module voltage by ascset
  • A new theme was added to luci,and use it as default

20141112

  • Support RPi B/B+ version
  • Change default IIC speed from 1M to 400K
  • Add Avalon4 MM rolling ntime offset
  • Update fan adjustment
  • Add a new luci theme for Raspberry Pi
  • Display DNA on cgminer status page

20141029

  • First version of Avalon4 firmware

NEXT-TESTING

  • NOTICE: Only for testing
  • TL-WR703N wifi display none
  • Add mm-tools
  • Add mining mode
  • Update the set_voltage method to one by one
  • The temperature can be < 0C.
  • Add new mm package type(AVA4_P_SET_FREQ, AVA4_P_SET_VOLT, AVA4_P_STATUS_LW, AVA4_P_STATUS_HW)
  • Support auto adjust voltage individually(Only support on MM-4.1, MM4.0(>401501-d17f4a10))

Issues

  • WIFI cann't work on TL-WR703N
This issue was caused by ubus, We can enable or disable it through the button in  the webpage, 
but the display is invalid when wifi was opened.
Work around method: https://github.com/openwrt/luci/commit/ecb0c2f11b861e5035b0397d2396ee4b5e9b3c3e
  • Local hashrate count lower than pool or actual.

MM Firmware (For MM-4.1)

Daily Building

20150115

  • Version 411501-d17f4a10
  • Fix negative temperatures
  • Support MM Tx reset by CGMiner

20141231

  • Version 411501-08e45110
  • Based on MM-4.0 401412-d31c2c10
  • Turn down cpu frequency(100MHz -> 50MHz)
  • Adjust clk of three domains.
  • Fix LED warning blink when get new stratum
  • Support voltage adjustion by miners
  • Put the frequency table to CGMiner
  • Miner's localwork statistics by HW

NEXT-TESTING

  • Reboot mm automatically after upgrade
  • Drop mboot,use a method to upgrade
  • Store extra info for MM

MM Firmware (For MM-4.0)

Daily Building

20150115

  • Version 401501-d17f4a10
  • Turn down cpu frequency(100MHz -> 50MHz)
  • Adjust clk of three domains.
  • Fix LED warning blink when get new stratum
  • Miner's localwork statistics by HW
  • Fix negative temperatures
  • Support MM Tx reset by CGMiner

20141219

  • Version 401412-d31c2c10
  • Fix temperautre read. read once per second not 200 times per second
  • Compile MM under Virtual Machine may cause unknown problem. this version compile under ubuntu 14.04


20141217

  • Version 401412-39242210
  • Change api for miner work statistics
  • Fix the g_local_work count
  • Fix temperautre < 0
  • Fix led display when post failed

20141213

  • Version 401412-7ef4ab10
  • Support MBOOT
  • Keep the nonce2_offse and nonce2_range since g_module_id didn't change
  • Keep mm working when temp is greater than IDLE_TEMP
  • Add parameter for test core count
  • Warning when no fan connect

20141122

  • Version 401411-cad52ec0
  • Fix the type on DEFAULT MDOULES
  • Fix the led status when warning
  • Add MM4.1 defines
  • Add new power module in test/

20141111

  • Version: 401411-5965e0f0
  • Add ntime offset configure from outside
  • Reset globe values when idle
  • Update ChangeLog, README and MM_VERSION

20141109

  • Version: 401410-c6ba5180
  • Big Code cleanup, Update MM protocol.
  • Update timeout value to 90% the theory value.
  • Fix the hashrate couning.
  • Fix watchdog issue. enable watchdog.
  • Remove g_module_id check since we use I2C
  • Move adjust fan in polling package.
  • Update MM idle default fan speed to 10%

20141104

  • Version: 401410-223a1c50
  • Update idle timeout from 5s to 3s
  • Display ID on controller LEDs for debug
  • Fix the automatic module detect
  • Disable watch dog
  • IDLE check when both (new stratum) and (module id) was configured

20141101

  • Fix the front led display
  • Cutoff power after testing

20141030

  • First version of Avalon4 firmware

NEXT-TESTING

Design file

Links