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

Neon_613

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

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Частый гость
    Частый гость
  1. Отзывы о магазинах

    Здравствуйте! напишите пожалуйста кто работал с этими магазинами? как они? www.derigroup.ru www.elitan.ru http://radio-hit.ru
  2. Здравствуйте! Есть котроллер At91sam3u к нему приляпана NAND Flash (размер страницы 2048+64) настроил SMC все пишется читается удаляется. вопрос с ECC в примере сгенерированный код берут из NFC SRAM смещение (настроен на bank 0) (0x00000800-0x0000080F Bank 0 Spare Area 0 Read-write 0x00000810-0x0000081F Bank 0 Spare Area 1 Read-write 0x00000820-0x0000082F Bank 0 Spare Area 2 Read-write 0x00000830-0x0000083F Bank 0 Spare Area 3 Read-write) но там мусор и он не менятеся после записи в основную область. в даташите написано что ECC будет расчитано после записи в основную область. и лежать в регистрах (ECC_PR0 to ECC_PR15). действительно там значение меняются после записи в основную область (что то действительно считатется). я данные из этих регистров пишу в дополнительную область страницы. после того как считываю страницу и доп. область в регистрах SMC ECC Status Register 1(SMC_ECC_SR1) генерится ошибка!! (при разных режимах ECC) если кто сталкивался подскажите как быть? почитал даташит At91sam7SE про ECC точно тотже текс что и в At91sam3u (копия)
  3. ADC у SAM7

    Здравствуйте! есть контроллер AT9SAM7S256 пытаюсь работать ADC и ни как. кидаю на Uref опорник 2.5В он проседает до 1.1В ток 50mA O_o если на Uref подать 3.3В ток 275mA. так не на одном контроллере аналогичная схема работает с AT9SAM7SE256 Подскажите в чем может быть проблема?
  4. sam7 встроенная флеш память

    Зравствуйте! надо писать во встроенную Flash есть функция в оперативке unsigned char WritePage(unsigned char *data,unsigned short PageNumber) { unsigned int i; *MC0_FMR &= ~(0xFF<<16); *MC0_FMR |= (36<<16)|0<<FWS; //количество периудов MCK в 1.5 микросекунде *MC0_FMR &= ~(0x1<<7); *MC0_FMR &=~( 0x1<<0 | 0x1<<2 | 0x1<<3); i = 0; do{IFLASH[i >> 2]=data[i]|(data[i+1]<<8)|(data[i+2]<<16)|(data[i + 3]<<24);i += 4;} while(i<IFLASH_PAGE_SIZE); *MC0_FCR = 0x5A<<KEY|(PageNumber<<PAGEN)|WP<<FCMD; while(!((i=*MC0_FSR)&FRDY)); if((i&LOCKE)||(i&PROGE))return (1); return (0); } где #define IFLASH ((unsigned int*)0x00100000) почему туда ((unsigned int*)0x00100000)? там же начало моей проги? почему она еще работает? там временный буфер? (в даташите написано что все пишется через latch buffer но где этот буфер не написано) получается я хочу записать в 30 страницу а пишу в 0вую а потом копируется? а кто востановит 0вую? потому что все продолжает работать и после ресета.
  5. так было в самом начале) чето мне не понравилось) Спасибо! когда ядро в IRQ mode FIQ работает?
  6. процедурка? как в кейле указать что бы по FIQ вектору кинул адрес нужной мне функици? если я укажу одну функцию не юзая AIC то при сработывании ложных FIQ прерываниях сработает как будто дождалась совего события.
  7. Вот еще вопрос. есть такая штука FIQ_Handler_Entry: ;- Switch in SVC/User Mode to allow User Stack access for C code ; because the FIQ is not yet acknowledged ;- Save and r0 in FIQ_Register mov r9,r0 ldr r0 , [r8, #AIC_FVR] msr CPSR_c,#I_BIT | F_BIT | ARM_MODE_SVC ;- Save scratch/used registers and LR in User Stack stmfd sp!, { r1-r3, r12, lr} ;- Branch to the routine pointed by the AIC_FVR mov r14, pc bx r0 ;- Restore scratch/used registers and LR from User Stack ldmia sp!, { r1-r3, r12, lr} ;- Leave Interrupts disabled and switch back in FIQ mode msr CPSR_c, #I_BIT | F_BIT | ARM_MODE_FIQ ;- Restore the R0 ARM_MODE_SVC register mov r0,r9 ;- Restore the Program Counter using the LR_fiq directly in the PC subs pc,lr,#4 END в закрузчике где вектор FIQ прописан адресс этой процедурки. но я так понял она с ошибкой..(когда вытаскиваем адресс из AIC) (взята из примера) но дело не в этом почему когда мы в FIQ моде прерывания включать? и зачем переходить в SVM? из за стека?
  8. Здравствуйте! Вопрос о вложенных прерываниях. Mode_USR EQU 0x10 Mode_FIQ EQU 0x11 Mode_IRQ EQU 0x12 Mode_SVC EQU 0x13 Mode_ABT EQU 0x17 Mode_UND EQU 0x1B Mode_SYS EQU 0x1F BASE_AIC EQU 0xFFFFF000 AIC_EOICR_offset EQU 0x130 AIC_IVR_offset EQU 0x100 I_Bit EQU 0x80 EXTERN _IRQ_SYS EXPORT IRQ_Entry AREA IRQIRQ, CODE, READONLY ARM IRQ_Entry sub LR, LR, #4;Корректировка значения stmfd SP!, {LR};Сохраняем LR_irq в стек IRQ. mrs R14, SPSR;Сохраняем SPSR stmfd SP!, {R14};в стек IRQ. stmfd SP!, {R0};Сохраняем R0 в стек IRQ. ldr R14, =BASE_AIC ;Достаем адресс обработчика ldr R0 , [R14, #AIC_IVR_offset];прерывания из IAC (AIC_IVR). ;str r14, [r14, #AIC_IVR_offset] mrs R14, CPSR ; bic R14, R14, #I_Bit ;Разрешаем IRQ прерывания и orr R14, R14, #Mode_SVC ;переходим Supervisor mod. msr CPSR_c, R14 ; stmfd SP!, { R1-R3, R12, R14};Сохраняем используемые регистры в IRQ-стеке mov LR, PC ;точка возврата bx R0 ;Вызываем обработчик ldmia SP!, {R1-R3, R12, R14};Востанавливаем регистры mrs R0, CPSR ; bic R0, R0, #Mode_SYS ; orr R0, R0, #I_Bit :OR: Mode_IRQ;Заприщаем IRQ прерывания и msr CPSR_c, R0 ;переходим в IRQ mode. ldr R14, =BASE_AIC ;Отмечаем окончания str R14, [R14, #AIC_EOICR_offset];прерывания ldmia SP!, {R0} ;Востанавливаем R0 ldmia SP!, {R14} ; msr SPSR_cxsf, R14 ;и SPSR ldmia SP!, {PC}^ ; END указал адресс IRQ_Entry в там где должен быть вектор оброботчика IRQ прерывания. все работает. Только вопрос. я так понимаю AIC не будет не чего пред пренимать пока в AIC_EOICR не будет не чего записано. а я записываю в него на выходе. и какое же это тогда вложенное? или AIC будет генерировать прерывание только если его приоритет выше?
  9. asm и с

    Спасибо! Главный вопрос почему компилятор ее (глобальную переменную QQQ) не видет? и как сделать что бы видел? после того как исправил код на ваш. Компилятор больше не ругается) :a14:
  10. asm и с

    Здравствуйте есть модуль main.с там обьявленна пременная QQQ не получается изменить ее в асм EXTERN QQQ[DATA] EXPORT Qwe AREA AAAA, CODE, READONLY ARM Qwe sub LR, LR, #4 MOV R1,#QQQ MOV R0,QQQ ADD R1,#1 LDR R1, [R0] ldmia SP!, {PC}^ END это вообще для прерывания. поэтому (sub LR, LR, #4 ). я наверное не правельно пытаюсь увеличивать. подскажите как надо) но он пишет ошибку FIQ\fiq_handler.s(17): error: A1150E: Bad symbol, not defined or external как будто я без него не знаю что она external. как исправить?
  11. Спасибо! буду разбираться) цели не хулиганские. учебные. сигнал такой мощности передается по проводу для возбуждения ниобата лития на кристалле который является оптическим фильтром. эта штука только изучается и про линейность управляющего сигнала ни мне ни моему руководителю не известна. возможно вовсе наплевать на линейность сигнала (лишь бы дергался на нужной частоте). что бы узнать надо собрать и проверить что да как.
  12. Я ни когда не делал ВЧ усилители. Мне надо собрать усилитель с мощность 3-5Вт. Питание любое. Про уровень паразитных составляющих не чего не могу сказать. требований нет. раз А-АБ не целесообразно, скажите как целесообразно. прочитал 3 главу(то что после 124) больше похоже на обзор (не все объяснено) может есть подробная книга, статья, что бы объясняли на пальцах и подкрепляли формулами и с примерами! (или жирно будет) )
  13. Вообще мне надо собрать усилитель с мощность 3-5Вт. питание можно будет нужное подогнать. про уровень паразитных составляющих не чего не могу сказать. Но на данном этапе мне бы понять алгоритм. в какой последовательности что делается. Взял от NXP пару моделей и таблицы s параметров биполярных транзисторов, думаю все про моделировать. а потом собирать. а принцип разве не одинаковый? или для половиков по другому? (просто думал щас собрать на 0.5Вт на бфг, посмотреть есть ли различия реального усилителя и то что было с моделировано. а потом на LDMOS каком нибудь от того же NXP) и может кто подскажет книжку какую где подробно описаны вч усилители и методы их разработки (есть пара книг так там 300 листов формул а потом готовая схема и не чего не объяснено, почему так а не иначе..) за книгу спасибо!
  14. Здравствуйте! мне тут нужно собрать усилитель (диапазон от 40 до 240МГц ) при разработки первом делом надо выбрать рабочую точку как выбрать рабочую точку? 1)есть ВАХ транзистора на ней рисуется кривая нагрузки. потом чертим зависимость Iк от uб и по том выбираем область uб при которых зависимость Ik=f(uб) линейная. (для класса А (АБ)) на базу подаем середину области. только вот что я не пойму. тут же не учитываются Rэ (которым мы задаем ток) и Rк которым мы задаем смещение на выходе.. или ВАХ надо рисовать не транзистора а схемы (с Rэ и Rк)? если без Rэ то надо добавится термо стабильности др средствами? в книге Хоровица, Хилла этот момент как то опущен (говорят что Rк Надо брать что бы было половина питания на выходе) 2)потом читал что то типа примера, алгоритма разработки усилителя. так там выбор рабочей точки проходит след образом: Рисуют семейство ВАХ при разных напряжениях базы. потом говорят: Цитата: Рабочую точку надо выбирать таким образом, чтобы обеспечить минимум искажений сигнала при его усилении, для этого необходимо обеспечить такой режим, который будет далек от режима насыщения и области отсечки. Также необходимо обеспечить минимум энергозатрат. я выбирают оду из ВАХ, что бы удовлетворяла их потребностям в Ik и Uk и что бы область была линейной (не пойму. на глаз что ли определят где линейна где нет?) вот еще ни как не пойму если в первом случае мы рассмотрели Ik=f(uб) и выбрали линейную область то тут мы выбрали (как я понял на глаз) линейную область Ik=f(uк) при определенном значении базы. но при подаче сигнала у нас напряжение на базе будет меняться. и там схема в которой мне не понятно почему нет Rк что бы сместить рабочую точку? получается то отрицательная полу волна не сможет быть усилена? или блокирующая индуктивность имеет еще какое предназначение?
  15. Не подскажите как импортировать spice модель транзистора BFG вот тут bfg нашел данные по нему, что дальше делать пока не понял. и что за spice модель (почему spice)? поней можно получить s параметры? если да то почему производитель отдельно дает s параметры при различном напряжение и токе коллектора
×
×
  • Создать...