Перейти к содержанию
    

mmor

Участник
  • Постов

    58
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о mmor

  • Звание
    Участник
    Участник
  • День рождения 02.08.1982

Контакты

  • Сайт
    Array
  • ICQ
    Array

Посетители профиля

1 150 просмотров профиля
  1. Для аналитического расчета мне предложили воспользоваться таким способом: пусть надо рассчитать волновое сопротивление между двумя полосками близкой ширины. Между полосками - диэлектрик высотой h. Делим диэлектрик пополам и в середину размещаем воображаемую проводящую бесконечную плоскость. Считаем сопротивления каждого полоска относительно этой бесконечной плоскости. Затем полученные сопротивления складываем (последовательное соединение полосок). Воображаемую проводящую бесконечную плоскость убираем, так как она эквипотенциальная к обеим полоскам. Интересно было бы посмотреть на результаты моделирования такой схемы в HFSS например. Старые учебники не учитывают наличие защитной маски на ПП. Поэтому мне порекомендовали программу Polar Si8000-Si9000 PCB Transmission Line Field Solver. считает различные полоски, с учетом маски. К этой программе полезно почитать PCBtech_структура_МПП_impedance.pdf. Не знаю где взять. Какой изгиб полоска лучше? С радиусом, прямой с скосом, или прямой угол скругленный? В книге Изюмова, Свиридова написано что лучше всего прямой угол со скосом. Скругленный тоже хорошо, но КСВ на 0,04 хуже. С радиусом КСВ 1,2, при просто прямом угле - КСВ = 2. Как расчитать скос?
  2. спасибо. Стал считать МПЛ по книге "Справочник по расчету и конструированию СВЧ полосковых устройств" Вольман. проводник 2 мм, высота подложки 1 мм. импеданс 64,76 Ом. TXLINE дает результат 64,78 Ом. В MWO ставлю порт 50 Ом. MLIN на подложке MSUB. Соответственно задаю такие же значения ширины полоски и высоты подложки. Результат - резонанс на на 5,64 ГГц и импеданс 83,8 Ом. Моделирование EMStructures дает такой же примерно результат. Вопрос: почему такая разница. Что я не так делаю или не так понимаю? Расчеты делаю чисто умозрительно, без привязки к конкретному изделию.
  3. Как Вы посчитали? TXLINE в расчетах принимает площадь основания бесконечную. В моем же случае площадь основания ограниченная и ненамного больше ширины проводника.
  4. Требуется рассчитать волновое сопротивление микрополосковой линии. Особенность линии в том, что проводник должен быть ненамного уже заземленого основания. Подложка - фторопласт. Требуется подобрать или толщину подложки или ширину проводника, чтобы получить волновое сопротивление 12,5 Ом. Причем изменять ширину дорожки можно немного. Ширина основания 7 мм. Дорожка должна быть не уже 4 мм. Толщина дорожки 0,1 мм. Подскажите литературу или любой источник, где упоминаются такие линии.
  5. Да, теперь все работает правильно. Спасибо!
  6. Вот полный код на настоящий момент. прерывание INT0 срабатывает постоянно в симулинке в AVR. программа вобщем ничего не делает, просто пытаюсь на ассемблере запустить прерывания по инт0. Прерывания от порта PB2 стал делать в качестве альтернативы, отключив прерывание по инт0. Без инт0 прерывание от PB2 срабатывает нормально. Пробовал и в протеусе, и в симулинке установкой и снятием третьего бита (бит 2 если от нуля). Схема самая простая в протеусе. Контроллер, на вывода PB0 И PB2 через резисторы 10 кОм подведено питание 5 В. И на эти же выводы по кнопке button. Нажал кнопку - на выводе 0. Отжал - лог. 1. .include "tn13def.inc" .org 0 rjmp init .org 1 rjmp INT0_vect .org 2 rjmp PCI0_vect init: //--------------------------------------------------------------------- //установка вершины стека ldi r16,$DF ; загружаем константу в регистр общего пользования r16 out SPL,r16 ; указываем верхнюю границу стэка //--------------------------------------------------------------------- //инициализация выводов //--------------------------------------------------------------------- //направление вывода "ног": 1 - вывод, 0 - ввод ldi r16, (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0); out DDRB, r16; ldi r16, (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0); out PORTB, r16; //--------------------------------------------------------------------- //инициализация таймера ldi r16, $00; out TCNT0, r16; ldi r16, $15; out OCR0A, r16 ldi r16, $5; out OCR0B, r16 ldi r16, $12; out TCCR0A, r16; ldi r16, $03; //$04 out TCCR0B, r16; //--------------------------------------------------------------------- //инициализация прерываний ldi r16, (1<<PUD)|(0<<SE)|(0<<SM1)|(0<<SM0)|(0<<ISC01)|(0<<ISC00);//01 out MCUCR, r16; ldi r16, (1<<INT0)|(1<<PCIE);//01 out GIMSK, r16; ldi r16, (0<<PCINT5)|(0<<PCINT4)|(0<<PCINT3)|(1<<PCINT2)|(0<<PCINT1)|(0<<PCINT0);//04 out PCMSK, r16; //--------------------------------------------------------------------- //разрешаем прерывания ldi r16, $80; out SREG, r16; main: ; тело цикла nop; ; команда, которая ничего не делает nop; rjmp main; ; переход на метку main //--------------------------------------------------------------------- //прерывание INT0 INT0_vect: nop reti; //--------------------------------------------------------------------- //прерывание PCIN4 PCI0_vect: nop reti; еще не понял почему INT0 - это PB1? И ведь правда PB1!!!! только сейчас разглядел!!! Вот что значит замыленный взгляд. Привык тчо на атмегах это 0-й пин. Звиняйте за беспокойство, сейчас буду переделывать! а PB1 у меня как раз таймер дергает!
  7. Прошу прощения. Вчера что то так неважно себя чувствовал сам не понял что написал. Код привел ошибочный. Прерывание INT0 это я потом запретил после экспериментов. Так конечно должно быть: ldi r16, (1<<INT0)|(1<<PCIE);//01 out GIMSK, r16; Выводы PB0 и PB2 подтянуты к питания через резистор 10кОм. Еще я пробовал включатьбит PUD В регистре MCUCR. Это никак не влияет. INT0 срабатывает постоянно. Установка вывода PB0 на вход или выход так же никак не влияет.
  8. Есть проблемка с Attiny13. Стал пробывать сделать прерывание от INT0, прерывание должно срабатывать от низкого уровня на ножке. Программа на ассемблере в AVR Studio 4.16. При симуляции в Simulator 2 прерывание INT0 срабатывает постоянно. Независимо от того что на выводе. В моделировании в протеусе таже беда. Переписал программу на СИ, тоже самое. живьем микросхемы пока нет. Подскажите что это может быть, ошибка в коде, глюк AVR. Будет ли нормально работать на железе. Вот кусочек кода: ldi r16, (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(1<<1)|(0<<0); out DDRB, r16; ldi r16, (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(1<<1)|(1<<0); out PORTB, r16; .... //инициализация прерываний ldi r16, (0<<PUD)|(0<<SE)|(0<<SM1)|(0<<SM0)|(0<<ISC01)|(0<<ISC00); out MCUCR, r16; ldi r16, (0<<INT0)|(1<<PCIE);//01 out GIMSK, r16; ldi r16, (0<<PCINT5)|(0<<PCINT4)|(0<<PCINT3)|(1<<PCINT2)|(0<<PCINT1)|(0<<PCINT0); out PCMSK, r16; ..... //прерывание INT0 INT0_vect: nop reti;
  9. Собственно на UC3843 и буду делать. Вернее разрабатывать схему и макет. а вот буду ли применять в машине не уверен еще. Волнует вопрос надежности и качества таких преобразователей. Имеет ли преобразователь на основе инвертора - трансформатора - выпрямителя преимущества, в часности для применения именно для питания ноутбука от бортсети авто? И вопрос насчет скорости нарастания импульсов (фронтов) и как на это реагируют полевики остался открытым. Хотя вот смотрю к UC3843 цепляют полевик напрямую.
  10. Вопрос собсвенно и был в том, чему верить больше, расчетам или графикам. Сжечь ноут неохота, потому от применения этой микросхемы уже отказался. И вообще думаю отказатся от Step-Up и сделать что нибудь с гальванической развязкой. Есть ли в этом смысл? Или в данном применении без разницы и хорошо сделаный Step-Up будет работать не хуже? Насчет времения: где то читал что у этой микросхемы фронты импульсов слишком маленькие для применения с полевым транзистором, вроде как из-за этого транзистор будет сильно грется или не будет работать вообще. Поэтому ставят драйвер или простой биполярник. Для увеличения тока и уменьшения фронтов импульсов. Так ли это?
  11. подскажите по микросхеме MC34063. Считаю по формулам из даташита ton/toff. Vinmin=10V, Vout=19V, I=0.1A, F=50kHz, Vsat=1, Vf=0.6 По рассчетам получаю ton=10.3 us toff=9.67us Там же в даташите есть график Figure3 Oscillator Frequence. При частоте 50 кГц емкость Ct получается примерно 490-500 пФ, ton = 20us, toff <2 us. Т е разница на порядок. Что я не так понимаю? И еще подскажите, как это время переключения будет влиять на работу полевого транзистора, если я его подключу для получения большей мощности?
  12. Сам себе и отвечу. //Запись в EEPROM // инициализация EEPROM CS_L; CS_H; //1. Разрешаем запись. Отправляем команду WREN CS_L; SPDR = 0x06; while(!(SPSR & (1<<SPIF))); CS_H; //2. Пишем данные WRITE CS_L; SPDR = 0x02; while(!(SPSR & (1<<SPIF))); SPDR = 0; //адрес 0 while(!(SPSR & (1<<SPIF))); SPDR = 0x05; //данные while(!(SPSR & (1<<SPIF))); PORTD = 0x05; // CS_H; /* //Чтение статуса CS_L; SPDR = 0x05; //читаем регистр статуса while(!(SPSR & (1<<SPIF))); SPDR = 0xff; //заглушка while(!(SPSR & (1<<SPIF))); PORTD = SPDR; // считанные данные CS_H; */ _delay_us(10); //3. Чтение данных CS_L; SPDR = 0x03; //READ while(!(SPSR & (1<<SPIF))); SPDR = 0; // Адресс while(!(SPSR & (1<<SPIF))); SPDR = 0xff; //заглушка while(!(SPSR & (1<<SPIF))); PORTD = SPDR; // считанные данные CS_H; CS_L - low CS_H - hight Данные в EEPROM действительно пишутся в протеусе, но бинарник не меняется. Для того, что бы проще было смотреть, выставил время записи 2us. Как раз попробую EEPROM в качестве ОЗУ с малым временем записи. EEPROM 25AA020А. Фмрма Интеграл выпускает полные аналоги этого EEPROM, и на сайте можно скачать русский даташит.
  13. команда MEM_ON - SS = 0 MEM_OFF - SS = 1 а все таки как протеус реагировать должен на запись eeprom. Должен ли он бинарник, прошитый в eeprom заполнять входящими данными или нет?
  14. MOSI для записи данных в память. Программа примерно такая: счетчик считает от 0 до 2047 (к примеру) и каждое число записывается в ЕЕПРОМ по линии MOSI. А затем в другом цикле эти числа считываются обратно по линии MISO. Вообще изначально идея была попробывать SPI ПЗУ, но в библиотеках протеуса такого нет, вот я и поставил за место него ЕЕПРОМ.
  15. получились танцы с бубном. заработало только после того, что сначала отправляю в еепром (25АА256) команду 0000 0001 (Write STATUS register) после этого команду записи (потом данные) а после этого команду чтения. файл для еепром создал в hex редакторе и считываю с него данные. А вот по записи не знаю как реализовано в протеусе. Должен ли он переписывать файл для чипа еепром. По крайней мере у меня этот файл не меняется. Или я неправильно записываю данные в еепром, или это такая фишка протеуса. пример кода: //Запись MEM_ON; //CS SPDR= 0x01; //wrsr while(!(SPSR & (1<<SPIF))); SPDR=0x02; // write while(!(SPSR & (1<<SPIF))); SPDR=0; //adressH while(!(SPSR & (1<<SPIF))); SPDR=0; // adressL while(!(SPSR & (1<<SPIF))); SPDR=Data; // данные while(!(SPSR & (1<<SPIF))); MEM_OFF; //Чтение MEM_ON; SPDR=0x03; //Read while(!(SPSR & (1<<SPIF))); SPDR=0; while(!(SPSR & (1<<SPIF))); SPDR=0; while(!(SPSR & (1<<SPIF))); SPDR = 0xff; while(!(SPSR & (1<<SPIF))); Data = SPDR; MEM_OFF; Думаю делаю неправильно. Надо более подробно читать даташит. Получается что моя команда write становится как бы регистром статуса для команды wrsr. В регистре SPCR бит DWORD = 0; Как режим Slave для такой памяти сделать?
×
×
  • Создать...