AT91SAM7 старт с коленки
- romazan
- Потрогал лапой паяльник
- Сообщения: 335
- Зарегистрирован: Чт май 21, 2009 13:54:07
- Откуда: Москва
- Контактная информация:
Re: AT91SAM7 старт с коленки
Да розабрался, проверял не тот влаг, поэтому и глюки были. Флаг ENDRX и ENDTX
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM7 старт с коленки
Кстати, насчёт SPI на Атмеловских АРМах. Почитайте Еррату -- там довольно много ошибок, в том числе весьма неприятных. Возможно, проблемы возникают именно из-за этого.
-
inkHunter
- Грызет канифоль
- Сообщения: 287
- Зарегистрирован: Сб авг 21, 2010 20:44:27
- Откуда: Ростов
- Контактная информация:
Re: AT91SAM7 старт с коленки
Как запустить RTT без прерывания ?
делаю типа так но ниче (
int main (void)
{
AT91PS_PMC pPMC = AT91C_BASE_PMC;
pPMC->PMC_PCER =(1<<AT91C_ID_SYS);
*AT91C_RTTC_RTMR = 0x00008000 | AT91C_RTTC_RTTRST;
while (1)
{}
}
смотрю в дебаге на RTT_VR а он все время 0x00000000 ((((
делаю типа так но ниче (
int main (void)
{
AT91PS_PMC pPMC = AT91C_BASE_PMC;
pPMC->PMC_PCER =(1<<AT91C_ID_SYS);
*AT91C_RTTC_RTMR = 0x00008000 | AT91C_RTTC_RTTRST;
while (1)
{}
}
смотрю в дебаге на RTT_VR а он все время 0x00000000 ((((
- romazan
- Потрогал лапой паяльник
- Сообщения: 335
- Зарегистрирован: Чт май 21, 2009 13:54:07
- Откуда: Москва
- Контактная информация:
Re: AT91SAM7 старт с коленки
DEBUGер не все показывает в нормальном устройстве работать будет
-
inkHunter
- Грызет канифоль
- Сообщения: 287
- Зарегистрирован: Сб авг 21, 2010 20:44:27
- Откуда: Ростов
- Контактная информация:
Re: AT91SAM7 старт с коленки
romazan писал(а):DEBUGер не все показывает в нормальном устройстве работать будет
спасиб все работает
-
inkHunter
- Грызет канифоль
- Сообщения: 287
- Зарегистрирован: Сб авг 21, 2010 20:44:27
- Откуда: Ростов
- Контактная информация:
Re: AT91SAM7 старт с коленки
зацикливается функия main в keil (((
int main (void)
{
*AT91C_PMC_PCER=(1 << AT91C_ID_PIOA)|(1 << AT91C_ID_US0)|(1 << AT91C_ID_US1)|(1<<AT91C_ID_SYS);
printf ("%i\n\r",i);
i++;
if (i==10)
{i=0;}
return 0;
}
смотрю и на дебаге и в терминале
а получаеться типа так :
int main (void)
{
*AT91C_PMC_PCER=(1 << AT91C_ID_PIOA)|(1 << AT91C_ID_US0)|(1 << AT91C_ID_US1)|(1<<AT91C_ID_SYS);
while (1)
{
printf ("%i\n\r",i);
i++;
if (i==10)
{i=0;}
}
return 0;
}
с мейна не выходет ((( ???
int main (void)
{
*AT91C_PMC_PCER=(1 << AT91C_ID_PIOA)|(1 << AT91C_ID_US0)|(1 << AT91C_ID_US1)|(1<<AT91C_ID_SYS);
printf ("%i\n\r",i);
i++;
if (i==10)
{i=0;}
return 0;
}
смотрю и на дебаге и в терминале
а получаеться типа так :
int main (void)
{
*AT91C_PMC_PCER=(1 << AT91C_ID_PIOA)|(1 << AT91C_ID_US0)|(1 << AT91C_ID_US1)|(1<<AT91C_ID_SYS);
while (1)
{
printf ("%i\n\r",i);
i++;
if (i==10)
{i=0;}
}
return 0;
}
с мейна не выходет ((( ???
- romazan
- Потрогал лапой паяльник
- Сообщения: 335
- Зарегистрирован: Чт май 21, 2009 13:54:07
- Откуда: Москва
- Контактная информация:
Re: AT91SAM7 старт с коленки
А он с мейна и не выйдет
Заново программа начнёт работу. Процессор работает все время и не может ничего не делать
-
inkHunter
- Грызет канифоль
- Сообщения: 287
- Зарегистрирован: Сб авг 21, 2010 20:44:27
- Откуда: Ростов
- Контактная информация:
Re: AT91SAM7 старт с коленки
Кто работал с USB CDC AT91SAM7 ?
Передать получаеться а вот прийнять нет ((((
Передать получаеться а вот прийнять нет ((((
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM7 старт с коленки
Поспрашивайте на http://electronix.ru/forum, там намного больше народу, работающего с АРМами...
Re: AT91SAM7 старт с коленки
Ухх.. все SAM7 осваиваете ?
Есть вещи посвежее, поприятнее, поинтереснее. а то и дешевле.
Есть вещи посвежее, поприятнее, поинтереснее. а то и дешевле.
-
inkHunter
- Грызет канифоль
- Сообщения: 287
- Зарегистрирован: Сб авг 21, 2010 20:44:27
- Откуда: Ростов
- Контактная информация:
Re: AT91SAM7 старт с коленки
Satyr писал(а):Ухх.. все SAM7 осваиваете ?
Есть вещи посвежее, поприятнее, поинтереснее. а то и дешевле.
угу, это типа STM32 ?
Re: AT91SAM7 старт с коленки
Victor Gordienko писал(а):Satyr писал(а):Ухх.. все SAM7 осваиваете ?
Есть вещи посвежее, поприятнее, поинтереснее. а то и дешевле.
угу, это типа STM32 ?
Да, типа STM32Fxxx и LPC1xxxx.
Порой еще LM3Sxxxx интересны -))
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM7 старт с коленки
Однако, если в будущем интерес представляют Cortex-A, то лучше изучать SAM7, ведь все перечисленные относятся к Cortex-M и не имеют родной системы команд АРМ вообще, а заодно кардинально отличаются системной архитектурой (режимы процессора, обработка прерываний и т.п.).
Re: AT91SAM7 старт с коленки
SII - Доброго времени. Хотелось бы узнать, где вы эту ерату нашли, насчет атмеловских ARM-ов.
У меня щас какой-то баг - SPI вообще не работает - даже не инициализируется, поэтому решил узнать.
Заранее спасибо!
Собственно ткнул осциллографом по ножкам микроконтроллера (MOSI, MISO, SPCK and NPCS1 (у меня)) - нифига - везде молчание...
У меня щас какой-то баг - SPI вообще не работает - даже не инициализируется, поэтому решил узнать.
Заранее спасибо!
Код: Выделить всё
#include "AT91SAM7X256.h"
#include <usart/usart.h>
#include <spi/spi.h>
#include <sd/sd.h>
//******************************************************************************************************
// Начало программы
int main(void) {
unsigned short response;
int a;
//******************************************************************************************************
// Конфигурирование синхронизации МК
volatile AT91PS_CKGR pCKGR = AT91C_BASE_CKGR;
volatile AT91PS_PMC pPMC = AT91C_BASE_PMC;
pCKGR->CKGR_MOR = 0x00000701; // Включение основного генератора
while((pPMC->PMC_SR & (0x1<<0))==0); // Ожидание установки бита MOSCS
pCKGR->CKGR_PLLR = 0x00013F02;
while((pPMC->PMC_SR & (0x1<<2))==0);
pPMC->PMC_MCKR = 0x00000003; // Выбор источника синхронизации и установка предделителя
while((pPMC->PMC_SR & (0x1<<3))==0); // Ожидание установки бита MCKRDY
//******************************************************************************************************
// Разрешение синхронизации периферийных устройств
//******************************************************************************************************
// Конфигурирование PIO
volatile AT91PS_PIO pPIO = AT91C_BASE_PIOA;
pPIO->PIO_PPUDR = (1<<0) | (1<<1) | (1<<13) | (1<<16) | (1<<17) | (1<<18) | (1<<4); // Сброс pull-up резисторов
pPIO->PIO_PDR = (1<<0) | (1<<1) | (1<<13) | (1<<16) | (1<<17) | (1<<18); // Отключение линий PIOA
pPIO->PIO_ASR = (1<<0) | (1<<1) | (1<<13) | (1<<16) | (1<<17) | (1<<18); // Переферийная функция A
pPIO->PIO_PER = (1<<4);
pPIO->PIO_OER = (1<<4);
//******************************************************************************************************
pPMC->PMC_PCER = 0x54; // Разрешение синхронизации PIOA, USART0, SPI0
// Конфигурирование периферийных устройств
// USART0
AT91S_USART *usart = AT91C_BASE_US0; // USART0
USART_Configure(usart, USART_MODE_ASYNCHRONOUS, 38400, 18432000); // Конфигурирование USART0
USART_SetTransmitterEnabled(usart, 1); // Включение передатчика USART0
// SPI0
AT91S_SPI *spi = AT91C_BASE_SPI0; // SPI0
SPI_ConfigureNPCS(spi, 2, 0x00FF2F0A); // Настройка SPI
SPI_Configure(spi, 0x00010011); // Конфигурирование SPI0
//******************************************************************************************************
SPI_Enable(spi); // Включение SPI
//************************************Выдача команды CMD0***********************************************
SPI_Write(spi, 0x40); // Запись первого байта команды CMD0
response=SPI_Read(spi); // В ответе 0xFF
SPI_Write(spi, 0x00); // Запись второго байта команды CMD0
response=SPI_Read(spi); // В ответе 0xFF
SPI_Write(spi, 0x00); // Запись третьего байта команды CMD0
response=SPI_Read(spi); // В ответе 0xFF
SPI_Write(spi, 0x00); // Запись четвертого байта команды CMD0
response=SPI_Read(spi); // В ответе 0xFF
SPI_Write(spi, 0x00); // Запись пятого байта команды CMD0
response=SPI_Read(spi); // В ответе 0xFF
SPI_Write(spi, 0x95); // Запись шестого(последнего) байта команды CMD0
response=SPI_Read(spi); // В ответе 0xFF
while(response==255)
{
SPI_Write(spi, 0xFF); // Сдвиг "1" на линию данных
response=SPI_Read(spi); // Чтение данных
}
SPI_Disable(spi); // Отключение SPI
if (response==0x00)
{
while(1)
{
pPIO->PIO_SODR = (1<<4);
for(a=0; a<8000000; ++a)
{
;
}
pPIO->PIO_CODR = (1<<4);
for(a=0; a<8000000; ++a)
{
;
}
}
}
else if (response==0x01)
{
pPIO->PIO_SODR = (1<<4);
}
else
{
pPIO->PIO_CODR = (1<<4);
}
//******************************************************************************************************
while(1); // циклимся
}Собственно ткнул осциллографом по ножкам микроконтроллера (MOSI, MISO, SPCK and NPCS1 (у меня)) - нифига - везде молчание...
Не умеешь - не берись, но не взявшись не научишься...
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM7 старт с коленки
АТМЕЛ помещает Ерраты в конце даташитов на свои МК. У других производителей Еррата -- отдельный документ.
Re: AT91SAM7 старт с коленки
Вопрос ко всем: какие камушки на ядре Cortex M3 вы уважаете больше всего Atmel, STM, NXP, Freescale и почему? Какие проще в освоении и работе? Количество примеров? Характеристики и периферийные "навороты"?
Re: AT91SAM7 старт с коленки
ELcat писал(а):Вопрос ко всем: какие камушки на ядре Cortex M3 вы уважаете больше всего Atmel, STM, NXP, Freescale и почему? Какие проще в освоении и работе? Количество примеров? Характеристики и периферийные "навороты"?
Забудь про атмел.
Именно STM, NXP, Freescale и есть самые интересные.
У кого что интересней, зависит от применения.
Самые дешевые с USB - NXP. У них же самые навороченные по переферии.
У ST очень привлекательное все и чуть чуть подешевле, но некоторых вариантов как у NXP прост нет.
У фрискейла уже поставляются и готовятся к поставки сверхвыгодные чтуки на M4.
Re: AT91SAM7 старт с коленки
Документации, примеров достаточно на всё.
- Reloader
- Мучитель микросхем
- Сообщения: 451
- Зарегистрирован: Сб фев 26, 2011 14:38:42
- Откуда: Новочеркасск
Re: AT91SAM7 старт с коленки
Уважаемые Коты, не ругайтесь шибко, если не в тему, но!
Сам мощными контроллерами пока не занимался, но попалась мне на глаза сия весч :
http://starterkit.ru/html/index.php?name=shop&op=view&id=53
покорило - LINUX на борту. полноценный, блин...
Поймите правильно - не лучше ли будет начать отталкиваться от такой платы?
Судя по всему мощностей там достаточно, все, что нужно - на борту....
Сам мощными контроллерами пока не занимался, но попалась мне на глаза сия весч :
http://starterkit.ru/html/index.php?name=shop&op=view&id=53
покорило - LINUX на борту. полноценный, блин...
Поймите правильно - не лучше ли будет начать отталкиваться от такой платы?
Судя по всему мощностей там достаточно, все, что нужно - на борту....
Выпрямите спину и уберите левую руку от лица.
Мой Youtube канал
Мой Youtube канал
Re: AT91SAM7 старт с коленки
Мм... начать отталкиваться в каком направлении ?
И зачем такой промежуточный вариант, почему не NanoITX на атоме ? -))
И зачем такой промежуточный вариант, почему не NanoITX на атоме ? -))