-
Сообщения
-
By Rick Sanchez · Posted
Верю. Не нашел. -
это же нужно до такого додуматься ..... Для кого "литцендрат" как тип провода придуман?!
-
То, о чем вы спрашиваете, как раз описано в руководствах к проекту.
-
Да, глянул мануал .... https://elektrotanya.com/casio_ctk-601.pdf/download.html#dl Ничего сложного ... но и свободнодоступного нет .... Если не обвес - "сушить весла" .... недавно? Так он нерабочим пришел?
-
By avtomaster · Posted
Да все верно, там я его и купил, на свою голову. -
вот это правильно, при наличии там что-то сломать сложно. Ну а в принципе - насчет ста баксов - я не соврал - https://www.olx.ua/d/obyavlenie/sintezator-casio-ctk-611-IDIwKKE.html
-
By avtomaster · Posted
Очень Вам спасибо. Да, конечно, завтра вскрою и посмотрю на предмет воды, окиси, трещин. В самом деле руки ростут с правильного места, 20лет автоэлектриком, да и азы с радиоэлектронике имею.
-
-
Similar Content
-
By gogaze
Программа-счетчик ампер-часов
В ней условие
//=====Напряжение минимальное при разрядке аккумулятора============================ if (volt <= 1050) // Если напряжение меньше-равно 10.50 вольт { PORTD |= (1<<PD7); // Устанавливаем бит 7 порта D в 1 (светодиод горит) } else { // Иначе PORTD &= ~( 1 << PD7 );// Устанавливаем бит 7 порта D в 0 (светодиод не горит) } Как проще добавить несколько вариантов условий
if (volt <= 1050) // Если напряжение меньше-равно 10.50 вольт для разных напряжений, чтобы при запуске программы можно было выбрать и задействовать нужное?
Я ничего подобного раньше еще не делал, так что прошу отнестись соответственно.
-
By Timofey Shilov
Пытаюсь разобраться в программировании этого контроллера и при попытке настроить USART для приема/передачи данных возникла проблема:
Пытаюсь принять байт и после нажатия кнопки отправить его обратно, но на выходе получается совсем не то что ожидаю.
При отправке 0 должно вернуть 0, но возвращает вот это. В чем может быть проблема?
ASCII BIN DEC HEX
Подозрения падают на настройку baud rate, но вроде всё как в мануалах.
Полный код:
#include "stm32f4xx.h" #include "stm32f4xx_hal_gpio.h" #include "stm32f4xx_hal_rcc.h" #include "stm32f4xx_hal_cortex.h" #include "stdint.h" #include "math.h" //define Internal RC frequencies #define XTAL 16000000UL //define busses prescalers #define AHB_PRE 1 #define APB1_PRE 2 #define APB2_PRE 1 #define SysTicksClk 10000 //calculate peripheral frequencies #define SYSCLK 84000000 #define AHB SYSCLK/AHB_PRE #define APB1 AHB/APB1_PRE #define APB1_TIM APB1*2 #define APB2 AHB/APB2_PRE #define APB2_TIM APB2*1 #define SysTicks AHB/SysTicksClk #define USART_BAUDRATE 19200 #define BUF_LEN 1 struct Data { char Msg[BUF_LEN]; } Message; void USART2_IRQHandler(void) { if (!(USART2->SR & USART_SR_TXE)) { if (Message.Msg[0] == (char)0x00) GPIOA->ODR |= 1 << 1; if (Message.Msg[0] == (char)0x01) GPIOA->ODR |= 0 << 1; } if (USART2->SR & USART_SR_RXNE) { Message.Msg[0] = USART2->DR; } } int main() { RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOBEN; GPIOA->MODER |= 1 << 1*2; //Set GPIOA pins output mode GPIOB->MODER |= 0 << 0*2; GPIOA->MODER |= 0xA0; GPIOA->AFR[0] |= 0x7700; RCC->APB1ENR |= RCC_APB1ENR_USART2EN; USART2->CR1 |= USART_CR1_UE; //usart enable USART2->CR1 |= USART_CR1_TE; //transmitter enable USART2->CR1 |= USART_CR1_RE; //receiver enable float div = (float)APB1 /(16*(float)USART_BAUDRATE); int integer = APB1 / (16*USART_BAUDRATE); float flo = (div - (float)integer)*16; int floatt = round(flo); USART2->BRR = (( integer << 4 ) + floatt); NVIC_EnableIRQ(USART2_IRQn); USART2->CR1 |= USART_CR1_TXEIE; USART2->CR1 |= USART_CR1_RXNEIE; int i; while(1) { if (!(GPIOB->IDR & GPIO_IDR_ID0)) { i = 1; } else { if(i == 1) { USART2->DR &= Message.Msg[0]; while(!(USART2->SR & USART_SR_TC)); i = 0; } } } }
Сама схема:
-
By artos5
Приветствую всех на этом форуме!
Есть необходимость измерять сигнал при помощи данного АЦП. С помощью этого АЦП можно измерять 4 аналоговых не дифференциальных сигнала . Схема следующая:
Schematic_Temp_opto_sens_V2_20190817124112.pdf
Картинками с более низким разрешением:
библиотеку за основу взял эту:
https://github.com/nsaspook/nidaq700/blob/master/supermoon/example/ADS1220.c
Путем незначительного допиливания, получилась такая библиотека:
Поправил только эти функции:
void ADS1220SendByte(unsigned char Byte) { unsigned char Result = 0x01, i=0, flg=0; MOSI_LO; Delay_us(1); for(i=0;i<8;i++) { SCK_LO; //ADC_CLK=0 Delay_us(4); if (flg) MOSI_LO; Delay_us(1); SCK_HI; //ADC_CLK=1 Delay_us(1); if (Byte&Result){ MOSI_HI; flg=1; } else MOSI_LO; Delay_us(4); Result<<=1; } SCK_LO; //ADC_CLK=0 } unsigned char ADS1220ReceiveByte(void) { unsigned char Result = 0, i=0; for(i=0;i<8;i++) { Result<<=1; SCK_LO; //ADC_CLK=0 Delay_us(5); //Delay_us(5); SCK_HI; //ADC_CLK=1 Delay_us(3); if (MISO) Result++; Delay_us(2); } SCK_LO; //ADC_CLK=0 return Result; } И добавил эту функцию:
void ADS1220Config_MUX_GAIN(uint8_t mux, uint8_t gain) { unsigned Temp; ADS1220ReadRegister(ADS1220_0_REGISTER, 0x01, &Temp); // clear prev value; Temp &= 0x0f; Temp |= gain; Temp |= mux; // write the register value containing the new value back to the ADS ADS1220WriteRegister(ADS1220_0_REGISTER, 0x01, &Temp); ADS1220ReadRegister(ADS1220_1_REGISTER, 0x01, &Temp); // clear prev DataRate code; Temp &= 0x1f; Temp |= (ADS1220_DR_600 + ADS1220_CC); // Set default start mode to 600sps and continuous conversions // write the register value containing the new value back to the ADS ADS1220WriteRegister(ADS1220_1_REGISTER, 0x01, &Temp); } ADS1220.h :
в результате получаю такую осциллограмму :
То есть , постоянно считывается 0.
А вот регистры конфигурации:
Задаю номер входа MUX и усиление :
Читаю данные так:
ADS1220Config_MUX_GAIN(ADS1220_MUX_0_G, ADS1220_GAIN_1); HAL_Delay(10); temp_[0] = ADS1220ReadData(); Это для 0 канала.
Пробовал и так:
ADS1220SetChannel(ADS1220_MUX_0_G); ADS1220SetGain(ADS1220_GAIN_1); temp_[0] = ADS1220ReadData(); Результат аналогичный. Кто что подскажет? Может кто заметит какой косяк в коде? Уже голова дымит ..
-
By maxssau
Продам адаптеры USB-I2S.
Возможности:
стерео ввод/вывод PCM 16-32 бита, 44.1-384 кГц. Ввода DSD нет, как и драйверов для ввода DSD.
вывод DSD в режиме DoP 64-128, в режиме Native 64-256. Native доступен в Linux без "хитрых" драйверов.
Тактирование от платы ЦАП/АЦП, частоты 512 fs (22.5792/24.576 МГц). Теоретически возможно и 1024fs(скорости 768кГц и DSD512 Native), но это не опробовано.
Гальваническая изоляция на Si8662/Si8640.
Питание возможно как Self так и Bus Powered. В режиме Bus Powered необходимо самостоятельно позаботиться о мастерклоке, т.к. возможны сильные глюки при выключенном генераторе мастерклока.
Тема:
срок изготовления 3-5 недель (сильно зависит от поставок процессоров).
На данный момент полностью реализован интерфейс Legacy. Для отладки Native режима пока нет платы ЦАП, в процессе разработки, будет не раньше осени.
Цена 6000 + пересылка (в среднем 250 р.).
-
By IgnatiusF
Не удается проинициализировать работу UART2 на скорость 19200 бод.
Не вызывается прервание совсем, отсылаются постоянно нули на всех скоростях, если ставить System clock switch в 01 (HSE). При работе от RC генератора выдает уже просто не то, что нужно.
Кварц рабочий, и вообще все работает, при использовании библиотек HAL.
SysTick выключил потому, что были подозрения на конлфикт приоритетов.
Внизу представлена именно та часть кода программы, которая не работает, то есть сам UART.
Проект скоро сдавать, а использовать готовую библиотеку HAL не хочется совсем, уже несколько дней парюсь и не могу найти проблему. Попробовал разобраться что пишет в регистры HAL, однако не смог т.к. не хватает знаний, значения регистров все такие же, кроме PLL (не используется) и RCC_CR1 (в HAL почему-то полностью равен 0). Проверял передачей данных по UART. Регистр BRR не удалось считать т.к. он только для записи. У меня записано так:
USART1->BRR = 0x412; //20MHz/16/19200 = 65,104.
Где искать следует ошибку?
-