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

snayperAlfa

Свой
  • Постов

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

  • Посещение

Весь контент snayperAlfa


  1. А это мысля! Перевести Unused pins в Z состояние попробую. Нет,никакого перевода не требуется :) Английский я понимаю.
  2. Приветствую всех. Есть дев. борд - Nios 1 Development Kit - Cyclone 1 Edition Есть проблема : не запускается на исполнение пользовательская прошивка. Поясняю: создал в квартусе проект мигания светодиодами через счетчик. Сконфигурировал пины, скомпилировал. Запускаю среду программирования. Нажимаю AutoDetect - находит главный чип, все отлично. Далее нажмаю запрограммировать его. Успешно прошивается. Теперь самое интересное: после программирования на дев. борде начинают гореть статусные светодиоды в следующем порядке: 1)Мигает светодиод "Loading" и светится светодиод "User" 2)Мигает светодиод "Loading" и светится светодиод "Safe" 3)Светодиод "Loading" тухнет и постоянно горит светодиод "Safe" По поведению светодиодов и LCD дисплея можно понять что выполняется зашитая с фабрики прошивка Nios. Теперь вопрос: как его заставить выполнять мою прошивку? Есть предположение что необходимо перепрограммировать загрузочную флеш, но ByteBlaster она не определяется. П.С. Программируется через Altera ByteBlaster II Внизу я прикрепил 2 пдф - документация на эту дев.борду. mnl_nios_board_cyclone_1c20.pdf ug_nios_gsg_cyclone_1c20.pdf
  3. Проблема в том что при выборе *.bdf в опциях при нажатии ПКМ нет "Create HDL Design File for Current File". Я нашел способ как из квартуса можно запускать моделирование в Моделсим для данного проекта. Теперь осталось найти как в Моделсим открывать проект с *.bdf не запуская квартус
  4. Приветствую всех. Есть проект в квартусе - схематик файл. Он же *.bdf. В нем также используется мегафункция - двухпортовая память. Как мне это все засунуть в Modelsim? У меня пока получается засунуть ему только *.vhd файлы. А вот что делать с *.bdf ума не приложу. Не понимает он этот формат(
  5. Здравствуйте!!! Не пробегала ли где нибудь тут библиотека для процессоров MSP430 от TI. Что странно - в самой поставке от Altium этих процессоров нет(
  6. После выходных продолжу испытания ИСЫ
  7. Установил значение IOCHRDY = 0. Все равно не грузится. ПОпробывал еще с '1', аналогично
  8. Различные комбинации CS/ RW резуьтатата не дали. Если ставлю CS=1, процессор все равно не грузитсья
  9. Возможно ли загрузить на другой файло-обмееник: www.letitbit.net www.rapidshare.com А то у мой провайдер не позволяет скачивать с депозита. Пишет что уже идет скачка с моего IP СПАСИБО
  10. Вот ссылка на даташит микросхемы-ключа http://pdf1.alldatasheet.com/datasheet-pdf.../MT90826AL.html Вот собственно схема:
  11. Есть пром.комп. К нему через переходник PCI->ISA подключается ПЛИС. Обмен данными 8-ми битный. На плате также присутствует микросхема-(коммутатор). Если загрузить в ПЛИС оригинальную прошивку, процессор стартует и в РС-232 вываливается информация. Если же перевести все линии ПЛИС в З-состояние - процессор не грузиться,а должен
  12. Приветствую всех. Работал ли кто-то с ISA шиной. Вот пытаюсь реализовать общение по ИСА шине - не выходит. Возможно у кого-то есть проекты с использованием ИСА, или корки может какие. Буду благодарен за любой материал на тему реализации ИСЫ в ПЛИСЕ.
  13. Keil Logic Analyzer + PWM

    Мое приветствие всем. Подскажите пожалуйста, как в Кейловском Logic Analyzer добавить вывод ШИМа. Интересует PWM2. Использую LPC2388 Выход ЦАПа добавить не проблема, а вот для ШИМа я не нашел ничего подобного(
  14. Может кто-то мне ткнуть пальцем на пример применения DMA в LPC2388 В User Manual он просто описывается. На сайте NXP я не нашел Apllication Note про DMA http://www.myplace.nu/avr/minidds/index.htm В этой статье внизу приведены снимки осциллографа. В подписи к изображениям указано что частота сигнала 100 кГц! И это он использует Мегу с кварцем в 11 Мгц. А я использую АРМ7 с частотой 72 МГц и максимум что пока получил 50кГц
  15. А то что синус такой корявенький? Это можно исправить только аналоговыми фильтрами ФНЧ на выходе?
  16. Частота таймера 72 МГц. Я рассчитываю числа следующим образом: Ft - частота таймера = 72000000 Hz Fd - частота дискретизации. Выбираю 240000 Hz Тогда, число для загрузки в регистр сравнения таймера TOMR0= Ft / Fd = 72000000 / 240000 = 300 Длина таблицы значений синуса N = 64 = 2^6; Fs - необходимая частота выходного сигнала = 30000 Hz Значит всю таблицу сигнала необходимо проходить за K прерываний. K = Fd/Fs = 240000 / 30000 = 8 Разрядность аккумулятора фазы Res=32 Тогда, приращение фазы delta = (2^Res) / K = (2^32) / 8 = 536870912 Для индексации элемента в таблице используются старшие 8 бит из аккумулятора фазы. Поэтому сдвигаем вправо на (2^Res) / N = 2^32 / 2^6 = 24 В результате моделирования в Кеиле получил вот такой график Код следующий: #include "LPC23XX.h" int sinus[64]={512,562,613,662,710,756,800,840,878, 911,941,967,988,1004,1015,1022,1023,1019,1010,996,978, 954,927,895,859,820,778,733,686,638,588,537,486,435,385, 337,290,245,203,164,128,96,69,45,27,13,4,0,1,8,19,35,56, 82,112,145,183,223,267,313,361,410,461,511}; const int array_size=sizeof(sinus)/sizeof(int); void GPIOResetInit(void); static unsigned long phase=0; unsigned int amplituda=1024; static unsigned long delta=536870912; /* Timer0 IRQ: Executed periodically */ __irq void Timer0ISR (void) { DACR = ((sinus[phase>>26]*amplituda)>>4) & 0x0000FFFC; phase += delta; T0IR = 0x01; //sbros flaga prerivaniya.Avtomaticheski ne rabotaet VICVectAddr = 0; /* Acknowledge Interrupt */ return; } /****************************************************************************** ** Main Function main() ******************************************************************************/ int main (void) { GPIOResetInit(); VICIntSelect = 0x00; // all interrupts are IRQs VICIntEnable = 0x10; // Channel#4 is the Timer0 VICVectAddr4=(unsigned)Timer0ISR; FIO0DIR=1<<26; PINSEL1 =1<<21; //vkluchaem DAC //timer initialization T0IR=0; T0CTCR=0; T0TC=0; //shchetniy register T0PC=0; T0PR=0; T0MR0=300; // register sravnenia tipa OCR T0MCR=3; T0TCR=1; while(1) { } return 0; } void GPIOResetInit( void ) { /* Reset all GPIO pins to default: primary function */ PINSEL0 = 0x00000000; PINSEL1 = 0x00000000; PINSEL2 = 0x00000000; PINSEL3 = 0x00000000; PINSEL4 = 0x00000000; PINSEL5 = 0x00000000; PINSEL6 = 0x00000000; PINSEL7 = 0x00000000; PINSEL8 = 0x00000000; PINSEL9 = 0x00000000; PINSEL10 = 0x00000000; SCS |= 0x01; IODIR0 = 0x00000000; IODIR1 = 0x20000000; IOSET0 = 0x00000000; IOSET1 = 0x00000000; FIO0DIR = 0x0000000f; FIO1DIR = 0x20000000; FIO2DIR = 0x0000000f; FIO3DIR = 0x00000000; FIO4DIR = 0x00000000; FIO0SET = 0x00000000; FIO1SET = 0x00000000; FIO2SET = 0x00000000; FIO3SET = 0x00000000; FIO4SET = 0x00000000; return; };
  17. Вот собственно код #include "LPC23XX.h" int sinus[64]={512,562,613,662,710,756,800,840,878, 911,941,967,988,1004,1015,1022,1023,1019,1010,996,978, 954,927,895,859,820,778,733,686,638,588,537,486,435,385, 337,290,245,203,164,128,96,69,45,27,13,4,0,1,8,19,35,56, 82,112,145,183,223,267,313,361,410,461,511}; const int array_size=sizeof(sinus)/sizeof(int); void GPIOResetInit(void); unsigned long long phase=0; unsigned char index=0; unsigned char flag0=1; unsigned int amplituda=1024; unsigned int dac=0; unsigned int tmp2=0; /* Timer0 IRQ: Executed periodically */ __irq void Timer0ISR (void) { DACR=dac; flag0=1; T0IR = 0x01; //sbros flaga prerivaniya.Avtomaticheski ne rabotaet VICVectAddr = 0; /* Acknowledge Interrupt */ return; } /****************************************************************************** ** Main Function main() ******************************************************************************/ int main (void) { GPIOResetInit(); VICIntSelect = 0x00; // all interrupts are IRQs VICIntEnable = 0x10; // Channel#4 is the Timer0 VICVectAddr4=(unsigned)Timer0ISR; FIO0DIR=1<<26; PINSEL1 =1<<21; //vkluchaem DAC //timer initialization T0IR=0; T0CTCR=0; T0TC=0; //shchetniy register T0PC=0; T0PR=0; T0MR0=1200; // register sravnenia tipa OCR T0MCR=3; T0TCR=1; while(1) { if(flag0==1) { tmp2=sinus[phase>>58]; dac=(tmp2*amplituda)/1024; dac=dac<<6; phase+=1431655765; flag0=0; } } return 0; } void GPIOResetInit( void ) { /* Reset all GPIO pins to default: primary function */ PINSEL0 = 0x00000000; PINSEL1 = 0x00000000; PINSEL2 = 0x00000000; PINSEL3 = 0x00000000; PINSEL4 = 0x00000000; PINSEL5 = 0x00000000; PINSEL6 = 0x00000000; PINSEL7 = 0x00000000; PINSEL8 = 0x00000000; PINSEL9 = 0x00000000; PINSEL10 = 0x00000000; SCS |= 0x01; IODIR0 = 0x00000000; IODIR1 = 0x20000000; IOSET0 = 0x00000000; IOSET1 = 0x00000000; FIO0DIR = 0x0000000f; FIO1DIR = 0x20000000; FIO2DIR = 0x0000000f; FIO3DIR = 0x00000000; FIO4DIR = 0x00000000; FIO0SET = 0x00000000; FIO1SET = 0x00000000; FIO2SET = 0x00000000; FIO3SET = 0x00000000; FIO4SET = 0x00000000; return; };
  18. Если я правильно понял, то проблема в том что прерывание выполняется слишком долго?
  19. Реализация DDS на LPC2388 (ARM7)

    Мое приветствие вам всем! Нужно мне вот в учебных целях реализовать генератор синуса,пилы,треугольника на LPC2388 (ARM7). Пишу на С в Keil. На борту LPC2388 есть ЦАП с временем установления сигнала 1мкс. Таким образом, максимальная частота изменения выходного напряжения с ЦАП составляет 1 МГц ? Микроконтроллер работает на частоте 72 МГц. Таймер0 работает на частоте 72 МГц. Таблица синуса состоит из 64 значений. Аккумулятор фазы - 64 бита - unsigned long long Моя реализация DDS не позволяет поднять частоту выходного синуса выше 10кГц. Мне кажется это слишком мало!!! Использую IRQ прерывание от таймера, а оно еще забирает 25 тактов. Сдвиг фазы вычисляю в main(), а в прерывании от таймера только загружаю в регистр ЦАПа значение. Скажите пожалуйста, нормально ли то что граничная частота синуса у меня 10кГц ? Возможно ли поднять до больших значений, не переходя на АСМ. Посмотрел проекты в интернете, так там на Атмеге получают частоты в 45 кГц!
  20. Товарищи электроники! Партия поставила задачу: Есть данный чип DP83849ID. Нужно определять когда идет активность. У самого чипа есть выводы LED_ACT и светодиоды на них прекрасно мигают. НО! Необходимо определять активность из считывания внутренних регистров используя выводы MDC и MDIO. Даташит я перечитал раз 5 уже. Я в нем не вижу регистра/бита, с помощью которого я мог узнать о активности передачи данных. Документация на чип: http://radio-hobby.org/modules/datasheets/1560-dp83849id Подскажите, если кто знает способ определения активности?
  21. Правда ненадежно это. Уж больно дорожки тонкие - если выдирать схему из готовой клавиатуры - на соплях все держится
  22. Так и сделал Клава обошлась в 50 грн. До этого хотел сделать на Атмеге с obdev. Но тут начались проблемы с программатором - сдох он.
×
×
  • Создать...