Bitcoin Forum
May 11, 2024, 02:27:47 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [32] 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 »
  Print  
Author Topic: [ANN] Bitfury is looking for alpha-testers of first chips! FREE MONEY HERE!  (Read 176664 times)
intron
Sr. Member
****
Offline Offline

Activity: 427
Merit: 251


- electronics design|embedded software|verilog -


View Profile
August 28, 2013, 01:22:51 AM
 #621

Power circuit built and tested using load resistors.   12V ATX to 0.84V +- 5mV @90A with 92% efficiency.  Going to run it for a bit collecting data while powered by an AX1200i then will rerun it at 0.835V.  Here's part of the DSO output plotted.


Nice! What DC/DC converter chip are you using?
Or is is it fully handcrafted?

intron
If you see garbage posts (off-topic, trolling, spam, no point, etc.), use the "report to moderator" links. All reports are investigated, though you will rarely be contacted about your reports.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715394467
Hero Member
*
Offline Offline

Posts: 1715394467

View Profile Personal Message (Offline)

Ignore
1715394467
Reply with quote  #2

1715394467
Report to moderator
1715394467
Hero Member
*
Offline Offline

Posts: 1715394467

View Profile Personal Message (Offline)

Ignore
1715394467
Reply with quote  #2

1715394467
Report to moderator
ultrix
Full Member
***
Offline Offline

Activity: 125
Merit: 100


View Profile
August 28, 2013, 01:36:37 AM
 #622

Power circuit built and tested using load resistors.   12V ATX to 0.84V +- 5mV @90A with 92% efficiency.  Going to run it for a bit collecting data while powered by an AX1200i then will rerun it at 0.835V.  Here's part of the DSO output plotted.


Nice! What DC/DC converter chip are you using?
Or is is it fully handcrafted?

intron

LTC3829 controller, everything else is custom design.  Uses Infineon FETs and I'm testing two different coils.
PWRMAD
Newbie
*
Offline Offline

Activity: 8
Merit: 0



View Profile
August 28, 2013, 02:56:02 AM
 #623

Thanks VS3, this is a simple interface but my real question is what will it take to get CG, BFG or any other miner talking to the ASICs? In this configuration there can only be 1 "H" card (16 chips) so the processing power is not really a factor but since I DO NOT do the software thing I need one of you programming gods to chime in so I can get an alpha PCB on order. If I am wasting my time just let me know.

Thanks
Randy Smiley
vs3
Hero Member
*****
Offline Offline

Activity: 622
Merit: 500


View Profile WWW
August 28, 2013, 04:05:58 AM
 #624

Thanks VS3, this is a simple interface but my real question is what will it take to get CG, BFG or any other miner talking to the ASICs? In this configuration there can only be 1 "H" card (16 chips) so the processing power is not really a factor but since I DO NOT do the software thing I need one of you programming gods to chime in so I can get an alpha PCB on order. If I am wasting my time just let me know.

Thanks
Randy Smiley

Randy - I'm currently messing with the PCB design and as soon as I send it for production (hopefully before Friday) I'll move onto cgminer. I know exactly what needs to change but I haven't used that set of compiler(s) and building environment, so it may take me a bit to figure out the details. I suspect I may ask ckolivas (that's cgminer's author who's also keeping an eye on this thread) or any of the other gurus for help if I get totally stuck.

edit: I'm basically going to expand legkodymov's fork so that it runs on Windows.

edit2: here is an example of a windows fork of cgminer - it's just the 3 bitfury-related files: (as translated by google)
And most importantly - it works without RasPi Smiley
bitfury-serialport.zip

-ck
Legendary
*
Offline Offline

Activity: 4102
Merit: 1632


Ruu \o/


View Profile WWW
August 28, 2013, 04:31:22 AM
 #625

Yes it's the bitbanging reset that I have no way to emulate so far. I can easily talk SPI to the chip via libusb and have done so, but cannot get the chip reset and talking. I pinged bitfury about this but got no response. If you have any ideas, I'm all ears and eyes. If I can get it working via libusb, it will work everywhere.

Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel
2% Fee Solo mining at solo.ckpool.org
-ck
ultrix
Full Member
***
Offline Offline

Activity: 125
Merit: 100


View Profile
August 28, 2013, 04:40:31 AM
 #626

Yes it's the bitbanging reset that I have no way to emulate so far. I can easily talk SPI to the chip via libusb and have done so, but cannot get the chip reset and talking. I pinged bitfury about this but got no response. If you have any ideas, I'm all ears and eyes. If I can get it working via libusb, it will work everywhere.

Possibly an endianess issue?   Have you hooked up a logic analyzer to it?
-ck
Legendary
*
Offline Offline

Activity: 4102
Merit: 1632


Ruu \o/


View Profile WWW
August 28, 2013, 04:41:58 AM
 #627

Yes it's the bitbanging reset that I have no way to emulate so far. I can easily talk SPI to the chip via libusb and have done so, but cannot get the chip reset and talking. I pinged bitfury about this but got no response. If you have any ideas, I'm all ears and eyes. If I can get it working via libusb, it will work everywhere.

Possibly an endianess issue?   Have you hooked up a logic analyzer to it?
Nono, I can't even send a reset to it... the sample code speaks to the MOSI and SCK by setting and unsetting GPIO pins that don't even exist on the USB-SPI chip included...

Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel
2% Fee Solo mining at solo.ckpool.org
-ck
kaerf
Hero Member
*****
Offline Offline

Activity: 631
Merit: 500


View Profile
August 28, 2013, 04:55:24 AM
 #628

We're using an MCP2210 for USB-SPI communication. Indeed the reset sequence was tricky and we're using a MUX plus two GPIOs from the mcp2210. The available open source code (linux) for the mcp2210 needs re-writing as well...quite the pain in the ass.
cscape
Sr. Member
****
Offline Offline

Activity: 251
Merit: 250



View Profile
August 28, 2013, 05:06:56 AM
 #629

Instead of using a dedicated USB-SPI chip, it would be a lot easier to use a small USB microcontroller. Price and area would be the same, and all the hardware specific details of the bitfury design would be in the firmware, rather than on the PC.

That's what we're doing for our 2-chip bi*fury USB design, but it would be easy to replace the 2 ASICs with a H-CARD socket.

Happy with your c-scape product ? Consider a tip: 16X2FWVRz6UzPWsu4WjKBMJatR7UvyKzcy
-ck
Legendary
*
Offline Offline

Activity: 4102
Merit: 1632


Ruu \o/


View Profile WWW
August 28, 2013, 05:10:21 AM
 #630

We're using an MCP2210 for USB-SPI communication. Indeed the reset sequence was tricky and we're using a MUX plus two GPIOs from the mcp2210. The available open source code (linux) for the mcp2210 needs re-writing as well...quite the pain in the ass.
Want to describe the sequence for me in detail please?

Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel
2% Fee Solo mining at solo.ckpool.org
-ck
vs3
Hero Member
*****
Offline Offline

Activity: 622
Merit: 500


View Profile WWW
August 28, 2013, 05:31:17 AM
 #631

Option 1:
To be honest my initial idea was to use a RS232 serial port directly - TxD would be MOSI, RxD would be MISO (or any of the other inputs like RI, RTS, etc) and DTR would be SCK and I was going to manually drive them high/low. It works sufficiently fast (>200kHz) with built-in COM ports. Unfortunately it is horribly slow when using a USB-to-Serial chip such as FT232R (about 1kHz). It is still doable but somewhat pointless as there is a better option - see option 3.

Option 2:
The next option I looked at was MCP2210. But you can't switch the SPI pins into GPIO. I can tweak the SCK pin (by switching the phase) but I can't do anything about the MOSI one. The only (cheap) solution was going to be to sort of short-circuit it with another GPIO pin via a small resistor like this:
(MOSI) ---[200]--- (GPIO) ---[2k2]--- (BitFury INMOSI) ---[2k2]--- GND
I would put the GPIO as an input normally so that it doesn't interfere, and during RESET I would make it an output and use it to override the MOSI pin. It's ugly though. And the MCP2210 chip is waaaay overly complicated.

Option 3:
My next option was actually reusing the FT232R. In async bitbang mode it uses its 8-bit DBus and does a write followed by a read. I can just deserialize all pins - e.g. if I need to send-and-read one bit (let's say "1") and bit 0 is MOSI, bit 1 is SCK (both outputs) and bit 2 is MISO (input) I would write to the chip:
1) 0000-0?01 - set MOSI
2) 0000-0?11 - set SCK
3) 0000-0?11 - dummy - just to even out SCK 0s and 1s (and possibly optimize the code down the road by skipping 4 bytes)
4) 0000-0?01 - clr SCK
Since it does a read after each write I would read the result after 4) and that would be my MISO read bit.
I liked the simplicity of that chip - barely a few components. On the downside it would be a lot of manual labor rolling out the SPI protocol. But on the good side you can set the clock speed at 3MHz, so you effectively get 750kbps SPI. (at roughly 75 bytes per transaction that's 1000 chip-requests per second).
I tested that with a FT232R board that I had handy and confirmed that this will work.

Option 4:
And then I found the CY7C65211 chip. Oh joy of joys! Smiley
You can switch each of the SPI pins to GPIO if you want (so here is the RESET sequence). My plan is for the RESET sequence to manually drive each of the GPIO pins, and once done to switch them back to SPI mode.

vs3
Hero Member
*****
Offline Offline

Activity: 622
Merit: 500


View Profile WWW
August 28, 2013, 05:34:36 AM
 #632

Instead of using a dedicated USB-SPI chip, it would be a lot easier to use a small USB microcontroller. Price and area would be the same, and all the hardware specific details of the bitfury design would be in the firmware, rather than on the PC.

That's what we're doing for our 2-chip bi*fury USB design, but it would be easy to replace the 2 ASICs with a H-CARD socket.

I agree. I think at the end this will be the best solution. You can get a very cheap PIC with USB support for about $1-1.5 and it can take care of the heavy lifting and drive multiple (bitfury) chips. But - that would require more development for the PIC coding.
As an interim solution - the FT232R chip is about $2-2.5 and the CY7C65211 is $3-4 which I think is bearable for a start.

cscape
Sr. Member
****
Offline Offline

Activity: 251
Merit: 250



View Profile
August 28, 2013, 05:40:35 AM
 #633

We're using LPC11U. I'm just finishing the firmware for it. PC interface is a simple virtual com port over bulk endpoint. The PC software just sends 'work <job id> <work>' to send work to the chip(s), and the firmware sends back 'submit <job id> <timestamp> <nonce>' whenever it finds something.

Happy with your c-scape product ? Consider a tip: 16X2FWVRz6UzPWsu4WjKBMJatR7UvyKzcy
-ck
Legendary
*
Offline Offline

Activity: 4102
Merit: 1632


Ruu \o/


View Profile WWW
August 28, 2013, 05:42:24 AM
 #634

Option 2:
The next option I looked at was MCP2210. But you can't switch the SPI pins into GPIO. I can tweak the SCK pin (by switching the phase) but I can't do anything about the MOSI one. The only (cheap) solution was going to be to sort of short-circuit it with another GPIO pin via a small resistor like this:
(MOSI) ---[200]--- (GPIO) ---[2k2]--- (BitFury INMOSI) ---[2k2]--- GND
I would put the GPIO as an input normally so that it doesn't interfere, and during RESET I would make it an output and use it to override the MOSI pin. It's ugly though. And the MCP2210 chip is waaaay overly complicated.
The btc101 usb device has an MCP2210 chip. I keep poking it like a little kid with stick does to a dead animal, and that's how it behaves in response...

The mcp2210 chip shows up as an HID device under linux, and you're not really meant to use the SPI on it directly, yet the cgminer forked code opens it using the spidev interface on linux by mmap directly into /dev/mem and using some magic constants for memory offsets that correspond with the RPi ... that approach is about as portable as a brick shithouse.

Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel
2% Fee Solo mining at solo.ckpool.org
-ck
kaerf
Hero Member
*****
Offline Offline

Activity: 631
Merit: 500


View Profile
August 28, 2013, 05:42:31 AM
 #635

We're using an MCP2210 for USB-SPI communication. Indeed the reset sequence was tricky and we're using a MUX plus two GPIOs from the mcp2210. The available open source code (linux) for the mcp2210 needs re-writing as well...quite the pain in the ass.
Want to describe the sequence for me in detail please?

Well, my method only works for us because we have a hardware MUX. The mcp2210 doesn't allow us to directly control SCK, so need to switch to a GPIO during the reset sequence.

The reset sequence is as follows:
---
Switch SCK to high (no oscillations)
Toggle MOSI 16 times. (at 1 MHz)
Switch SCK to low
---
That's how bitfury's reference code works on the RPI. However, you do have greater freedom if you need. Here's a response I got from Tytus about the reset sequence:

Quote
- any sequence
- at least 3 MOSI toggles (better more) on CLK high
- speed < 20MHz

In order for us to set SCK to high during the reset, we toggle the MUX select line and switch from the mcp2210's SCK pin to a GPIO pin so INCLK on the bitfury chip sees a constant high level. Then we toggle MOSI (send 16 bytes of 0xff or 4 bytes of 0xAA or 0x55 as long it toggles MOSI). Then we set our GPIO pin to low and change the MUX select line back, so INCLK on gets SCK from the mcp2210.

Unless you have the MUX, I don't think this will work for you, but maybe it can give you some insight into how that sequence works.
cscape
Sr. Member
****
Offline Offline

Activity: 251
Merit: 250



View Profile
August 28, 2013, 05:44:43 AM
 #636

- any sequence
- at least 3 MOSI toggles (better more) on CLK high
- speed < 20MHz
Note that you need 3 MOSI toggles for each chip in the chain.

Happy with your c-scape product ? Consider a tip: 16X2FWVRz6UzPWsu4WjKBMJatR7UvyKzcy
kaerf
Hero Member
*****
Offline Offline

Activity: 631
Merit: 500


View Profile
August 28, 2013, 05:49:34 AM
 #637

Instead of using a dedicated USB-SPI chip, it would be a lot easier to use a small USB microcontroller. Price and area would be the same, and all the hardware specific details of the bitfury design would be in the firmware, rather than on the PC.

That's what we're doing for our 2-chip bi*fury USB design, but it would be easy to replace the 2 ASICs with a H-CARD socket.

I agree. I think at the end this will be the best solution. You can get a very cheap PIC with USB support for about $1-1.5 and it can take care of the heavy lifting and drive multiple (bitfury) chips. But - that would require more development for the PIC coding.
As an interim solution - the FT232R chip is about $2-2.5 and the CY7C65211 is $3-4 which I think is bearable for a start.


This was our initial thought as well, but the mcp2210 has such poor documentation and incomplete API that I've wasted far more time trying to get the mcp2210 to work than a normal microcontroller. On the plus site, the USB to SPI connection can provide the mining software for more control/flexibility since it can directly send commands to chips/SPI bus. Also, you don't need to flash firmware updates...
vs3
Hero Member
*****
Offline Offline

Activity: 622
Merit: 500


View Profile WWW
August 28, 2013, 05:50:16 AM
 #638

In order for us to set SCK to high during the reset, we toggle the MUX select line and switch from the mcp2210's SCK pin to a GPIO pin so INCLK on the bitfury chip sees a constant high level.

Ha! I was so focused on driving the MOSI pin that I overlooked the idea of messing up with the SCK pin .. and that's even better!
By the way - the trick with the resistors would work just fine. (I've done it countless times on PICs - just pick the resistors so that current doesn't go over 2-3mA). And it's much cheaper than the MUX option Smiley

-ck
Legendary
*
Offline Offline

Activity: 4102
Merit: 1632


Ruu \o/


View Profile WWW
August 28, 2013, 05:51:30 AM
 #639

We're using an MCP2210 for USB-SPI communication. Indeed the reset sequence was tricky and we're using a MUX plus two GPIOs from the mcp2210. The available open source code (linux) for the mcp2210 needs re-writing as well...quite the pain in the ass.
Want to describe the sequence for me in detail please?

Well, my method only works for us because we have a hardware MUX. The mcp2210 doesn't allow us to directly control SCK, so need to switch to a GPIO during the reset sequence.

The reset sequence is as follows:
---
Switch SCK to high (no oscillations)
Toggle MOSI 16 times. (at 1 MHz)
Switch SCK to low
---
That's how bitfury's reference code works on the RPI. However, you do have greater freedom if you need. Here's a response I got from Tytus about the reset sequence:

Quote
- any sequence
- at least 3 MOSI toggles (better more) on CLK high
- speed < 20MHz

In order for us to set SCK to high during the reset, we toggle the MUX select line and switch from the mcp2210's SCK pin to a GPIO pin so INCLK on the bitfury chip sees a constant high level. Then we toggle MOSI (send 16 bytes of 0xff or 4 bytes of 0xAA or 0x55 as long it toggles MOSI). Then we set our GPIO pin to low and change the MUX select line back, so INCLK on gets SCK from the mcp2210.

Unless you have the MUX, I don't think this will work for you, but maybe it can give you some insight into how that sequence works.
Thanks very much for at least that information. I'm still not even sure if it's going to be possible then, but I'll keep poking.

Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel
2% Fee Solo mining at solo.ckpool.org
-ck
vs3
Hero Member
*****
Offline Offline

Activity: 622
Merit: 500


View Profile WWW
August 28, 2013, 05:54:21 AM
 #640

Instead of using a dedicated USB-SPI chip, it would be a lot easier to use a small USB microcontroller. Price and area would be the same, and all the hardware specific details of the bitfury design would be in the firmware, rather than on the PC.

That's what we're doing for our 2-chip bi*fury USB design, but it would be easy to replace the 2 ASICs with a H-CARD socket.

I agree. I think at the end this will be the best solution. You can get a very cheap PIC with USB support for about $1-1.5 and it can take care of the heavy lifting and drive multiple (bitfury) chips. But - that would require more development for the PIC coding.
As an interim solution - the FT232R chip is about $2-2.5 and the CY7C65211 is $3-4 which I think is bearable for a start.


This was our initial thought as well, but the mcp2210 has such poor documentation and incomplete API that I've wasted far more time trying to get the mcp2210 to work than a normal microcontroller. On the plus site, the USB to SPI connection can provide the mining software for more control/flexibility since it can directly send commands to chips/SPI bus. Also, you don't need to flash firmware updates...

Ohhhh... tell me about it! I hated that documentation when I read it the first time. And then I saw the chip on your boards and went back and reread it ... and hated it even more... I think you pretty much qualify for a hero for figuring it out! Smiley

Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [32] 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!