Jump to content

    

Roma_ne

Участник
  • Content Count

    16
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Roma_ne

  • Rank
    Участник
  • Birthday 08/10/1980

Контакты

  • Сайт
    Array
  • ICQ
    Array

Recent Profile Visitors

834 profile views
  1. Прошу помощи в определении типа элемента Пельтье: Физические размеры: 30*15*3.5мм На случай, если картинка неотображается надпись на элементе Пельтье: 81779 TZ092517-02
  2. На всякий случай бросил вчера всю плату в ацетон. Не помогло. Поведение тоже самое - моргает переменно (то зарегистрирован в сети, то не зарегистрирован). При этом всегда сообщает, что SIM карта not inserted.
  3. Добрый день, всем! Случилась беда: начал работать с SIM868, и с каждым днем мне все хуже и хуже. Вобщем проблема такая. При включении устройства лампочка Netlight моргает с периодом 800мс (не зарегистрирован в сети), спустя некоторое время она уже моргает стабильно с периодом 3 сек (зарегистрирован в сети), правда стоит оговориться, что нет нет да и моргает через 800мс. При этом на запрос: AT+CPIN? стабильно выдает: SIM not inserted. Рядом лежит отладка на SIM800, так там без сим-карты стабильно моргает с периодом 800мс. А на SIM868 какая то черезполосица. Хотелось бы послушать мнение специалистов, которые уже много времени повозились с этим модулем.
  4. Не то чтобы я пытался атаковать с критикой, и конечно я не сомневаюсь в работоспособности вашего кода. И все таки у меня это не работает: мой пример кода приведен выше: может быть я не вижу чего-то очевидного. Идея работы кода такая: сначала я прогружаю кипарис приведенным выше кодом, далее через EP1 я конфигурирую ПЛИС (работает на ура), далее я хочу передать данные в ПЛИС и вот тут затык. Для примера сделаны все флаги фиксироваными и обозначающими EP2Empty, так вот флаги у меня находятся в разных положениях и не перещелкиваются при передаче данных через Control Center.
  5. Извините за задержку с ответом: только сегодня смог попробовать ваш вариант решения проблемы. Сразу же скажу, что ваш текст не лишен недостатков: PINFLAGSCD = 0xCC; при этом PORTACFG не проинициализирован, а следовательно FlagD - это обычный порт ввода-вывода. Далее при сбросе FIFO: SYNCDELAY; FIFORESET = 0x80; SYNCDELAY; FIFORESET = 0x02; SYNCDELAY; FIFORESET = 0x04; SYNCDELAY; FIFORESET = 0x06; SYNCDELAY; FIFORESET = 0x08; SYNCDELAY; FIFORESET = 0x00; Что касается сброса то TRM рекомендует сбрасывать по другому, например так: FIFORESET = 0x82; Теперь, что касается вашего примера: он у меня не работает. Конфигурация устройства у меня немного другая: Источник IFCLK у меня внешний: void TD_Init(void) // Called once at startup { // ports initialization PORTACFG = bmFLAGD; SYNCDELAY; OEC = 0xFF; //this is test port, don't connected anything SYNCDELAY; // IOC = 0x00; SYNCDELAY; OEA = 0x01; //PA.0 = PROG SYNCDELAY; IOA = 0x01; SYNCDELAY; OEE = 0x91; //PE.0 - FPGA Reset, PE.4 - DOUT, PE.7 - CCLK SYNCDELAY; IOE = 0x01; SYNCDELAY; //core initialization CPUCS = bmCLKSPD1 | bmCLKOE; //Setting 48MHz, CLKOE SYNCDELAY; IFCONFIG = bmIFCFG1 | bmIFCFG0; // IFCFG = 11 - Slave FIFO Interface (external master) SYNCDELAY; REVCTL = bmNOAUTOARM | bmSKIPCOMMIT; SYNCDELAY; //PINFLAGS initialization PINFLAGSAB = 0x88; SYNCDELAY; PINFLAGSCD = 0x88; SYNCDELAY; FIFOPINPOLAR = 0x00; //standard pin polarity SYNCDELAY; //Endpoints config //EP1 - standard configuration EP2CFG = 0xA2; // EP2OUT SYNCDELAY; EP4CFG = 0x00; //EP4 - disabled SYNCDELAY; EP6CFG = 0x00; //EP6 - disabled SYNCDELAY; EP8CFG = 0x00; //EP8 - disabled SYNCDELAY; //FIFO reset FIFORESET = 0x80; SYNCDELAY; FIFORESET = 0x82; SYNCDELAY; FIFORESET = 0x84; SYNCDELAY; FIFORESET = 0x86; SYNCDELAY; FIFORESET = 0x88; SYNCDELAY; FIFORESET = 0x00; SYNCDELAY; // since the defaults are double buffered we must write dummy byte counts twice OUTPKTEND = 0x82; // arm EP2OUT by writing byte count w/skip. SYNCDELAY; OUTPKTEND = 0x82; // arm EP2OUT by writing byte count w/skip. SYNCDELAY; EP2FIFOCFG = bmAUTOOUT | bmWORDWIDE; SYNCDELAY; // enable dual autopointer feature AUTOPTRSETUP |= 0x01; Rwuen = TRUE; // Enable remote-wakeup } Обратите внимание, что все флаги у меня находятся в одном состоянии = EP2EMPTY, при этом результат на флагах у меня разный: флаги A,C,D - установлены, а флаг B - сброшен. Есть ли какие-то идеи как этот код запустить.
  6. Добрый день, всем! Проблема следующая: делаю Slave FIFO IN - OUT. Мастером служит Xilinx Spartan-6. Для Slave FIFO - IN все работает замечательно: данные из ПЛИСа успешно доходят до компьютера, но вот со Slave FIFO - OUT какие то проблемы. Флаги не устанавливаются и не меняют своего значения при попытке отправить данные с компьютера. Такое ощущение, что неправильно реализована сама программа кипариса. Есть ли у кого живой пример Slave FIFO - OUT для этого контроллера? Примеры с сайта кипариса уж очень сомнительные, в TRM последовательность инициализации прописана убого. Прошу помощи
  7. SPI и ATmega64

    А чего -. Дополнение: Проблема чисто программная. Сижу и с ИАРом и с АВРСтудией. Симулятором наблюдаю следующее: при инициализации SPI при выполнении строки: SPSR = 0x00 снимается бит MSTR в SPCR. При этом SPSRстановится равным 0x80. И это мне вообще непонятно. Все, Спасибо Юрию. Действительно SS настроен на вход. Как говорится слона то я и не заметил
  8. SPI и ATmega64

    Здравствуйте, все! Появилась проблема при работе с SPI на меге64. И не то, чтобы я неопытный, и проектов понаделал кучу, но вошел в ступор и никак не могу понять в чем проблема. Mega в MasterMode. Инициализация: void spi_init(void) { SPCR = 0x5С; //setup SPI SPSR = 0x00; //setup SPI } Передача данных: char spi_sendbyte(char byte) { SPDR = byte; // Start transmission while(!(SPSR & (1<<SPIF))); // Wait for transmission complete return (SPDR); } Код проверен, использовался не раз. При вызове spi_sendbyte контроллер намертво залипает, при этом ножки его (SCK, MOSI) так и не дергаются. Помогите разобраться в проблеме.
  9. Ага, это под Delphi7 писано, сейчас поставил себе delphi2009 и тоже с ходу не запустилось, надо бы посидеть-покумекать и доделать, но пока руки не доходят. А ModuleLoader.dcu найти можно и прописать дополнительный путь в поиск библиотек.
  10. Получилось. Написал маленький проект для работы с cypress CY7C68013 полностью на делфи. За основу брал CyApi и как мог, как понял его перенес на Делфи. Писал только под мою задачу. Каждый желающий волен переделать мое творчество на свой лад. Основная информация содержится в USBDevice и USBLibrary. Осторожнее с самим тестовым проектом, на моей конфигурации сайпреса он работал замечательно, что будет с вашей прошивкой мне непредсказыемо. USBDev.zip
  11. Начал разбиратаься как это сделать для Делфи. Если честно уже устал. Кое-что получается. Получить Handle, аполучить дескриптор устройства с полным его описанием и все такое, что описано в ioctl.h Но вот до сих пор никак понять не могу как читать из сайпресса. Просто переписать хидеры не удается. Не понятно как реализовать чтение-запись. Может кто сталкивался с этой проблемой? Помогите.
  12. В том то и дело, что все это я делаю. И делаю правильно, но когда начинаю вытирать память, в какой-то момент цикл стирания памяти вылетает, потому как доходит до странного адреса 0x1c0, если разобрать программу дизассемблером, то по этому адресу лежит инициализация сегмента, в котором лежит бутлодырь. Сам же бутлодырь начинается с адреса 0х800. Вот если бы можно было бы инициализацию сегмента перенести в конец бутлодыря то все было бы просто супер
  13. Блин, я так и не увидел ответа. Может просто какой-нибудь специалист скажет, что просто невозможно линкеру сказать куда писать инициализацию секции. Идея бутлоадера заключается в следующем. Работать с устройством собираюсь по UART с дальнейшим использованием FT232. Заказчику отправляется программа, а далее в момент появления новой версии софта, новый софт должен прописываться из этой программы коммутации с устройством. При этом не подразумевается перезагрузка устройства, а использование FTDI вобще делает очень не юзабельным загрузку бутлодыря по ресету. Хочется, зарезервировать команду, которая будет запускать процесс перезаливки программы. Поскольку стратегия загрузчика выбрана таким образом, то не важно на чем отрабатывать процесс залавки, потому как стандартная область бутлодыря не используется. Задам вопрос снова. Можно ли указывать линкеру IAR место куда прописывать инициализацию нового сектора
  14. Друзья. Сомнения мучают меня. Хотя начну попорядку. Появилась задумка сделать bootloader под Мегу48. В качестве среды програмирования выбрал IAR. Особенность 48 в том, что у нее нет bootsection. Приходится все описывать вручную. Для начала определяем местоположение загрузчика для чего в линкере прописываем Все вроде бы в порядке и в выходном файле появляется в нужном месте содержание загрузчика. И все вроде бы хорошо. Загрузчиком начинаю стирать память контроллера, и вроде бы даже хорошо получается, но когда дохожу до определенного положения стирание прекращается и цикл стирания страниц памяти вылетает. Под пристальным взглядом дизассемблера выясняется, что напоролся на инициализацию секции MYSEGMENT. Загрузчик начинается с адреса 0x0800, а инициализация секции загрузчика с 0x01C0. Кстати на этом месте заканчивается основная программа. Могу ли я расположить код инициализации секции MYSEGMENT уже после самого bootloadera.