Jump to content

vis-vetal

Members
  • Content Count

    100
  • Joined

  • Last visited

Community Reputation

1 Обычный

About vis-vetal

  • Rank
    Осваивающийся
  • Birthday 02/21/1991

Контакты

  • Skype
    vis-vetal@yandex.ru

Информация

  • Пол
    Мужчина
  • Интересы
    Мототехника, электроника, бл**дство, разврат, наркотики
  • Город
    Северодонецк

Электроника

  • Стаж в электронике
    3-5 лет
  • Сфера радиоэлектроники
    МК, логика
  • Оборудование
    Fluke 83, Lukey 852D, всё остальное самодельное.

Recent Profile Visitors

13873 profile views
  1. Сопротивление провода, конечно, бытовым мультиметром не померить. Его можно косвенно предположить по подобным таблицам (тыц). При длине в 10метром и сечении провода 0,5-0,75 мм2 вы получите сопротивление не более 0,3 ом. что на 200 ватах даст потерю в 15 вт (при такой мощности разница врятли будет заметна). А на 50 вт, при таком проводе вы теряете 3,5 вт. (Это всё считал на динамик 8ом) Считается это просто - Узнаёте напряжение на выходе вашего усилителя (корень квадратный из (мощность умножить на сопротивление динамика) ). Провод с динамиком образует делитель напряжения в котором верхнее плечо - провод, а нижнее динамик, считаете падение напряжения на проводе. А потом считаете сколько мощности рассеивается на динамике с оставшимся напряжением. Только стоит учитывать то, что зависимость звукового давления квадратичная. То есть увеличение мощности в четыре раза, приводит к увеличению громкости только в два. То есть потеря 3 вт из 50 - это ничтожно мало.
  2. Старые нокии и так заряжаются от 6-ти вольт. А современные заряжатся не будут, но и врятли сгорят, контроллер уйдёт в защиту. Я переделывал старое нокиевское автомобильное зарядное (в нём было 6 В) под свой fly. Вплоть до 5.3 В телефон зарядку не брал, по всей видимости стоит защита по стандарту USB 5,25 - 4,75.
  3. Если знакомы с китайскими магазинами или ebay то просто напишите "DIY Kit" и выбирайте.
  4. Всем привет. Столкнулся с проблемой, может кто уже сталкивался с подобным, или может хоть подскажите в какую сторону смотреть. Дело вот в чём: простая тестовая программа, передранная целиком и полностью из интернета(упростил в процессе поиска глюка, потом по функциям всё разложу) передаёт число 0х44 в устройство с адресом 0х12 по I2C. Настроил тактирование контроллера, порты и сам интерфейс. Бросаю стартовый бит, нормально. Бросаю адрес, отлично. Отсылаю байт данных, а на выходе идёт 18 бит, то бишь 2 байта. В чём моя ошибка? Контроллер stm32f103C8T6. Среда - coocox. Да там ещё была загвоздка, вместо проверки на окончание передачи адреса и самого байта пришлось ставить задержки. Я знаю что это колхоз, но не смог найти какой флаг проверять. Если кто подскажет буду очень рад. Привожу код и скрин с анализатора. #include "stm32f10x_gpio.h" #include "stm32f10x_i2c.h" #include "stm32f10x_rcc.h" //******************************************************************************** unsigned char InitClk() { unsigned long int TimeOut = 10000; //Запустить HSE RCC->CR |= RCC_CR_HSEON; //Включить генератор HSE while((RCC->CR & RCC_CR_HSERDY)==0) //Ожидание готовности HSE if(TimeOut) TimeOut--; if(TimeOut==0) return 1; //Ошибка!!! Генератор HSE не запустился RCC->CR |= RCC_CR_CSSON; //Разрешить работу системы защиты сбоя HSE //Подключить систему к HSE RCC->CFGR &= ~RCC_CFGR_SW; //Очистка битов выбора источника тактового сигнала RCC->CFGR |= RCC_CFGR_SW_HSE; //Выбрать источником тактового сигнала HSE //Настроить делитель для AHB RCC->CFGR &= ~RCC_CFGR_HPRE; //Очистка битов предделителя "AHB Prescaler" RCC->CFGR |= RCC_CFGR_HPRE_DIV2; //Установить "AHB Prescaler" равным 2 return 0; //Все ok, работаем от HSE } //******************************************************************************** //Function: обработчик прерывания при сбое генератора HSE // //******************************************************************************** void NMI_Handler(void) { //Сбросить флаг системы контроля сбоя HSE if (RCC->CIR & RCC_CIR_CSSF) RCC->CIR |= RCC_CIR_CSSC; //Если контроллер здесь, значит HSE не работает //Что-то можно предпринять: перезапустить генератор, дать сигнал аврии и т.п. } //******************************************************************************** GPIO_InitTypeDef gpio; I2C_InitTypeDef i2c; /*******************************************************************/ void init_I2C1(void) {//Конфигурация I2C и портов под него GPIO_PinRemapConfig(GPIO_Remap_I2C1, DISABLE); GPIO_InitTypeDef GPIO_InitStructure; I2C_InitTypeDef I2C_InitStructure; I2C_DeInit (I2C1); GPIO_DeInit(GPIOB); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; GPIO_Init(GPIOB, &GPIO_InitStructure); RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, ENABLE); RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, DISABLE); I2C_InitStructure.I2C_Mode = I2C_Mode_I2C; I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2; I2C_InitStructure.I2C_OwnAddress1 = 0x00; I2C_InitStructure.I2C_Ack = I2C_Ack_Enable; I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; I2C_InitStructure.I2C_ClockSpeed = 50000; I2C_Init(I2C1, &I2C_InitStructure); I2C_Cmd(I2C1, ENABLE); } int main(void) { InitClk(); init_I2C1(); uint8_t transmissionDirection = I2C_Direction_Transmitter; uint8_t slaveAddress = 0x12; // Генерируем старт - тут все понятно ) I2C_GenerateSTART(I2C1, ENABLE); // Ждем пока взлетит нужный флаг while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)); I2C_Send7bitAddress(I2C1, slaveAddress, transmissionDirection); uint8_t i; for(i=0;i<0x50;i++);//Задержка на время адреса uint8_t data = 0x44; I2C_SendData(I2C1, data); for(i=0;i<0x70;i++);//Задержка на время данных I2C_GenerateSTOP(I2C1, ENABLE); while(1){ } }
  5. Здравствуйте. Кто нибудь пробовал ATMEL FPSLIC, то есть ПЛИС и AVR микроконтроллер на одном кристалле. Я ищу о них побольше инфы. Они ещё выпускаются? Где можно купить, и сколько стоят? На чём писать, и чем прошивать? В общем, кто сталкивался, подкиньте,пожалуйста, статей, названия книг, собственных историй.
  6. Люди, а кто нибудь смог конвертировать файлы SPlan7, для открытия в SPlan6 ?
  7. Согласно USB протоколу передача должна проходить на напряжении 3,3в, 3,6 сильно много.
  8. Открой everest и посмотри есть ли на порту хоть какое-то устройство, если там вообще пусто то попробуй добавить резистор на 4,7 КОм между USB D- и землёй, и попробуй поменять стабилитроны, поставь на 3,3в.
  9. Тут уж как сам пожелаешь, можешь хоть полностью с чистого листа их записать, можешь просто считать, а потом поправить. Я пользуюсь вторым вариантом, но как я уже сказал в прошлых сообщениях, на экстрим бурнере довольно непривычный способ выставления фьюзов. А насчёт RSTDISBL, добрые люди уже сдеали такую штуковину ATmega FUSEBIT Doctor называется. Но ради одного контроллера собирать его нет смысла, выйдет в три раза дороже.
  10. Лично у меня, когда только учился работать с AVRками, 3й вариант очень часто случался. На 10 контроллеров 3-4, с неправильным источником тактирования, 2 сдохло, остальные работают. Умирают они редко, у меня умирали тьлько от КЗ, статику, переполюсовку, перегрев переживали.
  11. Чтоб загрузить картинку на сайт, сначала внизу, возле надписи "Добавить файлы " жмёш обзор, открываешь файл, потом "прикрепить файл", а после этого появляется картинка, а возле неё - "прикрепить к сообщению". А насчёт фьюзов, я к казаме так и не привык, попробуй eXtreme Burner. Там фьюзы задаются в числовом виде, для новичка очень непривычно, но есть хитрость. Я пишу на AVR Studio, там есть встроенный программатор(и его симулятор). Заходишь в студию/Tools/Device programming/ - там выбераешь необходимый девайс, выставляешь фьюзы, и студая показывает эти числовые значения для LOW и HIGH fuse. Их вписываешь в экстрим бурнер, и не надо никаких датащитов и онлайн калькуляторов фьюзов. Ошибка из первого сообщения означает "не могу прочитать программируемое устройство". Она может быть по пяти вариантам: 1) На записуемом камне нет питания (это можно проверить тестером, или с помощью светодиода); 2)Плохой контакт(или его нет) на линиях передачи MOSI/MISO/SCK/RES (проверяется тестером, или прошивкой другого МК); 3)Неправильный тип генертора(быват 4 типа - внутренний, внешний RC, внешний кварц, внешний генератор, я это проверяю методом тыка http://avrdevices.ru/ispravlenie-fyyuzov-avr/) 4) Зашит фьюз reset disable (вывод RST теперь порт ввода вывода) или SPI enable (последовательное программирование отключено) (лечится параллельным порграмматором); 5)МК мёртв.
  12. Ну тогда, для начала вставьте в панельку заведомо рабочий контроллер, и во время программирования измерьте напряжение на выводах питания. Этот программатор скорее всего отключает контроллер во время бездействия, хотя может и нет. Можно просто повесить светодиод с резистором на выводы питания и нажать "программировать". Если светодиод моргнул, значит питание есть. Второй причиной этой ошибки может выступать источник тактирования, без осцилла это проверить сложно, так что просто попробуйте разные режимы DIP-переключателя на плате с панельками(там всего 3 режима они описаны в pdf-ке к плате), также стоит попробовать разные скорости(в казаме где-то был раздел program option/ ISP Clock speed). Ну если и это уже не поможет, то остаётся только одно - вскрывать программатор и прозванивать контакты от самого камня программатора до какой нибудь панельки.
  13. Да, AVRdude перевёл контроллер в режим тактирования от внешнего генератора, и конечно же потерял его. Так что теперь впредь подобного не случилось, я перешел на eXtreme Burner.
×
×
  • Create New...