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

al_sv

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

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

  • Посещение

Репутация

0 Обычный
  1. Да, включено, перед указанными настройками выполняю настройку тактирования всей нужной периферии, в т.ч. SPI2: void RCC_Configuration(void) { RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOA , ENABLE); RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOB , ENABLE); RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOC , ENABLE); RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOD , ENABLE); RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOE , ENABLE); RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_AF , ENABLE); /* Enable PWR and BKP clocks - from RTC module*/ RCC_APB1PeriphClock_Enable(RCC_APB1PERIPH_PWR | RCC_APB1PERIPH_BKP, ENABLE); /* Enable USART2 APB clock */ RCC_APB2PeriphClock_Enable(RCC_APB1PERIPH_USART2, ENABLE); RCC_APB1PeriphClock_Enable(RCC_APB1PERIPH_CAN1, ENABLE); RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_SPI1, ENABLE); RCC_APB2PeriphClock_Enable(RCC_APB1PERIPH_SPI2, ENABLE); RCC_APB1PeriphClock_Enable(RCC_APB1PERIPH_TIMER2, ENABLE); ///From USB module??? } Кроме того, если пытаться настроить SPI0 (или SPI1 по коду) аналогичным образом, все настройки производятся!
  2. Пытаюсь запустить обмен по SPI1 (если считать от 0, как в документации на MCU) с Flash (25-й). Вот мой код: Сначала настройка GPIO: #define FLASH_SCK_Pin GPIO_PIN_3 #define FLASH_SCK_GPIO_Port GPIOD #define FLASH_CS_Pin GPIO_PIN_4 #define FLASH_CS_GPIO_Port GPIOD #define FLASH_MISO_Pin GPIO_PIN_14 #define FLASH_MISO_GPIO_Port GPIOB #define FLASH_MOSI_Pin GPIO_PIN_15 #define FLASH_MOSI_GPIO_Port GPIOB #define FLASH_MOSI_MISO_GPIO_Port GPIOB GPIO_InitPara GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = FLASH_MISO_Pin |FLASH_MOSI_Pin; GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ; GPIO_InitStructure.GPIO_Mode = GPIO_MODE_AF_PP; GPIO_Init(FLASH_MOSI_MISO_GPIO_Port, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = FLASH_SCK_Pin; GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ; GPIO_InitStructure.GPIO_Mode = GPIO_MODE_AF_PP; GPIO_Init(FLASH_SCK_GPIO_Port, &GPIO_InitStructure); uint32_t alt_func_spi2_sck = 0x00000001<<23; //SPI2_SCK remapped to PD3 GPIO_PinRemapConfig2(PCFR5, alt_func_spi2_sck, ENABLE); //!!!! GPIO_InitStructure.GPIO_Pin = FLASH_CS_Pin; GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ; GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT_PP; GPIO_Init(FLASH_CS_GPIO_Port, &GPIO_InitStructure); SPI_FLASH_CS_HIGH(); затем настройка SPI: SPI_InitPara SPI_InitStructure; SPI_InitStructure.SPI_TransType = SPI_TRANSTYPE_FULLDUPLEX; SPI_InitStructure.SPI_Mode = SPI_MODE_MASTER; SPI_InitStructure.SPI_FrameFormat = SPI_FRAMEFORMAT_8BIT; SPI_InitStructure.SPI_SCKPL = SPI_SCKPL_LOW; SPI_InitStructure.SPI_SCKPH = SPI_SCKPH_1EDGE; SPI_InitStructure.SPI_SWNSSEN = SPI_SWNSS_SOFT; SPI_InitStructure.SPI_PSC = SPI_PSC_32; SPI_InitStructure.SPI_FirstBit = SPI_FIRSTBIT_MSB; SPI_InitStructure.SPI_CRCPOL = 7; QSPI_IO34DRV(SPI2,DISABLE); SPI_Init(SPI2, &SPI_InitStructure); SPI_Enable(SPI2, ENABLE); (здесь SPI2 - потому что нумерация SPI в примерах GD ведется с 1) При просмотре SFR в дебаггере вижу, что функции SPI_Init и SPI_Enable не приводят к установке нужных битов в регистрах МК. В том числе бита SPIEN. В чем проблема, никто не сталкивался?
  3. Пытаюсь запустить обмен по SPI1 (если считать от 0, как в документации на MCU) с Flash (25-й). Вот мой код: Сначала настройка GPIO: #define FLASH_SCK_Pin GPIO_PIN_3 #define FLASH_SCK_GPIO_Port GPIOD #define FLASH_CS_Pin GPIO_PIN_4 #define FLASH_CS_GPIO_Port GPIOD #define FLASH_MISO_Pin GPIO_PIN_14 #define FLASH_MISO_GPIO_Port GPIOB #define FLASH_MOSI_Pin GPIO_PIN_15 #define FLASH_MOSI_GPIO_Port GPIOB #define FLASH_MOSI_MISO_GPIO_Port GPIOB GPIO_InitPara GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = FLASH_MISO_Pin |FLASH_MOSI_Pin; GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ; GPIO_InitStructure.GPIO_Mode = GPIO_MODE_AF_PP; GPIO_Init(FLASH_MOSI_MISO_GPIO_Port, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = FLASH_SCK_Pin; GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ; GPIO_InitStructure.GPIO_Mode = GPIO_MODE_AF_PP; GPIO_Init(FLASH_SCK_GPIO_Port, &GPIO_InitStructure); uint32_t alt_func_spi2_sck = 0x00000001<<23; //SPI2_SCK remapped to PD3 GPIO_PinRemapConfig2(PCFR5, alt_func_spi2_sck, ENABLE); //!!!! GPIO_InitStructure.GPIO_Pin = FLASH_CS_Pin; GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ; GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT_PP; GPIO_Init(FLASH_CS_GPIO_Port, &GPIO_InitStructure); SPI_FLASH_CS_HIGH(); затем настройка SPI: SPI_InitPara SPI_InitStructure; SPI_InitStructure.SPI_TransType = SPI_TRANSTYPE_FULLDUPLEX; SPI_InitStructure.SPI_Mode = SPI_MODE_MASTER; SPI_InitStructure.SPI_FrameFormat = SPI_FRAMEFORMAT_8BIT; SPI_InitStructure.SPI_SCKPL = SPI_SCKPL_LOW; SPI_InitStructure.SPI_SCKPH = SPI_SCKPH_1EDGE; SPI_InitStructure.SPI_SWNSSEN = SPI_SWNSS_SOFT; SPI_InitStructure.SPI_PSC = SPI_PSC_32; SPI_InitStructure.SPI_FirstBit = SPI_FIRSTBIT_MSB; SPI_InitStructure.SPI_CRCPOL = 7; QSPI_IO34DRV(SPI2,DISABLE); SPI_Init(SPI2, &SPI_InitStructure); SPI_Enable(SPI2, ENABLE); (здесь SPI2 - потому что нумерация SPI в примерах GD ведется с 1) При просмотре SFR в дебаггере вижу, что функции SPI_Init и SPI_Enable не приводят к установке нужных битов в регистрах МК. В том числе бита SPIEN. В чем проблема, никто не сталкивался?
  4. Как тут писали, возможно объединить платы в одном проекте, если использовать команду layout : load-> merge. Это получается, но не всегда корректно. У меня бывают случаи, когда некоторые footprint'ы "перескакивают" во слоя bottom на top. В "объединенном" проекте эти посадосные места имеют те же значения X,Y и угла поворота, но на верхнем слое вместо нижнего. Никто не решал такую проблему?
  5. LPC1768 + ARM-JTAG-EW + IAR EW 6.1

    В конце концов, забив все 64 к ОЗУ при помощи OLIMEXа, купили MT-Линк, и было счастье - возможность отлаживаться во флэше... Не сочтите за рекламу, в этом новом девайсе тоже есть кривизна
  6. Извините, а удалось решить проблему с АЦП? Наблюдаю похожую ситуацию на своем устройстве. Настроил ацп на последовательное (не burst) считывание значений по 6 каналам (0-5), по прерываниям. Наблюдаю следующее: если на аналоговое питание и референс подано напряжение питания (такое же как на ядро и периферию, через фильтры, в моем случае 3.35 в) имею 0XFFF для каналов, не подключенных ни к чему, а также для подтянутых к питанию через 10 kOhm. Если меняю подтяжку на 1 kOhm, наблюдаю "плавающее" измеренное значение - от 0 до 0XFFF. Значение, составляющее половину напряжения питания (использовал 2 резистора по 10 kOhm чтобы поделить), также показывается как 0XFFF. Если уменьшаю reference до 3 вольт - получаю 0 на всех каналах - независимо от их входных цепей. Видимо, все таки дело не в программаторе - я использую JTAG и использую ОЗУ для отладки программы
  7. LPC1768 + ARM-JTAG-EW + IAR EW 6.1

    Прошивку брал на том же оф.сайте, нового там пока ничего нового нет. Заработать оно заработало, но кривовато - отлаживать можно только из RAM (но это, вроде бы, нормально для СТАНДАРТНОГО IAR JLink), каждый раз после загрузки возникает ошибка 1062 (жму "пропустить"), после этого можно как-то работать. Хотелось бы побольше комментариев. Может, кто нибудь ткнет носом в какую-то инфу по способам отладки под JLINK IAR?
  8. LPC1768 + ARM-JTAG-EW + IAR EW 6.1

    Коллеги, не удалось ли кому-нибудь подружить IAR EW 6.1 с отладчиком от OLIMEX ? Да, понимаю, написано, что этот отладчик работает с версией 5.2, но там не поддерживается (вроде бы, поправьте если ошибаюсь) LPC1768. Подскажите, пожалуйста, как лучше состыковать эти три сущности? С этим разобрался - просто предлагалось обновить ПО в самом JTAGе.
  9. предлагают не более 40-ка на испытательный срок, затем 50 (видимо, топик-стартеру было стыдно озвучивать эти цифры, поэтому делаю сие за него)
  10. По поводу Ионистора для часов SIM300 - используем 1Ф от Панасоника, заряжается около 6 часов, держит время до 3 суток. Нас устраивает. Цена оптом - 60 рублей. Не на много больше, чем батарейка+держатель. К тому же экономия места на плате по сравнению с батарейкой. Из минусов - необходимость создания отдельных RTC внутри МК и периодической синхронизации с часами в SIM300, поскольку во время сессии с удаленным терминалом время не считать
  11. Проверил то же самое с DTG-450 - все прекрасно работает. Похоже, проблема в модеме. Никто не знает, где есть новые прошивки для сего устройства? Как перепрошить этот девайс?
  12. Использую DTU-450 в режиме TCP-IP (при настройке подается команда AT+CRM=130) в составе устройства-клиента для передачи данных НА СЕРВЕР. После 3-го килобайта предача данных прекращается. Это не переполнение внутреннего буфера модема, т.к. передача идет по Y-Modem с подтверждением каждого килобайта. Что это может быть - недоработки модема или проблемы сети (использую тариф Турбо от скайлинк)?
×
×
  • Создать...