truebest
Участник-
Постов
77 -
Зарегистрирован
-
Посещение
Весь контент truebest
-
Решение типа: LPC_PINCON->PINSEL0 = 0x00000000; LPC_PINCON->PINSEL1 = 0x00000000; LPC_PINCON->PINSEL2 = 0x00000000; LPC_PINCON->PINSEL3 = 0x00000000; LPC_PINCON->PINSEL4 = 0x00000000; LPC_PINCON->PINSEL5 = 0x00000000; LPC_PINCON->PINSEL6 = 0x00000000; LPC_PINCON->PINSEL7 = 0x00000000; LPC_PINCON->PINSEL8 = 0x00000000; LPC_PINCON->PINSEL9 = 0x00000000; LPC_PINCON->PINSEL10 = 0x00000000; /*Выключаем Pull-up*/ LPC_PINCON->PINMODE0 = 0xAAAAAAAA; LPC_PINCON->PINMODE1 = 0xAAAAAAAA; LPC_PINCON->PINMODE2 = 0xAAAAAAAA; LPC_PINCON->PINMODE3 = 0xAAAAAAAA; LPC_PINCON->PINMODE4 = 0xAAAAAAAA; LPC_PINCON->PINMODE5 = 0xAAAAAAAA; LPC_PINCON->PINMODE6 = 0xAAAAAAAA; LPC_PINCON->PINMODE7 = 0xAAAAAAAA; LPC_PINCON->PINMODE8 = 0xAAAAAAAA; LPC_PINCON->PINMODE9 = 0xAAAAAAAA; /*Все GPIO как выходы*/ LPC_GPIO0->FIODIR = 0xFFFFFFFF; LPC_GPIO1->FIODIR = 0xFFFFFFFF; LPC_GPIO2->FIODIR = 0xFFFFFFFF; LPC_GPIO3->FIODIR = 0xFFFFFFFF; LPC_GPIO4->FIODIR = 0xFFFFFFFF; /*Все GPIO в 0*/ LPC_GPIO0->FIOCLR = 0xFFFFFFFF; LPC_GPIO1->FIOCLR = 0xFFFFFFFF; LPC_GPIO2->FIOCLR = 0xFFFFFFFF; LPC_GPIO3->FIOCLR = 0xFFFFFFFF; LPC_GPIO4->FIOCLR = 0xFFFFFFFF; Позволило снизить до 250микроампер. Все равно много. Внутренне отключение всяких блоков в LPC_SC->PCONP не дает никаких результатов.
-
Пытаюсь добиться от LPC1768 минимального энергопотребления. В аппноте AN10915 говорят что по умолчанию все ноги контроллера являются входами + подключен внутренний pull-up резистор. Рекомендуют сперва на всех GPIO выключить pull-up резисторы. Ок лезем в юзермануал а там... Там сказано что в карте регистров существует с PINMODE0 - PINMODE7 и PINMODE9. Ок Лезем ниже где расписаны эти регистры, там существует описание только для PINMODE0 - PINMODE4 PINMODE7 PINMODE9. Лезем в хеадер lpc17xx.h там вообще с PINMODE0 по PINMODE9 все есть ренистры. Что точно нужно менять непонятно.. Минимального энергопотребления удалось добиться когда я на всех GPIO включаю только pull-down резисторы в режиме котроллера power down моя плата потребляет 330микроампер(реально из них контроллер потребляет около 150мка что много для этого режима сна). Если я все gpio настраиваю как non-pull-up non-pull-down и отправляю котроллер в power down то моя плата потребляет 1.1ма. Перед сном отключаю все то можно деинициализирую UARTты ADC и прочее. Собственно вопросы, сколько существует реально PINMODE регистров? Что нужно сделать чтобы добиться минимального энергопотребления?
-
Количество до 1000 в год Корпус ну что-то наподобие вот этого... Корпус Корпус нужен срочно, и что делать я хз...
-
LPC1768 и Main oscillator
truebest ответил truebest тема в ARM, 32bit
Про уарт я забыл, перепаял, позже попробую -
LPC1768 и Main oscillator
truebest ответил truebest тема в ARM, 32bit
А по подробнее можете рассказать? Я так понимаю по аналогии его как то чем то тикать заставить. А как вы говорите потом загрузиться с чего либо и переконфигурировать регистр? -
LPC1768 и Main oscillator
truebest опубликовал тема в ARM, 32bit
Что-то затупил, в кейле убрал галочку Main oscillator enabled, а источник тактирования на внутренний не сменил...Как оживить контроллер... J-tag у меня MT-LINK v8 -
2-я конференция NXP
truebest ответил KRS тема в Объявления пользователей
Все было замечательно...Галла-Ужин девушки баня и тд... -
Посоветуйте Программатор/Отладчик для LPC1768
truebest ответил truebest тема в ARM, 32bit
То или сам делай или хер из китая закажешь... А чтобы купил и забыл Вот из этого что посоветуете? -
Посоветуйте Программатор/Отладчик для LPC1768
truebest опубликовал тема в ARM, 32bit
Название темы говорит само за себя... Ценновая категория до 3т.р. Поддержка IDE Keil, IAR одного из обязательна Пока глаз упал на ЭТО Может быть еще что лучше есть ? -
C пристрастием осилил документацию на ADF, кишмиш пока в башке не улеглось, щас приступлю к 533, я почитал на русском описание, засяду по подробнее пока как раз он идти будет... йяска 479386
-
Вообще я как понимаю все равно почти куда что подключать, в частности нанд, как драйвером опишешь так и юзать будешь. тупенький вопрос , ноги нанд ALE CLE вяжутся на ADDR2-3, почему не с первого?
-
Да ну да, студенту то это влегкую по карману) Я хочу сделать сам плату, думаю что гораздо дешевле выйдет. Выходные мусолил документацию, очень многое стало понятно. мусолю дальше
-
Ребят подскажите, вот в В этой статье сказано что если я подключаю NAND через EBIU то насколько нибыла бы память использовать я могу только 1мб, Я правильно понял? Получается тогда только через GPIO описывать? Также вопрос, если у меня в SDRAM используется выводы DATA0-DATA15, А у NAND DATA0- DATA7, их я в паралель должен соединить? ну тоесть и сдрам и нанд использует DATA0- DATA7 ноги проца?
-
Не знал я про пол часа....а есть самодельные программаторы нанд флеш?
-
Ребят подскажите, если я задействую SPI под Flash(загрузчик) и под ADF7021 , то я смогу ADFку использовать уже непосредственно в linux?
-
Эт как у народа, чем больше тем лучше, вот и смутило.... Примерно ваша схема у меня в предыдущей конструкции использовалась....только загрузчик шился через Жтаг, прошивка в NAND, и остальное место под ФС... но на той плате был Ethernet, и прошивалось за 3 секунды...и мне она попалась с загрузчиком, я только ее перешивал...Тут у меня только жтаг. А схемкой своего девайса поделиться может кто, для примера... А схемкой своего девайса поделиться может кто, для примера...
-
А где покупаете не подскажите? А то ближайшее что нашел M25P128-VMF6TP , но она 50мгц
-
Вобщем я подститал, мне внешним АЦП нужно хватануть 300кгц, соответственно дискретизировать должен с частотой начиная от 600кгц (по найквисту)... Далее в этих 300кгц мне нужно сделать БПФ с разрешением 25-30гц. По формуле N=Fs/(требуемое разрешение) Если я буду дискретизировать с частотой 800кгц и разрешение 25гц то получается минимальное равное 32000 отсчетам, лучше выбрать с избытком 65535 отсчетов.... ну + обработка этих результатов... sevstels посоветуйте модель FLASH памяти для проца, которая будет 4мб или более, нетрудно подключить и возможна загрузка.... Ну это понятно, на Флеш загрузчик линукса, сам линукс и фс, но чтобы начать загрузку Флеш загрузчик нужно сначала про инициализировать саму SPI FLASH, где в процу сказать что мол грузиться надо, тоесть получается, сначала начальную конфигурацию зашить в сам проц....Правильно я все понимаю?
-
ADSP-BF5333 + Linux
truebest опубликовал тема в Сигнальные процессоры и их программирование - DSP
Очень хочется попробовать этот проц, и заставить его работать под линуксом. Задача сделать FSK трансивер, для чего выбрал ADF7021. С ВЧ-СВЧ техникой имею опыт. А вот с ADSP-BF5333 нет. Также есть опыт работы с портативными системами на Linux на процах MIPS арх.(программирование под них, вернее под линукс на них)... также есть несколько других задач которые должен выполнять проц, работу с различными модулями, и в последствие использование высокоскоростного ADC, для создания SDR приемника, и анализа частот в DSP. Из задачи вижу следующую примерную конфигурацию системы Проц ADSP-BF533SBSTZ400 SDRAM MT48LC16M16A2P-75 FLASH S29AL032D70BFI040 Полазив по форуму понял что такую FLASH память будет трудно запрограммировать...Если использовать SPI FLASH, то там возникают проблемы с таким объемом (как у меня нужно минимум 2-3мб)... Подскажите будет ли эта система работать под линуксом? Что нужно обязательно добавить и что нужно для удобства? Подскажите схему JTAG программатора работающего с этим процом? Как мне лучше организовать прощивку S29AL032D70BFI040 ? или есть ли возможность использовать SPI FLASH 4мб и более??? Чтобы запрограммировать S29AL032D70BFI040 , я как понимаю, нужно чтобы проц загрузил с внешнего EEPROM бутлоадер, который будет шить память...Получается еще SPI eeprom надо. -
AD9954 помоему Вообще не отвечает.
truebest ответил truebest тема в RF & Microwave Design
Всем спасибо за советы, проблема была в этой ножке, а также ддс отказывался работать на медленной клоке, не менее 1/4 ему надо чтобы работать...также немного код переписал. void InitDDS(void) { IO_SYNC=OFF; AD9954_RESET(); initSPIM(); IO_SYNC=OFF; // CFR1 (Control Function Register No. 1) LED=ON; //while(1) //{ IO_CS=0; spi_write (DDS_AD9954_CFR1); spi_write (0x00); spi_write (0x00); spi_write (0x32); spi_write (0x0A); // Power down all subsystems. IO_CS=1; ////////////////////// //delay(100); //ddsSetOutputScale (0x3fff); //IO_CS=0; //spi_write (DDS_AD9954_ARR); //spi_write (181); //IO_CS=1; ///CFR2/////////// IO_CS=0; spi_write (DDS_AD9954_CFR2); //spi_write (0x01); spi_write (0x00); spi_write (0x00); spi_write (0xA5); IO_CS=1; IO_UPDATE=1; IO_UPDATE=0; ddsSetFTW(0x00A3D70A); /*while(1) { delay(65530); ddsSetFTW(0x60000000); delay(60000); ddsSetFTW(0x5CCCCCCD); delay(60000); ddsSetFTW(0x5E147AE1); delay(60000); ddsSetFTW(0x5D70A3D7); delay(60000); ddsSetFTW(0x5EB851EC); delay(60000); ddsSetFTW(0x5F5C28F6); delay(60000); } -
AD9954 помоему Вообще не отвечает.
truebest ответил truebest тема в RF & Microwave Design
Щас попробую програмно объединить. Опишите пожалуйста что я должен записать в регистры чтобы получать на выходе ддс несущую на определенной частоте... -
AD9954 помоему Вообще не отвечает.
truebest ответил truebest тема в RF & Microwave Design
!SPI1STATbits.SPIRBF или SPI1STATbits.SPIRBF, зависит от того что у меня будет в регистре контроллера SPI1CON2 там бит SPI1CON2bits.SPIBEN отвечает за буфер, если его делаешь включенным(SPI1CON2bits.SPIBEN = ON;) то while(SPI1STATbits.SPITBF); если как у меня SPI1CON2bits.SPIBEN=0 то проверку надо делать как while(!SPI1STATbits.SPITBF); Да наверное я тут ошибся проверяя Ресив вместо Трансмит буферы. Также игрался с этим битом тоже фиг.... Используемая мной конструкция проверки буфера SPI описанна на примере в книге Программирование на С микроконтроллеров PIC24: Лусио Ди Джасио.... Вот подскажите Нога SYNС_IN должна быть замкнута на землю? в одной их схем только для AD98 она висела в воздухе...Сегодня не успел протестировать, пришлось отпаивать ДДС чтобы срезать подвод массы к этой ноге. Также подскажите обязательно ли должен SPI работать на скорости 1/4 от Fcy или от FOSC????? -
AD9954 помоему Вообще не отвечает.
truebest опубликовал тема в RF & Microwave Design
Добрый день уважаемые... Довелось мне помучаться с AD9954, Но чтобы я не делал как бы не вертел ее нивкакую она не генерила, я пробовал и аппаратный SPI и програмный ничего. Осцилографом просматриваются идущие данные, клока, cs, резет, i/oupdate. Для проверки заливаю в CFR2 байт 9 чтобы Crystal Out заработал...навыходе естественно получаю фиг... Вообще цель делать бесконечный синус или косинус на 20мгц. Схема ТУТ DDS.C //IOSYNC #define IO_SYNC _RB6 #define TIOSYNC _TRISB6 //IOUPDATE #define IO_UPDATE _RA8 #define TIOUPD _TRISA8 //DDS RESET #define RESET _RB7 #define TRESET _TRISB7 //CS #define IO_CS _RC5 #define TCSEE _TRISC5 //ОSK #define IO_OSK _RA9 #define TOSK _TRISA9 //PS0 PS1 #define IO_PS0 _RA4 #define TPS0 _TRISA4 #define IO_PS1 _RB4 #define TPS1 _TRISB4 #define DDS_AD9954_CFR1 0x00 #define DDS_AD9954_CFR2 0x01 #define DDS_AD9954_ASF 0x02 #define DDS_AD9954_ARR 0x03 #define DDS_AD9954_FTW0 0x04 #define DDS_AD9954_FTW1 0x06 #define DDS_AD9954_NLSCW 0x07 #define DDS_AD9954_PLSCW 0x08 #define DDS_AD9954_RWCW0 0x07 #define DDS_AD9954_RWCW1 0x08 #define DDS_RAM 0x0b #define DDS_FREQ_TO_FTW_DIGITS 9 ////PROTOTYPES void initSPIM(void); void InitDDS(void); void delay(uint i); void AD9954_RESET(void); void spi_write(char data); void ddsSetFTW (unsigned long ftw); void ddsSetOutputScale (unsigned int scale); //---------------------------------------------------------------------- void initSPIM(void) { IO_CS=1; IO_PS1=0; IO_PS0=0; IO_OSK=0; IO_UPDATE=0; SPI1CON1=0x0120; /*13E;*/ SPI1STAT=0x8000; IO_OSK=0; } /// void AD9954_RESET(void) { RESET=0; RESET=1; delay(2200); RESET=0; IO_CS=0; } /// void spi_write(char data) { SPI1BUF=data; while(!SPI1STATbits.SPIRBF); } //// void ddsSetOutputScale (unsigned int scale) { // Set ASF (Amplitude Scale Factor) IO_CS=0; spi_write (DDS_AD9954_ASF); spi_write ((scale >> 8) & 0xff); spi_write (scale & 0xff); IO_CS=1; // Strobe the DDS to set the amplitude. IO_UPDATE=1; IO_UPDATE=0; } /// void ddsSetFTW (unsigned long ftw) { // Set FTW0 (Frequency Tuning Word 0) IO_CS=0;; spi_write (DDS_AD9954_FTW0); spi_write ((ftw >> 24) & 0xff); spi_write ((ftw >> 16) & 0xff); spi_write ((ftw >> 8) & 0xff); spi_write (ftw & 0xff); IO_CS=1; // Strobe the DDS to set the frequency. IO_UPDATE=1; IO_UPDATE=0; } void InitDDS(void) { asm volatile ( "MOV #OSCCON, w1 \n" "MOV #0x46, w2 \n" "MOV #0x57, w3 \n" "MOV.b w2, [w1] \n" "MOV.b w3, [w1] \n" "BCLR OSCCON,#6" RPINR20bits.SDI1R = 5; // Assign SDI1 To Pin RP5 //************************************************************************* // Configure Output Functions (Table 9-2) //************************************************************************* // SPI1 RPOR9bits.RP19R = 7; // Assign SDO1 To Pin RP19 RPOR10bits.RP20R = 8; // Assign SCK1OUT To Pin RP20 //************************************************************************* //Запрещаем изменение настроек переферии пин селект asm volatile ( "MOV #OSCCON, w1 \n" "MOV #0x46, w2 \n" "MOV #0x57, w3 \n" "MOV.b w2, [w1] \n" "MOV.b w3, [w1] \n" "BSET OSCCON, #6" ); AD9954_RESET(); initSPIM(); // CFR1 (Control Function Register No. 1) IO_CS=0; spi_write (DDS_AD9954_CFR1); spi_write (0x00); spi_write (0x00); spi_write (0x00); spi_write (0x02); // Power down all subsystems. IO_CS=1; ////////////////////// ddsSetOutputScale (0x3fff); IO_CS=0; spi_write (DDS_AD9954_ARR); spi_write (181); IO_CS=1; ///CFR2/////////// IO_CS=0; spi_write (DDS_AD9954_CFR2); spi_write (0x00); spi_write (0x02); spi_write (0xA7); IO_CS=1; IO_UPDATE=1; IO_UPDATE=0; ////////////////// while(1) {ddsSetFTW(0x0CCCCCCD); } } //// void delay(uint i) { while(i--); } //// -
Добрый день всем...Старая тема но уж также такаяже у меня задача. Неполучается инициализировать AD9954.. После прочитки этого форума понял что надо донышко микры припоять, а также более менее как дергать RESET CS i/o sync и i/o update Мне хотелось чтобы ниже описали правильный алгоритм инициализации, а то размазали по форуму :rolleyes: ) У меня CLKMODESELECT приварен к GND), генератор внешний на 20мгц. Управление реализовываю по 3 проводному SPI. Заранее спасибо.
-
Service_Tool V1.20
truebest ответил sheikh1777 тема в Сотовая связь и ее приложения
Пришлите пожалуйста эту программу на [email protected]