Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: [lpc2000] Re: CS8900A question

2005-11-03 by rseku

What about TD?
when writing You put
TD_low
TD_high
Do You put nop between?
When I initialize CS8900 with code like this:
   cs8900a_write(ADD_PORT, PP_SelfCTL);
   cs8900a_write(DATA_PORT, POWER_ON_RESET);

   // Wait until chip-reset is done
   cs8900a_write(ADD_PORT, PP_SelfST);
   do{
   debug = cs8900a_read(DATA_PORT);
   }while((debug & INIT_DONE) == 0) ;
I'm expecting to get debug value of 11(010110)
where (010110) identifies PP_selfST register I'm querring.
Instead I get (011001) which is Test register ?!



robert
Michael Anburaj wrote:

> Robert,
> 
> I wrote the CS8900A driver myself & using it with
> LPC2106. LPC2106 p0.16 has issues, other than that at
> -O2 optimisation level & GCC I had to add 4 nops after
> bring the RD low.
> 
> like this,
> 
> rd_low
> nop
> nop
> nop
> nop
> read_data
> rd_high
> 
> Other than this pretty much everything is toggled at
> high speeds & it works great.
> 
> Cheers,
> -Mike.
> 
> --- rseku <rseku@...> wrote:
> 
> 
>>I think I have the same problem with CS8900A.
>>I use MAM=full, and cclk=60MHz
>>Could You please explain where this delay loop
>>should be added:
>>1. between bits toggling I0SET=IOW, and I0CLR=IOW
>>2. between cs8900_read() and cs8900_write()
>>functions
>>
>>robert
>>
>>Luciano Almeida wrote:
>>
>>
>>>I had the same problem.
>>>
>>>Solution: insert some delay cycles between the
>>
>>write and the read. (I put :
>>
>>>static int dummy = 1;
>>>#define delay()	{int
>>>
>>
> delayCtr=0;for(delayCtr=0;delayCtr<10;delayCtr++){dummy+=dummy;dummy+=delay;
> 
>>>}}
>>>) and didn't give a second tought about it. (yes,
>>
>>it's dumb, but it seems to
>>
>>>work. Yes, it can be improved).
>>>
>>>What can be? I think it has something to do about
>>
>>the pin toggle time (lower
>>
>>>than the time between the read and the write of de
>>
>>arm) or to the timings of
>>
>>>the CS8900 (I think it says something like 135 ns
>>
>>between the write and read
>>
>>>times). (This is a guess, remember.)
>>>
>>>As you can guess, I didn't investigate it...
>>>
>>>Funny thing is that I only saw this with the GCC,
>>
>>when I tried the
>>
>>>crossworks, the code worked. (I used the uIP and
>>
>>FreeRTOS).
>>
>>>Best of lucks,
>>>
>>>Luciano
>>>
>>>
>>>
>>>>-----Original Message-----
>>>>From: lpc2000@yahoogroups.com 
>>>>[mailto:lpc2000@yahoogroups.com] On Behalf Of
>>
>>ian_wraith
>>
>>>>Sent: Monday, July 11, 2005 4:17 PM
>>>>To: lpc2000@yahoogroups.com
>>>>Subject: [lpc2000] Re: CS8900A question
>>>>
>>>>Hello
>>>>
>>>>--- In lpc2000@yahoogroups.com, Ian Wraith
>>
>><i.wraith@s...> wrote:
>>
>>>>>There are no problems initialising the CS8900 and
>>
>>I can 
>>
>>>>even read its 
>>>>
>>>>
>>>>>EISA company ID correctly.
>>>>
>>>>I have just double checked this and it seems I
>>
>>can't read 
>>
>>>>the company ID correctly after all. When I check
>>
>>this my 
>>
>>>>program returns a value of 0x6355 where as the
>>
>>actual value 
>>
>>>>should be 0x630E. So I can read the first byte
>>
>>correctly but 
>>
>>>>the lower one is always
>>>>0x55 (an alternating pattern of 0's and 1's). My
>>
>>problem 
>>
>>>>therefore is in the code that reads a word from
>>
>>the CS8900.
>>
>>>>My apologies for wasting peoples time.
>>>>
>>>>Regards
>>>>
>>>>Ian
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>Yahoo! Groups Links
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>> 
>>>Yahoo! Groups Links
>>>
>>>
>>>
>>> 
>>>
>>>
>>>
>>
>>
>>
> 
> 
> 
> 	
> 		
> __________________________________ 
> Yahoo! Mail - PC Magazine Editors' Choice 2005 
> http://mail.yahoo.com
> 
> 
> 
>  
> Yahoo! Groups Links
> 
> 
> 
>  
> 
> 
> 
>

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.