Jump to content

    

MaxiMuz

Участник
  • Content Count

    253
  • Joined

  • Last visited

Everything posted by MaxiMuz


  1. Доброго времяни суток. Кто нибудь сталкивался с PCB VHDCI 68pin разьема для Altium ? буду признателен если кто подскажет где его найти.
  2. попробуйте обратиться на http://www.open-tag.ru/forum/ возможно найдете готовое решение
  3. Да, извиняюсь, забыл указать САПР. Ищу библиотеки под PCAD-2006
  4. Несколько раз пропустил личные сообщения и решил высказать свое мнение и пожелания по устройству работы "Личного ящика". Во первых, нет ни каких обозначений что это, раздел входящих сообщений, исходящих , прочитанных, не прочитанных. Вообще не понятно что это. Во вторых, нет оповещения на сайте, о том что есть непрочитанные сообщения, либо о том что полученно новое сообщение. Такое ощущение складывается, что сайт 10 лет назад не дописали до конца , и забросили.
  5. Посоветуйте что лучше выбрать. Выбор стоит между PCADxxx и Altium Designer. До этого разводкой плат занимался в SPlan-e и LayOut. Нужна относительно простая в освоении и в тоже время современная САПР и желательно доступная.
  6. Организовал матричную клавиатуру 3х4. На столбцы PB5,PB6,PB7 подаю бегущую "1". Строки РА12...РА9 настроенные как вход с внутренней подтяжкой к нулю. ...........Р.Р.Р ...........В.В.В ...........5.6.7 РА12--1-2-3 РА11--4-5-6 РА10--7-8-9 РА9 --*-0-# Читаю: // вкл. pin1 - на вывод /* Настраиваем KEYCOL1 - на вых.двухтактный f=50MHz */ GPIOB->CRL&= ~(GPIO_CRL_CNF5); GPIOB->CRL|=GPIO_CRL_MODE5; ON_PIN(KEYCOL1);// вкл. стобец столбец __NOP(); // __NOP(); // __NOP(); // __NOP(); // __NOP(); tmp=RD_PORT(inPort); KeyMat[i++]=(u16)tmp;//=tmp<<4; OFF_PIN(KEYCOL1); // вкл. pin3 - Z-состояние /* Настраиваем KEYCOL1 - на вход в третьем сост */ GPIOB->CRL&= ~(GPIO_CRL_MODE5|GPIO_CRL_CNF5); GPIOB->CRL|=GPIO_CRL_CNF5_0; // вкл. pin2 - на вывод /* Настраиваем KEYCOL2 - на вых.двухтактный f=50MHz */ GPIOB->CRL&= ~(GPIO_CRL_CNF6); GPIOB->CRL|=GPIO_CRL_MODE6; ON_PIN(KEYCOL2);// вкл. второй столбец __NOP(); // __NOP(); // __NOP(); // __NOP(); // __NOP(); tmp=RD_PORT(inPort); KeyMat[i++]=(u16)tmp;//=tmp<<4; OFF_PIN(KEYCOL2); // вкл. pin2 - Z-состояние /* Настраиваем KEYCOL2 - на вход в третьем сост */ GPIOB->CRL&= ~(GPIO_CRL_MODE6|GPIO_CRL_CNF6); GPIOB->CRL|=GPIO_CRL_CNF6_0; // вкл. pin3 - на вывод /* Настраиваем KEYCOL3 - на вых.двухтактный f=50MHz */ GPIOB->CRL&= ~(GPIO_CRL_CNF7); GPIOB->CRL|=GPIO_CRL_MODE7; ON_PIN(KEYCOL3); // вкл. первый столбец __NOP(); // __NOP(); // __NOP(); // __NOP(); // __NOP(); tmp=RD_PORT(inPort); KeyMat[i++]=(u16)tmp;//=tmp<<4; OFF_PIN(KEYCOL3);// выкл. первый столбец // вкл. pin1 - Z-состояние /* Настраиваем KEYCOL3 - на вход в третьем сост */ GPIOB->CRL&= ~(GPIO_CRL_MODE7|GPIO_CRL_CNF7); GPIOB->CRL|=GPIO_CRL_CNF7_0; При подаче 1 на РВ5 и замыкании кнопки (кн.4) на РА11 срабатывает соседний пин РА10. При замыкании кнопки7 на РА10 срабатывают соседние РА11, РА9. При замыкании кнопки * на РА9 иногда срабатывает соседний РА10. Если после включения 1 на столбце и считывания строк ввести задержку __NOP(); помехи пропадают. Есть ли другие способы борьбы с такими помехами ?
  7. Слышал такую историю. Одно не безысвестное предприятие заказало модернизацию конвеера розливной линии, чтото там сделать. Конвеером должен был управлять пром.контроллер типа Simatic S7-300. Проэкт заказали в частной фирме. Оплата кроме всего прочего производилась по обьему программы управления процессом. Проэкт сдали, деньги отдали, линию запустили. Через какоето время в предприятие взяли своего грамотного специалиста, и понадобилось чтото изменить в программе. Когда он влез в код то увидел очень много повторяющихся кусков программы которые ни какую полезную работу не выполняли. Сказал , код был раздут в несколько раз.
  8. от чего же ? к примеру характеристика тока VT от напряжения на затворе у IRLML6344TR можно смело как минимум от 9кГц раскачивать , что дальше будет не могу сказать в силу отсутствия опыта.
  9. Подбираю транзистор в качестве ключа. Управление осуществляется с МК U = 2,8..3,3 В Коммутируемый ток от 0,5А до 1,5А в пике. Частота коммутации около 30...100 кГц. Решил что полевой транзистор для этого будет в самый раз.. По характеристикам подобрал IRFZ44 : http://tec.org.ru/board/irfz44n/49-1-0-1125 Но его нет в продаже. Есть ли у него какие нибудь аналоги ?
  10. Первый вопрос: вы отключили бит CKDIV8 ?
  11. Принцип понял, но непонятен механизм. i=0 ,получаем адрес ((pbuff+i)&ADDR_MSK) = (0х00001000+0)&0x000FF000 = 0х00001000 i=1 : ((pbuff+i)&ADDR_MSK) = (0х00001000+1)&0x000FF000 = 0х00001000 тот же самый адрес, или я чего то не так понял ?
  12. Обьявлял массив в прерывании , и там же читал из него в глобальную volatile-переменную , которая использовалась в main-е. При этом в map файле упоминания массива я не нашел. Потом, переместил массив в обл.глобальных переменных, RO увеличилось на несколько единиц, но в map-файле указание на область data - это значит область данных ? CodeKey 0x0800125e Data 12 А, понял! адрес 0x0800125e - область кода. Как только убираю const , переменная перемещается в SRAM
  13. Значение ячеек не меняю и вывод делаю по : размеры областей не мяняются
  14. Попробывал 3 варианта: - массив без const - массив c const - баз массива. Меняется только размер кода , RO , RW и ZI - остаются прежними. Вывод: независимо от квалификатора const массив адресуется из флеш-памяти.
  15. Под AVR GCC как раз так и происходило , пока на добавишь квалификатор PROGMEM
  16. Интересует под Keil где описывается правило размещения данных или массива данных обьявленных как const. Размещаются ли они в ОЗУ или в памяти программ ? Например: const u8 CodeKey[12]={1,4,7,11,2,5,8,10,3,6,9,12};
  17. Только в этой функции, я думаю , не увеличение tail а набоборот: signed int getArray(void) { signed int res = -1; if(head == 0) return res; //нет данных - возвращаем -1 res = buff[tail]; tail--; return res; //возвращаем данные }
  18. Если чем нибудь поможет : 1) вызов или занятие встречной АТС - 1200Гц, t=170..250 мс. 2) Ответ вызванного абонента - 1200 Гц, t=170..250 мс. 3) Набор номера - 1200 Гц, t=~55 мс. 4) Обой - 1600 Гц, t=700+-150 мс. Подробная инфа о параметрах можете найти в сканах документации что я вам привел. _ Если вы хотите чтобы ваше оборудование было совместимо с другим подобным оборудованием. Но если вы хотите сделать собственную закрытую систему , то проще сделать , к примеру, вызов 1200 Гц , отбой 1600 Гц . Этим вы сильно упростите себе задачу распознавания двух частот. Но если всеже вам нужен именно АДАСЭ , то тут два варианта: 1. Аппаратно делать на фильтрах апппаратный приемник тонального набора (ПТН на рис.) - детектор частот. 2. программно на микроконтроллере с помощью БПФ. Как раз для двух и более частот используется БПФ.
  19. нужно прошить штук 20 контроллеров и забыть
  20. http://chel.pulscen.ru/products/pickit_3_17430823 "Программатор PICkit 3 в - 1 450 руб./комплект" да за такие деньги я азбукой Морзе его зашью !
  21. Приветствую ! Встала задача перешить PIC16F886, старый добрый PonyProg не поддерживает данный чип. А с пиками я не работал. Буду благодарен если посоветуете какую нибудь схемку.
  22. Посоветуйте где купить модуль подобный вот этому: http://tqfp.org/auction/item/99 Контроллер любой из линейки STM32F. Количество ног от 18 до 40 , более получиться громоздко. Нужен один модуль для пробы, с возможностью в дальнейшем заказать несколько десятков штук. Буду благодарен если кто подкинет ссылки. Кроме той что выше ничего путного не нашел