mirror of
https://github.com/skot/ESP-Miner.git
synced 2025-04-10 04:49:16 +02:00
increase baud to 3.1Mbps
This commit is contained in:
parent
2a830b28c6
commit
aa9e278f18
@ -139,15 +139,22 @@ void send_init(void) {
|
||||
unsigned char init6[9] = {0x00, 0x28, 0x06, 0x00, 0x00, 0x0F}; //init6 - fast_uart_configuration
|
||||
send_BM1397((TYPE_CMD | GROUP_ALL | CMD_WRITE), init6, 6, false);
|
||||
|
||||
unsigned char baudrate[9] = {0x00, 0x18, 0x00, 0x00, 0x7A, 0x31}; //baudrate - misc_control
|
||||
//unsigned char baudrate[9] = {0x00, 0x18, 0x00, 0x00, 0x70, 0x30}; //baudrate - misc_control
|
||||
send_BM1397((TYPE_CMD | GROUP_ALL | CMD_WRITE), baudrate, 6, false);
|
||||
set_default_baud();
|
||||
|
||||
send_hash_frequency(BM1397_FREQUENCY);
|
||||
}
|
||||
|
||||
// Baud formula = 25M/((denominator+1)*8)
|
||||
// The denominator is 5 bits found in the misc_control (bits 9-13)
|
||||
void set_default_baud(void){
|
||||
//default divider of 26 (11010) for 115,749
|
||||
unsigned char baudrate[9] = {0x00, 0x18, 0x00, 0x00, 0b01111010, 0b00110001}; //baudrate - misc_control
|
||||
send_BM1397((TYPE_CMD | GROUP_ALL | CMD_WRITE), baudrate, 6, false);
|
||||
}
|
||||
|
||||
void set_bm1397_max_baud(void){
|
||||
unsigned char baudrate[9] = {0x00, 0x18, 0x00, 0x00, 0x70, 0x30}; //baudrate - misc_control
|
||||
// divider of 0 for 3,125,000
|
||||
unsigned char baudrate[9] = { 0x00, 0x18, 0x00, 0x00, 0b01100000, 0b00110001 };; //baudrate - misc_control
|
||||
send_BM1397((TYPE_CMD | GROUP_ALL | CMD_WRITE), baudrate, 6, false);
|
||||
}
|
||||
|
||||
|
@ -70,5 +70,6 @@ void set_job_difficulty_mask(int);
|
||||
unsigned char reverseBits(unsigned char num);
|
||||
int largestPowerOfTwo(int num);
|
||||
void set_bm1397_max_baud(void);
|
||||
void set_default_baud(void);
|
||||
|
||||
#endif /* BM1397_H_ */
|
@ -3,7 +3,6 @@
|
||||
|
||||
#define CHUNK_SIZE 1024
|
||||
|
||||
void SerialTask(void *arg);
|
||||
int send_serial(uint8_t *, int, bool);
|
||||
void init_serial(void);
|
||||
void debug_serial_rx(void);
|
||||
|
@ -36,8 +36,8 @@ void init_serial(void) {
|
||||
uart_set_pin(UART_NUM_1, ECHO_TEST_TXD, ECHO_TEST_RXD, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
|
||||
|
||||
//Install UART driver (we don't need an event queue here)
|
||||
//In this example we don't even use a buffer for sending data.
|
||||
uart_driver_install(UART_NUM_1, BUF_SIZE * 2, 0, 0, NULL, 0);
|
||||
// Added buffers so uart_write_bytes returns immediately
|
||||
uart_driver_install(UART_NUM_1, BUF_SIZE * 2, BUF_SIZE * 2, 0, NULL, 0);
|
||||
}
|
||||
|
||||
void set_max_baud(void){
|
||||
@ -88,34 +88,3 @@ void debug_serial_rx(void) {
|
||||
void clear_serial_buffer(void) {
|
||||
uart_flush(UART_NUM_1);
|
||||
}
|
||||
|
||||
void SerialTask(void *arg) {
|
||||
|
||||
init_serial();
|
||||
|
||||
init_BM1397();
|
||||
|
||||
//reset the bm1397
|
||||
reset_BM1397();
|
||||
|
||||
//send the init command
|
||||
send_read_address();
|
||||
|
||||
//read back response
|
||||
debug_serial_rx();
|
||||
|
||||
//send the init commands
|
||||
send_init();
|
||||
|
||||
//setup a nice test job
|
||||
//this should find nonce 258a8b34 @ 50
|
||||
// uint8_t work1[146] = {0x50, 0x04, 0x00, 0x00, 0x00, 0x00, 0xB2, 0xE0, 0x05, 0x17, 0x24, 0x27, 0x36, 0x64, 0xF5, 0x63, 0x54, 0xDA, 0x33, 0xE2, 0xDE, 0x8F, 0xFC, 0xDD, 0x48, 0x96, 0xE1, 0x36, 0xD7, 0x03, 0x5C, 0xBB, 0x5F, 0xA3, 0xFD, 0x5F, 0x68, 0x39, 0xAA, 0xA4, 0xBE, 0x10, 0x9C, 0x7E, 0x00, 0x78, 0x4E, 0x69, 0x34, 0xAC, 0x84, 0x05, 0x65, 0xAE, 0x32, 0x58, 0x09, 0xBB, 0xEA, 0x44, 0x6D, 0x61, 0x57, 0xF2, 0x61, 0xBE, 0x58, 0x33, 0xFA, 0xA8, 0x1D, 0x9A, 0x16, 0xBF, 0xE0, 0x82, 0x64, 0x37, 0x91, 0x15, 0xB6, 0x32, 0x93, 0xC4, 0x83, 0x42, 0xB2, 0xE6, 0x63, 0x96, 0xE0, 0x25, 0x02, 0x9E, 0x01, 0x76, 0xD9, 0x24, 0x0F, 0xD3, 0x57, 0x27, 0x38, 0xE2, 0x65, 0xDD, 0xCD, 0xBD, 0x01, 0xE0, 0x61, 0xFB, 0x57, 0x5D, 0xD6, 0xAB, 0xAE, 0xFD, 0x6B, 0x5F, 0x77, 0x74, 0x5C, 0x64, 0x2C, 0xF3, 0x34, 0x2F, 0x82, 0xB3, 0xCC, 0xC1, 0x2D, 0x84, 0xDD, 0xCB, 0x10, 0xDE, 0x5E, 0xE0, 0xCD, 0x9C, 0x5B, 0x65, 0x92, 0xBB};
|
||||
// struct job_packet test_job;
|
||||
// memcpy((uint8_t *)&test_job, work1, 146);
|
||||
|
||||
// send_work(&test_job);
|
||||
|
||||
while (1) {
|
||||
debug_serial_rx();
|
||||
}
|
||||
}
|
15
main/miner.c
15
main/miner.c
@ -89,10 +89,8 @@ static void ASIC_task(void * pvParameters)
|
||||
|
||||
uint32_t prev_nonce = 0;
|
||||
|
||||
// TODO
|
||||
// set_max_baud();
|
||||
set_max_baud();
|
||||
|
||||
ESP_LOGI(TAG, "Mining!");
|
||||
while (1) {
|
||||
bm_job * next_bm_job = (bm_job *) queue_dequeue(&ASIC_jobs_queue);
|
||||
struct job_packet job;
|
||||
@ -176,6 +174,7 @@ static void ASIC_task(void * pvParameters)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void create_jobs_task(void * pvParameters)
|
||||
{
|
||||
while (1) {
|
||||
@ -200,12 +199,8 @@ static void create_jobs_task(void * pvParameters)
|
||||
bm_job next_job = construct_bm_job(¶ms, merkle_root);
|
||||
|
||||
next_job.pool_diff = stratum_difficulty; //each job is tied to the _current_ difficulty
|
||||
|
||||
//ESP_LOGI(TAG, "bm_job: ");
|
||||
// print_hex((uint8_t *) &next_job.target, 4, 4, "nbits: ");
|
||||
// print_hex((uint8_t *) &next_job.ntime, 4, 4, "ntime: ");
|
||||
// print_hex((uint8_t *) &next_job.merkle_root_end, 4, 4, "merkle root end: ");
|
||||
//print_hex(next_job.midstate, 32, 32, "midstate: ");
|
||||
// Check if diff is a power of 2, we can skip stuff later if it is.
|
||||
next_job.pool_diff_pow2 = (stratum_difficulty != 0 && (stratum_difficulty & (stratum_difficulty - 1)) == 0);
|
||||
|
||||
bm_job * queued_next_job = malloc(sizeof(bm_job));
|
||||
memcpy(queued_next_job, &next_job, sizeof(bm_job));
|
||||
@ -327,6 +322,8 @@ static void stratum_task(void * pvParameters)
|
||||
|
||||
} else if (method == MINING_SET_VERSION_MASK) {
|
||||
version_mask = parse_mining_set_version_mask_message(line);
|
||||
|
||||
//1fffe000
|
||||
ESP_LOGI(TAG, "Set version mask: %08x", version_mask);
|
||||
} else {
|
||||
free(line);
|
||||
|
Loading…
x
Reference in New Issue
Block a user