Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » ТВ выход на bascom avr


ТВ выход на bascom avr

Сообщений 391 страница 410 из 410

391

Ev3658 написал(а):

Крутая штука, а мне всё никак А1 не привезут

Перед этим делом, надо вначале произвести тестирование памяти, есть подозрения, что она не сможет хорошо работать при разогнанном МК.

0

392

Разгонять за 50мгц нельзя, 45 оказалось вполне годным, да и 44 хватает.
Используйте мои наработки, там DMA не постоянно в работе.
Если DMA будет в работе, то между отсылкой байтом мало тактов на выполнение программы.
Заметил её то, что после запуска DMA необходимо несколько NOP, иначе запуск не стабильный.

0

393

Ну вот, уже другой темой попахивает  :crazy:
http://s1.uploads.ru/t/KmD82.jpg

+1

394

Выглядит конечно красиво.
А как ты подключал выход на RGB? Понятно, что всё в одну точку (все цвета), но через какой номинал резисторов и ставил ли делитель?

0

395

RDW написал(а):

... через какой номинал резисторов и ставил ли делитель?

75 Ом поставил на всякий случай. Цвет на выбор, на фото сразу три цвета замкнул на разъёме.
Вообще не критично как-то оказалось, лишь бы был сигнал.

0

396

И так, добрался только до теста памяти, сделал простой по маске:

Код:
$regfile = "xm128a1def.dat"
$hwstack = 64
$swstack = 64
$framesize = 64
$crystal = 62000000                                         '32000000
$xramsize = &H800000

$lib "xmega.lib"
$external _xmegafix_clear
$external _xmegafix_rol_r1014

Const Spd = _xtal / 2000000
Config Osc = Enabled , Pllosc = Enabled , Pllsource = Rc2mhz , Pllmul = Spd       '16 * 2 = 32
Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1
Config Clock = Soft , Rtc = 1khz_32khz_crystosc , Gosub = Sectic
Config Priority = Static , Vector = Application , Lo = Enabled

Config Porte.0 = Output
Config Xpin = Porte.0 , Invertio = Enabled                  ' èíâåðñèÿ ïîðòà
Led0 Alias Porte.0
Reset Led0

Config Xram = 3port , Sdbus = 4 , Sdcol = 10 , Sdcas = 3 , Sdrow = 12 , Refresh = 500 , Initdelay = 3200 , Modedelay = 2 , Rowcycledelay = 7 , Rowprechargedelay = 7 , Wrdelay = 1 , Esrdelay = 7 , Rowcoldelay = 7 , Modesel3 = Sdram , Adrsize3 = 8m , Baseadr3 = &H0000
Config Com7 = 19200 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8

Dim X(8388607) As Xram Byte , B As Byte
Dim Xadr As Dword
Dim V As Byte
Dim F As Byte
Dim Xdata As Byte
Xdata = 1
V = 0
Xadr = 0

Enable Interrupts

Open "COM7:" For Binary As #1                               ' J1 UART

Print #1 , "CPU Speed:" ; _xtal / 1000000 ; " MHz."
Print #1 , "XRAM Testing..."

Const Sadr = 1
Const Eadr = 8388607

For F = 0 To 7
   Print #1 , " Start write/filling memory mask: " ; Bin(xdata) ; "b"
   For Xadr = Sadr To Eadr
      X(xadr) = Xdata
   Next Xadr
   Print #1 , "  End write/filling memory."

   Print #1 , "  Start read memory mask: " ; Bin(xdata) ; "b"
   For Xadr = Sadr To Eadr
      B = X(xadr)
      If B <> Xdata Then V = 1
   Next Xadr
   Print #1 , "  End read memory."

   If V = 1 Then
      Print #1 , " Test FAIL."
   Else
      Print #1 , " Test PASSED."
   End If
   Rotate Xdata , Left
Next F

Print #1 , "XRAM Test End."

Do
   !nop
Loop
End

Sectic:
   Toggle Led0
Return

И какого было моё удивление:

CPU Speed: 62 MHz.
XRAM Testing...
Start write/filling memory mask: 00000001b
  End write/filling memory.
  Start read memory mask: 00000001b
  End read memory.
Test PASSED.
Start write/filling memory mask: 00000010b
  End write/filling memory.
  Start read memory mask: 00000010b
  End read memory.
Test PASSED.
Start write/filling memory mask: 00000100b
  End write/filling memory.
  Start read memory mask: 00000100b
  End read memory.
Test PASSED.
Start write/filling memory mask: 00001000b
  End write/filling memory.
  Start read memory mask: 00001000b
  End read memory.
Test PASSED.
Start write/filling memory mask: 00010000b
  End write/filling memory.
  Start read memory mask: 00010000b
  End read memory.
Test PASSED.
Start write/filling memory mask: 00100000b
  End write/filling memory.
  Start read memory mask: 00100000b
  End read memory.
Test PASSED.
Start write/filling memory mask: 01000000b
  End write/filling memory.
  Start read memory mask: 01000000b
  End read memory.
Test PASSED.
Start write/filling memory mask: 10000000b
  End write/filling memory.
  Start read memory mask: 10000000b
  End read memory.
Test PASSED.
XRAM Test End.

Когда МК разогнался легко до максимума и при этом всё работало и не грелось. А вот А4 уже на 48МГц греться начинало...теперь и не знаю что думать. :) Ещё на али и ебай видел платы с разгоном до 100МГц - это пока для меня загадка.
Тестируется 8МБ по времени весьма не быстро.

Ещё столкнулся с каким-то глюком/недоделкой, 8МБ - это #800000 или 8388608. Массив ДИМ у нас адресуется с 1 значит должно быть 8388608, но по существу выдается ошибка и можно указывать только 8388607!!! :tired: В общем теряется 1 байт. :rofl:

Отредактировано RDW (2017-07-20 20:47:56)

0

397

Да глюков с воспроизведением вообще нет, как и с записью.
Но вот попробуй в момент воспроизведения производить в случайные такты запись - вот тут при разгоне ловил глюки.
Питание если увеличить, меньше глюков будет.

0

398

Посмотри на код, там тебе и запись и чтение, глюков не вижу.
Я же память тестю и вообще А4 (как писал ранее), вообще пускаться не хотел свыше 48, а тут хоть код работает и память, да возможно DMA и глючить будет.

Отредактировано RDW (2017-07-20 23:50:57)

0

399

RDW написал(а):

Посмотри на код, там тебе и запись и чтение, глюков не вижу.
Я же память тестю и вообще А4 (как писал ранее), вообще пускаться не хотел свыше 48, а тут хоть код работает и память, да возможно DMA и глючить будет.

Отредактировано RDW (Вчера 23:50:57)

Не, я типа про это:

Код:
FOR T=1 TO МНОГО

FOR P=1 TO КОНЕЦ
L=D(P)
IF RND*10=5 THEN D(P)=1
IF D(P)>1 THEN PRINT "ERROR"
NEXT P

NEXT МНОГО

0

400

Ev3658 написал(а):

L=D(P)

А зачем? Он нигде не используется.

Ev3658 написал(а):

IF RND*10=5 THEN D(P)=1

Ошибка не компилируется из-за большого количества параметров и неправильного использования функции RND.
В общем поправил так:

Код:
Do
   For Xadr = Sadr To Eadr
      B = X(xadr)
      If Rnd(10) = 5 Then X(xadr) = 1
      If X(xadr) > 1 Then Print #1 , "ERROR: #" ; Hex(xadr)
   Next Xadr
   Print #1 , "Next."
Loop

Да, есть ошибка, причем ошибка есть даже на корректной частоте - делай выводы сам. :D
Если не догадаешься откуда ошибка - расскажу.

Отредактировано RDW (2017-07-21 10:22:26)

0

401

В общем всё работает без ошибок:

CPU Speed: 62 MHz.
XRAM Testing...
Test2...
Next.
Next.
Next.
Next.
Next.

0

402

Да я так, образно скинул алгоритм. Есть ещё одна проблема, контроллер у меня запускается каждый раз по разному, бывает запустится и строки дребезжат (ребут помогает). Причину не могу найти.

0

403

Я не телепат, непонятно, что ты там делаешь и что значит "строки дребезжат"?
Тебе привезли А1 и прикрутил к ней SDRAM?

А проблема в твоём алгоритме - не проблема. Просто по документации внутренняя RAM МК сбрасывает в нуль при включении (аппаратно), а тут внешняя память, при включение ячейки имеют рандомное состояние - это азы. Следовательно это надо учитывать, как правило все процессоры/компьютеры её очищают программно после включения.

0

404

Не, не привезли ещё A1, по этому проект продолжил, так как сроки уже дважды поджимали )))
На работе капец, уволили наконец-то амёбного коллегу, может возьмут второго и проще будет, а то вообще туплю, пол часа думал, почему условие IF Tm1=1 And Tm2=1 And Tm3=1 Then ....  - не срабатывает после такого подсчёта:

Код:
Incr Tm1
If Tm1 = 255 Then Incr Tm2
If Tm2 = 255 Then Incr Tm3

Порой оборачиваюсь назад и понимаю, что тупею чаще, чем умнею  %-)

0

405

Ev3658 написал(а):

Порой оборачиваюсь назад и понимаю, что тупею чаще, чем умнею

Это скорее всего отвлекающие внешние факторы и внутреннее давление сроков. ;)

0

406

https://www.youtube.com/watch?v=_J8_8tWNtas

+2

407

На 128 меге только текст и то удивительно, что 640х480, хотя по шрифту такого не скажешь.
У меня круче было ))))) - https://www.youtube.com/watch?v=XThpf852ldY

0

408

Народ часто путает режим с реальным разрешением. Причем реально не разобравшись, ибо 640х480 - это в реале со всеми системными задержками и теневыми областями, по существу 800х600.
А вот с ЛА3 я чот не понял, зачем там она.

0

409

Жесть, пришел контроллер Atxmega128A1.... и тут я сел... TQFP100, не 64 ноги, а настоящий многодрыг в таком-же по размерам корпуса!!!!
Придётся лутить очень осторожно, не надавливая сильно на утюг.
Есть успехи с выводом сигнала через DMA и EBI?

0

410

Ev3658 написал(а):

Есть успехи с выводом сигнала через DMA и EBI?

честно, я пока забил (сменились чуть приоритеты)

Ev3658 написал(а):

Жесть, пришел контроллер Atxmega128A1.... и тут я сел... TQFP100

Ну я тут паял FPGA 144 ноги - норм, правда не лутил, а готовую плату заказывал.

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » ТВ выход на bascom avr