Bueno, no me considero novato en esto de la electrónica y ya se que habéis advertido que es para usuarios experimentados, pero es que las instrucciones van a llevar a error seguro.
He echado un vistazo a las modificaciones que proponéis del código del cgminer, no vendría mal un copia y pega del código para saber que modificar exactamente
Archivo spidevc.c, línea 96, fragmento "speed=xxxxxxx" ajusta la velocidad del spi en Hz. Una velocidad de 5 Mhz es un buen punto para empezar.
Parte del código donde aparece speed:
int spi_txrx(const char *wrbuf, char *rdbuf, int bufsz)
{
int fd;
int mode, bits, speed, rv, i, j;
struct timespec tv;
struct spi_ioc_transfer tr[16];
memset(&tr,0,sizeof(tr));
mode = 0; bits = 8; speed = 4000000;
Así que hablamos de ese speed = 4000000 pasarlo de 4000000 a 5000000
OK, hasta aquí claro.
Archivo libbitfiry.c, fragmento unsigned char osc6[8] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00 }; Está tambien es una buena velocidad para empezar. Luego se puede unsigned char osc6[8] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00 };
Supongo que no habéis revisado el repositorio recientemente porque parece ser que han cambiado un poco el código en esa parte, aparte del error tipográfico, es libbitfury.c, la única parte donde aparece osc6 es en la funcion set_freq:
void set_freq(int bits) {
uint64_t freq;
unsigned char *osc6;
int i;
osc6 = (unsigned char *)&freq;
freq = (1ULL << bits) - 1ULL;
spi_emit_data(0x6000, (void*)osc6, 8); /* Program internal on-die slow oscillator frequency */
config_reg(4,1); /* Enable slow oscillator */
}
Y set_freq se usa, entre otras ocasiones, al detectar el chip:
set_freq(52); //54 - 3F, 53 - 1F
Así que vosotros diréis, ahora es mas fácil si me decís que hay que cambiar 52 por 53, 54 o por 70 para hacer OC, pero es que antes soltar a pelo que empezar por cambiar el byte 7º de un array de 0x00 a 0x01... deja mucho que desear, luego ¿qué tendría que poner si quería más? 0x02? o debo tocar otro byte distinto?
En fin, siento la crítica, pero por lo menos constructiva, pero os pasa algo de lo que adolecemos los técnicos, tanto tiempo tratando con algún código o tema técnico que cuando explicamos a un tercero algo solemos dar por sentadas muchas cosas que para alguien que no esté todo el día con ese tema en cuestión le suena a chino. Y no olvidar que estáis dando un manual de usuario por muy técnico que sea.
Un saludo