Pages:
Author

Topic: [Применение чипов Bitfury], схемные решения и т.п. - page 40. (Read 141720 times)

legendary
Activity: 1946
Merit: 1000


PS: После трех дней работы скорость cgminer упала с 5 до 3,6.

может там вобще ядра отваливаются, досих пор же нет никакой документацыи на чип
sr. member
Activity: 335
Merit: 250
Задал вопрос cscape который писал прошивку.
Вот его ответ:
Quote
I just read the chip periodically to see if job is ready. About 4-5x per second seems to work good enough.

I haven't watched the inmiso pin. I'll check that out.

I noticed that at beginning the chip is rather erratic and producing a lot of duplicate results. Only after cycling through 16 word buffer at least once, will it stabilize. Maybe that is what you are seeing. How long does your 'high speed' phase last ?

PS: bitfury на вопрос о меандре ответил что не знает что это такое.
PSS: Что такое high speed phase и какая у нее длительность? Cheesy
sr. member
Activity: 335
Merit: 250
dimitrus я не вникал (пока) в протокол общения с чипом и не знаю как работает программа майнер
но предполагаю что дело идет так:
загружаем работу
периодически опрашиваем чип
если появился результат то отправляем его и загружаем новый

Не пойму где тут может происходить рассинхронизация?
Самое худшее имхо что может быть это потеря производительности. Слишком большое время рефреша.
Результат лежит а еще не сделали рефреш.
Возможно я все не так понимаю. Просвяти вкратце.


PS: После трех дней работы скорость cgminer упала с 5 до 3,6.
legendary
Activity: 1946
Merit: 1000
безплатно делюсь идеей!!!
предлагаю использовать в качестве питальника видики питальник скажем 5870 может обеспечить ток в 80А кому интересно дерзайте пробуйте! у меня времени нет
member
Activity: 116
Merit: 10
Если передергивать питание ядра, то cgminer вначале работы, рапортует о большом количестве дублей, хоть и показывает при этом большой хешрейт. Но и без ресета ядра, при перезапуске майнера хешрейт выше, но при этом нету дублей.

Так и должно быть, у меня тоже самое. Вы за все время видели когда-нибудь столько последовательно созданных дублей(20-40шт.)? Smiley
Дубли идут потому, что чип стартует с синхронизацией, кстати обратите внимание с какой скоростью выплевывает эти первые дубли, практически все мгновенно. Сейчас происходит принцип бомбардировки чипа кучей пакетов, хаотично, с расчетом, что какая-то часть, попадет как нужно, в кадр. Вот и получается, что при старте их слишком много попадет куда нужно, о чем майнер и кричит. В рабочем варианте, количество запросов будет значительно меньше, но они должны быть синхронизированы.

По поводу масла, повышения напряжения и т.д., не спешите выжимать все соки из чипа, дубовыми методами. Он сейчас как хромоножка, бежит и спотыкается, больше конечно спотыкается, чем бежит, а вы его еще сильней подталкиваете, вместо того, чтобы хромоту лечить Wink Подумайте как он хорошо бежать будет, после того как хромому вылечите код, если он бедный хромой, да еще в масле или еще под чем, бежит со скоростью 3Gh  Grin

Quote
Может быть возможно обойтись простой реиницализацией чипов, выбрав подходящий интервал?
Я смотрел, повторная инициализация чипа после включения питания ничего не меняет, значения в регистрах же не сбрасываются, можете попробовать обнулить значения. Записывать первыми обнуленные значения, потом делать повторную инициализацию и записывать нужные значения.
Отправлять два пакета инициализации, первый обнуление регистров, второй нужные значения. Кстати эти регистры читать можно? Может стоит, если это возможно, прочитать исходное значение регистров, после включения питания?

ЗЫ IMHO. Текущий код общения с чипом неверный, в него нужно добавить синхронизацию передачи данных с чипом. Нужно опрашивать изменение состояния перед запуском SPI режима на пине MISO. После включать SPI и кидать какое-то количество пакетов, потом все заново, или менять строку инициализации, этот момент нужно проверять.

Сейчас, нужно найти, после какой последовательности инициализации появляются кадры синхронизации на MISO, возможно нужно переделать порядок инициализации. Возможно получится найти тот самый регистр конфигурации, который запускает синхронизацию. Нужен логический анализатор с возможностью записать 2-3 кадра по 1.3сек. Как собрать анализатор, я писал выше Wink
hero member
Activity: 690
Merit: 502
Или нужно найти как передернуть эту синхронизацию через регистры, если это сделать нельзя, нужно разводить плату с возможностью программно передергивать питание чипа.

Если передергивать питание ядра, то cgminer вначале работы, рапортует о большом количестве дублей, хоть и показывает при этом большой хешрейт. Но и без ресета ядра, при перезапуске майнера хешрейт выше, но при этом нету дублей.

Может быть возможно обойтись простой реиницализацией чипов, выбрав подходящий интервал?
legendary
Activity: 1946
Merit: 1000
прокоментируй пожалуста правильно ли я понял что наддо переставить строчку nmsleep(BITFURY_REFRESH_DELAY); и все или еще чтото поменять?

жаль что всетаки 3+ гигахеша можно добится только екстремальним разгоном, я надеялся на то что мы просто чегото не знаем ))))
member
Activity: 80
Merit: 10
На видео Пельтье нет
sr. member
Activity: 335
Merit: 250
Легкодымов на видео у тебя элемент Пельтье а с другой стороны огромный радиатор?
member
Activity: 80
Merit: 10
Чип бегает на 3 Гхеша, это достоверный факт (во всяком случае для меня).

Предыдущий образец у меня бегал на 3.25 на 1.5 часовой выборке, но я его разобрал. Текущий экземпляр выдает чуть больше 3 Гх/c.  Что нужно что бы добиться хорошего результата:

1. Хороший преобразователь питания. Нет хорошего - возьмите огромный аккумулятор, подключите последовательно через подходящий диод. Нет аккумулятора - найдите пару хороших солнечных элементов. Нет солнечных элементов - можно взять несколько батареек D.

2. Хорошее охлаждение. Первый образец я пробовал как раз на элементах Пельтье и чип покрывался росой.

3. Напряжение 0.88 - 0.95 Вольт. Скорость 1F, 3F.

4. Качественный софт. Один баг я впоймал и его опубликовал needbmw. Но это не предел, баги есть еще. Всё будет опубликовано, но только после окончательной полировки. Ориентировачно - не меньше 3х недель. Первый образец бегал с глючным софтом и всеравно выдавал трёшечку.

Сейчас я переделываю преобразователь питания и намереваюсь снять 3.2 Гхеша в среднем для 4х чипов.

Вы можете спалить чип следуя моим советам. Всё опубликованое даст хороший результат только с разумным подходом.

http://www.youtube.com/watch?v=5m7c4FLLGUQ
https://dl.dropboxusercontent.com/u/20909492/CAM00101.jpg

Легкодымов.
legendary
Activity: 1946
Merit: 1000
сконфигуренную я вобще щас с распи удаленно работаю она от меня в 12км )))
sr. member
Activity: 335
Merit: 250
t309 Частоту SPI меряешь осциллом или сконфигуренную указываешь?
legendary
Activity: 1876
Merit: 1000
Масло моторное синтетика

Лучше трансмиссионное попробуй, дизельное.
legendary
Activity: 1946
Merit: 1000
ну ету часть я так и понял убрать ету строчку изза скобки и поставить перед second_run
меня смущает -321,8 +328,8 @@ int libbitfury_sendHashData(struct bitfury_device *bf, int chip_n) {
                        memcpy(oldbuf, newbuf, 17 * 4);

у меня прибавка больше по 0.25 на чип, после изменения строчки в коде еще + 0.25 на чип (хотя последнее может разница пул стратум вс соло) и да стало стабильнее.

указывайте при каком напряжении, клоке, частоте спиай, и частоте опроса вы получили те или иные результаты, пора составлять таблицу!

ff ff ff ff ff ff 7f 00 
0.71v
8000000
10
4 чипа
9.3гигахеша (стратум)
sr. member
Activity: 335
Merit: 250
t309 Я так понял пост needbmw что надо перед строчкой
second_run = 1;
добавить
nmsleep(BITFURY_REFRESH_DELAY);

Поставил 10ms. Было 4,8 и немного менялось стало 5. И стабильно. С двух чипов.
hero member
Activity: 553
Merit: 500
наконец добрался к платке с чипом под "маслом"
http://imgur.com/5aTJD08
как результат? что за черная фиговина там плавает? ето ти по проводам через разем чипаку VDD подаеш? какая просадка интересно?

dimitrus мне тоже ето интересно, ждем коментов от битфури )))
Результат на старте 7гхш, резко падаем через 20 секунд до 4-3.7 потом гдето через 10-15 минут падение до 3,2-2,7
Чёрная хреновина, куллер (турбинка с ноута) для прогона масла.
Да по проводам, там ещё питальник снизу, просадка  меньше 0,1
Масло моторное синтетика
legendary
Activity: 1946
Merit: 1000
Там просто ошибка в коде:

Там в коде ошибка, он теряет решения:

libbitfury.c:

@@ -321,8 +328,8 @@ int libbitfury_sendHashData(struct bitfury_device *bf, int chip_n) {
                        memcpy(oldbuf, newbuf, 17 * 4);
                }
 
-               nmsleep(BITFURY_REFRESH_DELAY);
        }
+       nmsleep(BITFURY_REFRESH_DELAY);
        second_run = 1;
 
        return;


у меня в строке 321 "results[results_num++] = bswap_32(s);" так что первой части я не понял
а во второй удалить строчку

                }
 
-               nmsleep(BITFURY_REFRESH_DELAY);
        }
+       nmsleep(BITFURY_REFRESH_DELAY);
        second_run = 1;
 
        return;

и добавить строчку

                }
 
-               nmsleep(BITFURY_REFRESH_DELAY);
        }
+       nmsleep(BITFURY_REFRESH_DELAY);
        second_run = 1;
 
        return;
---------------------------------------------------------------
было               }
 
             nmsleep(BITFURY_REFRESH_DELAY);
        }
      
        second_run = 1;
---------------------------------------------------------------
стало

               }
 
              
        }
       nmsleep(BITFURY_REFRESH_DELAY);
       second_run = 1;
---------------------------------------------------------------
так? какой ефект ето дало на практике? что делать с
@@ -321,8 +328,8 @@ int libbitfury_sendHashData(struct bitfury_device *bf, int chip_n) {
                        memcpy(oldbuf, newbuf, 17 * 4);
member
Activity: 116
Merit: 10
Речь идет про меандр длительностью 1 s? Откуда известно что это синхронизация данных?
Нужно вписать обмен в эти кадры, это происходит почти идеально при старте после выкл./вкл. питания на ядро, но не имеет постоянный эффект.
Сейчас это происходит программно, плюс минус километр, за счет задержки. Поэтому скорость в начале высокая и потом падает из-за рассинхронизации.
На МК можно сделать синхронизацию назначив прерывание на пин MISO.
Наблюдения актуальны для моего кролика, как у остальных я не знаю Smiley

ЗЫ Возможно я ошибаюсь, камнями не кидать! Smiley

legendary
Activity: 1302
Merit: 1008
Там просто ошибка в коде:

Там в коде ошибка, он теряет решения:

libbitfury.c:

@@ -321,8 +328,8 @@ int libbitfury_sendHashData(struct bitfury_device *bf, int chip_n) {
                        memcpy(oldbuf, newbuf, 17 * 4);
                }
 
-               nmsleep(BITFURY_REFRESH_DELAY);
        }
+       nmsleep(BITFURY_REFRESH_DELAY);
        second_run = 1;
 
        return;

sr. member
Activity: 335
Merit: 250
Pages:
Jump to: