реклама на сайте
подробности

 
 
> работа UART процессора BF533
badik
сообщение Aug 6 2007, 04:36
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 29-11-06
Из: Екатеринбург
Пользователь №: 22 890



Начинаю осваивать BF-533 по примерам, программы на С, использую ADSP-BF533 EZ-Kits (27MHz).
Попробывал с простым примером из программ EZ-Kits - LED индикаторы, что то работает.
Далее пытаюсь сделать работу процессора BF533 с последовательным портом RS232.
Мне очень нужное дело. На входе GPS - раз в секунду выдаёт строку данных (GPS точно работает, со скоростью 9600).
Пока просто пытаюсь убедиться, что работает UART, идут его прерывания. Для этого
в прерывание UART изменение индикации LED индикаторов EZ-Kits (*pFlashA_PortB_Data), ноль имоций.
Возможно неправильная инц-я UART и т.д.
Навставлял где надо и ненадо (по другим примерам):
ssync();
idle();
Собственно их значение мне почти не понятно

Мой пример далее - если есть возможность у опытных разработчиков?

#ifndef __Talkthrough_DEFINED
#define __Talkthrough_DEFINED
#include <sys\exception.h>
#include <cdefBF533.h>
#include <ccblkfn.h>
#include <sysreg.h>
void Init_Config(void);
void Init_Interrupts(void);
void Init_Flags(void);
void Init_Flash(void);

// CLKIN frequency is 27MHz on the ADSP-BF533 EZ-Kits.
#define CLKIN 27

#define BAUDRATE 9600
#define NEWLIGHT 200

// Neiaieuiua eiinoaiou //
// Aa?ana aey Port B a Flash A
#define pFlashA_PortB_Dir (volatile unsigned char *)0x20270007
#define pFlashA_PortB_Data (volatile unsigned char *)0x20270005

extern char aByte;
extern short FlagLight;
extern long int IntrId;

EX_INTERRUPT_HANDLER(UART_RX_ISR);
#endif

//--------------------------------------------------------------------------//

#include "Talkthrough.h"
#include "sysreg.h"
#include "ccblkfn.h"
#include <defBF533.h>
#include <string.h>
char aByte;
short FlagLight=0;
long int IntrId=0;

///////////////////////////////////////////////////////////////
//CLKIN is the input clock.The ADSP-BF533 EZ-Kit's CLKIN is 27MHz
//This function will check what the system clock is based
//on the MSEL, DF, and SSEL values in the PLL_CTL and PLL_DIV registers.
///////////////////////////////////////////////////////////////
int GetSCLK()
{
unsigned short tempPLLCTL, tempPLLDIV;
unsigned short MSEL, SSEL, DF, VCO, SCLK;
unsigned short clkin = CLKIN;

tempPLLCTL = *pPLL_CTL;
tempPLLDIV = *pPLL_DIV;
//get MSEL, SSEL, DF
MSEL = ((tempPLLCTL & 0x7E00) >> 9);
SSEL = tempPLLDIV & 0x000f;
DF = tempPLLCTL & 0x0001;
if(DF == 1) clkin = clkin/2;
VCO = MSEL * clkin;
return ( VCO * 1000000 ) / SSEL;
}

void main(void)
{
sysreg_write(reg_SYSCFG, 0x32);
Init_Config();
Init_Flash();
Init_Interrupts();
while(1) {};
}

//--------------------------------------------------------------------------//

#include "Talkthrough.h"

void Init_Config(void)
{
unsigned long divisor=0;

*pPLL_CTL = 0x0200; // VCO = 27MHz
ssync();
idle();

*pUART_LCR = 0x83;
ssync();
divisor = GetSCLK() / ( 16 * BAUDRATE );
*pUART_DLL = divisor;
ssync();
*pUART_DLH = divisor>>8;
ssync();
*pUART_LCR = 0x03;
ssync();
*pUART_GCTL = 0x01;
ssync();
}

void Init_Interrupts(void)
{
*pUART_IER = 0x0007;
*pUART_IIR = 0x0005;
ssync();
*pSIC_IAR0 = 0xffffffff;
*pSIC_IAR1 = 0xf3ffffff;
*pSIC_IAR2 = 0xffff5fff;
ssync();
register_handler(ik_ivg10, UART_RX_ISR);
*pSIC_IMASK = 0x00084000;
ssync();
}

void Init_Flash(void)
{
*pEBIU_AMBCTL0 = 0x7bb07bb0;
*pEBIU_AMBCTL1 = 0x7bb07bb0;
*pEBIU_AMGCTL = 0x000f;
*pFlashA_PortB_Dir = 0x3f;
*pFlashA_PortB_Data = 0x31;
}
//--------------------------------------------------------------------------//

#include "Talkthrough.h"
EX_INTERRUPT_HANDLER(UART_RX_ISR)
{
aByte = *pUART_RBR;
ssync();
if(FlagLight)
{
FlagLight = 0;
if(IntrId > NEWLIGHT)
{
IntrId = 0;
*pFlashA_PortB_Data = 0x10;
}
else IntrId++;
}
else
{
FlagLight = 1;
if(IntrId > NEWLIGHT)
{
IntrId = 0;
*pFlashA_PortB_Data = 0x21;
}
else IntrId++;
}
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- badik   работа UART процессора BF533   Aug 6 2007, 04:36
- - bychkov_vladimir   Цитата(badik @ Aug 6 2007, 07:36) Начинаю...   Aug 6 2007, 09:25
|- - badik   Цитата(bychkov_vladimir @ Aug 6 2007, 12...   Aug 6 2007, 10:25
- - bychkov_vladimir   предлагаю попробывать Вам работу с прерыванием и ч...   Aug 6 2007, 12:20
|- - andrews   Цитата(bychkov_vladimir @ Aug 6 2007, 16...   Aug 7 2007, 08:46
|- - badik   Благодарю за помощь. Я видел Ваши сообщения по RS2...   Aug 7 2007, 11:18
- - bychkov_vladimir   Давайте по порядку кабель нужен не нуль модемный ...   Aug 7 2007, 13:31
|- - badik   Ещё раз Благодарю за помощь. Ценой усилий целого д...   Aug 8 2007, 13:50
- - bychkov_vladimir   это особенность платы . просто там так распаяна ви...   Aug 8 2007, 14:40
- - andrews   Я при отладке моего проекта спаял кабель самостоят...   Aug 9 2007, 09:17
|- - badik   Огромное Вам спасибо! Пообщался успешно с Ter...   Aug 18 2007, 11:51
- - andrews   Что касается статей цикла, то в КиТ уже опубликова...   Aug 19 2007, 14:02
|- - badik   По поводу курсов Blackfin-ов: в Питере университет...   Aug 21 2007, 08:15
- - bychkov_vladimir   давайте теперь попробую помочь Вам в Вашей работе ...   Aug 24 2007, 17:39
- - badik   Gps приемник встраиваемый (это просто чип). Мой Gp...   Aug 28 2007, 12:46
- - bychkov_vladimir   Цитата(badik @ Aug 28 2007, 15:46) Gps пр...   Sep 12 2007, 09:41
- - badik   Благодарю за помощь. Всётаки мой UART ADSP-BF533 E...   Sep 14 2007, 09:11


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 11:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.0136 секунд с 7
ELECTRONIX ©2004-2016